Index: trunk/src/org/openstreetmap/josm/data/osm/search/SearchCompiler.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/search/SearchCompiler.java	(revision 17745)
+++ trunk/src/org/openstreetmap/josm/data/osm/search/SearchCompiler.java	(revision 17746)
@@ -898,9 +898,10 @@
          * Constructs a new {@code ExactKeyValue}.
          * @param regexp regular expression
+         * @param caseSensitive {@code true} to perform a case-sensitive search
          * @param key key
          * @param value value
          * @throws SearchParseError if a parse error occurs
          */
-        public ExactKeyValue(boolean regexp, String key, String value) throws SearchParseError {
+        public ExactKeyValue(boolean regexp, boolean caseSensitive, String key, String value) throws SearchParseError {
             if ("".equals(key))
                 throw new SearchParseError(tr("Key cannot be empty when tag operator is used. Sample use: key=value"));
@@ -938,10 +939,10 @@
 
             if (regexp && !key.isEmpty() && !"*".equals(key)) {
-                keyPattern = compilePattern(key, regexFlags(false));
+                keyPattern = compilePattern(key, regexFlags(caseSensitive));
             } else {
                 keyPattern = null;
             }
             if (regexp && !this.value.isEmpty() && !"*".equals(this.value)) {
-                valuePattern = compilePattern(this.value, regexFlags(false));
+                valuePattern = compilePattern(this.value, regexFlags(caseSensitive));
             } else {
                 valuePattern = null;
@@ -2102,7 +2103,7 @@
             String key = tokenizer.getText();
             if (tokenizer.readIfEqual(Token.EQUALS)) {
-                return new ExactKeyValue(regexSearch, key, tokenizer.readTextOrNumber());
+                return new ExactKeyValue(regexSearch, caseSensitive, key, tokenizer.readTextOrNumber());
             } else if (tokenizer.readIfEqual(Token.TILDE)) {
-                return new ExactKeyValue(true, key, tokenizer.readTextOrNumber());
+                return new ExactKeyValue(true, caseSensitive, key, tokenizer.readTextOrNumber());
             } else if (tokenizer.readIfEqual(Token.LESS_THAN)) {
                 return new ValueComparison(key, tokenizer.readTextOrNumber(), -1);
