diff --git a/src/main/java/de/ids_mannheim/korap/query/serialize/PoliqarpPlusTree.java b/src/main/java/de/ids_mannheim/korap/query/serialize/PoliqarpPlusTree.java
index 0c82659..ade5135 100644
--- a/src/main/java/de/ids_mannheim/korap/query/serialize/PoliqarpPlusTree.java
+++ b/src/main/java/de/ids_mannheim/korap/query/serialize/PoliqarpPlusTree.java
@@ -159,7 +159,7 @@
 					if (flag.contains("x")) {
 						term.put("type", "type:regex");
 						if (!isRegex) {
-							key = escapeRegexSpecialChars(key); 
+							key = QueryUtils.escapeRegexSpecialChars(key); 
 						}
 						term.put("key", ".*?"+key+".*?"); // overwrite key
 					}
@@ -338,10 +338,6 @@
 		openNodeCats.pop();
 	}
 
-	private String escapeRegexSpecialChars(String key) {
-		return Pattern.quote(key);
-	}
-
 	/**
 	 * Parses a repetition node
 	 * @param node
@@ -451,7 +447,7 @@
 				else if (flag.contains("I")) term.put("caseInsensitive", false);
 				if (flag.contains("x")) {
 					if (!isRegex) {
-						key = escapeRegexSpecialChars(key); 
+						key = QueryUtils.escapeRegexSpecialChars(key); 
 					}
 					term.put("key", ".*?"+key+".*?");  // flag 'x' allows submatches: overwrite key with appended .*? 
 					term.put("type", "type:regex");
diff --git a/src/main/java/de/ids_mannheim/korap/query/serialize/QueryUtils.java b/src/main/java/de/ids_mannheim/korap/query/serialize/QueryUtils.java
index e7a5a9b..61a97e2 100644
--- a/src/main/java/de/ids_mannheim/korap/query/serialize/QueryUtils.java
+++ b/src/main/java/de/ids_mannheim/korap/query/serialize/QueryUtils.java
@@ -7,6 +7,8 @@
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 /**
  * @author hanl
@@ -372,6 +374,20 @@
         requestMap.put("@context", context);
     }
 
+    public static String escapeRegexSpecialChars(String key) {
+		key.replace("\\", "\\\\");
+		Pattern p = Pattern.compile("\\.|\\^|\\$|\\||\\?|\\*|\\+|\\(|\\)|\\[|\\]|\\{|\\}");
+		Matcher m = p.matcher(key);
+		while (m.find()) {
+			System.out.println(m.group(0));
+			String match = m.group();
+			System.out.println(key);
+			key = m.replaceAll("\\\\"+match);
+			System.out.println(" > "+key);
+		}
+		return key;
+	}
+
 
 
 }
