Index: trunk/src/org/openstreetmap/josm/actions/search/SearchCompiler.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/search/SearchCompiler.java	(revision 3303)
+++ trunk/src/org/openstreetmap/josm/actions/search/SearchCompiler.java	(revision 3304)
@@ -294,5 +294,11 @@
 
             if (regexp && key.length() > 0 && !key.equals("*")) {
-                keyPattern = Pattern.compile(key);
+                try {
+                    keyPattern = Pattern.compile(key, regexFlags(false));
+                } catch (PatternSyntaxException e) {
+                    throw new ParseError(tr(rxErrorMsg, e.getPattern(), e.getIndex(), e.getMessage()));
+                } catch (Exception e) {
+                    throw new ParseError(tr(rxErrorMsg, key, tr("<unknown>"), e.getMessage()));
+                }
             } else {
                 keyPattern = null;
@@ -300,7 +306,9 @@
             if (regexp && this.value.length() > 0 && !this.value.equals("*")) {
                 try {
-                    valuePattern = Pattern.compile(this.value);
+                    valuePattern = Pattern.compile(this.value, regexFlags(false));
                 } catch (PatternSyntaxException e) {
-                    throw new ParseError(tr("Pattern Syntax Error: Pattern {0} in {1} is illegal!", e.getPattern(), value));
+                    throw new ParseError(tr(rxErrorMsg, e.getPattern(), e.getIndex(), e.getMessage()));
+                } catch (Exception e) {
+                    throw new ParseError(tr(rxErrorMsg, value, tr("<unknown>"), e.getMessage()));
                 }
             } else {
