[ASTERIXDB-2633][FUN] Fix LIKE to regex translation

- user model changes: no
- storage format changes: no
- interface changes: no

Change-Id: I6138f62fdcd60bcc641f662d1fdb05b46dafbebf
Reviewed-on: https://asterix-gerrit.ics.uci.edu/3558
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Murtadha Hubail <mhubail@apache.org>
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/string/like_01/like_01.3.query.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/string/like_01/like_01.3.query.aql
index 2f6ccbd..608d184 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/string/like_01/like_01.3.query.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/string/like_01/like_01.3.query.aql
@@ -18,4 +18,4 @@
  */
 use dataverse test;
 
-[like("A6BBB", "_6%"), like("A8BBB", "_6%")]
+[like("A6BBB", "_6%"), like("A8BBB", "_6%"), like("+0300", "+03%"), like("?0300", "?03%")]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/string/like_01/like_01.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/string/like_01/like_01.3.query.sqlpp
index fa4a4e0..c0994c1 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/string/like_01/like_01.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/string/like_01/like_01.3.query.sqlpp
@@ -19,5 +19,9 @@
 
 use test;
 
-
-select element ['A6BBB' LIKE '_6%', 'A8BBB' LIKE '_6%' ];
+select element [
+  'A6BBB' LIKE '_6%',
+  'A8BBB' LIKE '_6%',
+  '+0300' like "+03%",
+  "?0300" like '?03%'
+];
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/string/like_01/like_01.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/string/like_01/like_01.1.adm
index 984d066..95f3f50 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/string/like_01/like_01.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/string/like_01/like_01.1.adm
@@ -1 +1 @@
-[ true, false ]
+[ true, false, true, true ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/like_01/like_01.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/like_01/like_01.3.ast
index ee361dd..ac04a07 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/like_01/like_01.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/string/like_01/like_01.3.ast
@@ -12,5 +12,15 @@
     like
     LiteralExpr [STRING] [_6%]
   ]
+  OperatorExpr [
+    LiteralExpr [STRING] [+0300]
+    like
+    LiteralExpr [STRING] [+03%]
+  ]
+  OperatorExpr [
+    LiteralExpr [STRING] [?0300]
+    like
+    LiteralExpr [STRING] [?03%]
+  ]
 ]
 ]
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringEvaluatorUtils.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringEvaluatorUtils.java
index 7abc721..9c2076da 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringEvaluatorUtils.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringEvaluatorUtils.java
@@ -57,7 +57,8 @@
         return destString;
     }
 
-    static char[] reservedRegexChars = new char[] { '\\', '(', ')', '[', ']', '{', '}', '.', '^', '$', '*', '|' };
+    static char[] reservedRegexChars =
+            new char[] { '\\', '(', ')', '[', ']', '{', '}', '.', '^', '$', '*', '|', '+', '?' };
 
     static {
         Arrays.sort(reservedRegexChars);