diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/GrepFunctions.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/GrepFunctions.java
index 177902b34d228318732f5c7a32d605c22e6d8115..26a20439edc635e06e8bcbcda476fd8decfc2584 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/GrepFunctions.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/GrepFunctions.java
@@ -793,7 +793,7 @@ public class GrepFunctions {
                     throw RInternalError.unimplemented("multi-element patterns in regexpr not implemented yet");
                 }
                 String pattern = patternArg.getDataAt(0);
-                if (!perl) {
+                if (!perl && !fixed) {
                     pattern = RegExp.checkPreDefinedClasses(pattern);
                 }
                 // TODO: useBytes normally depends on the value of the parameter and (if false) on
@@ -1090,7 +1090,7 @@ public class GrepFunctions {
                     throw RInternalError.unimplemented("multi-element patterns in gregexpr not implemented yet");
                 }
                 String pattern = patternArg.getDataAt(0);
-                if (!perl) {
+                if (!perl && !fixed) {
                     pattern = RegExp.checkPreDefinedClasses(pattern);
                 }
                 // TODO: useBytes normally depends on the value of the parameter and (if false) on
diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_gregexpr.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_gregexpr.java
index 1d55ebbc8d048b622032a4ea4790025fdfebdb9e..08a34adfe09cbfd428691e2662983018c2d2eede 100644
--- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_gregexpr.java
+++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_gregexpr.java
@@ -120,5 +120,12 @@ public class TestBuiltin_gregexpr extends TestBase {
         assertEval("{ x<-c(\"Aaa bbb Aaa Bbb\", \"Aaa bbb Aaa bbb\", \"Aaa bbb Aaa Bbb\"); p<-\"(?<first>[[:upper:]][[:lower:]]+) (?<last>[[:upper:]][[:lower:]]+)\"; gregexpr(p, x, perl=TRUE) }");
         assertEval("{ x<-c(\"Aaa bbb Aaa bbb\", \"Aaa Bbb Aaa Bbb\", \"Aaa bbb Aaa bbb\"); p<-\"(?<first>[[:upper:]][[:lower:]]+) (?<last>[[:upper:]][[:lower:]]+)\"; gregexpr(p, x, perl=TRUE) }");
 
+        assertEval("gregexpr(')', 'abc()', fixed = TRUE)");
+        assertEval("gregexpr('(', 'abc()', fixed = TRUE)");
+        assertEval("gregexpr(')', 'abc()', fixed = FALSE)");
+        assertEval("gregexpr('\\\\)', 'abc()', fixed = FALSE)");
+        assertEval(Output.IgnoreErrorMessage, "gregexpr('(', 'abc()', fixed = FALSE)");
+        assertEval("gregexpr('\\\\(', 'abc()', fixed = FALSE)");
+
     }
 }
diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_regexpr.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_regexpr.java
index a4ed9501b845b8a1d136c6dc81d157fb66f2d481..a9e76b8ee72c34108539805352efdaffc24c6933 100644
--- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_regexpr.java
+++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_regexpr.java
@@ -118,5 +118,11 @@ public class TestBuiltin_regexpr extends TestBase {
         assertEval("{ x<-c(\"Aaa bbb Aaa bbb\", \"Aaa Bbb Aaa Bbb\"); p<-\"(?<first>[[:upper:]][[:lower:]]+) (?<last>[[:upper:]][[:lower:]]+)\"; regexpr(p, x, perl=TRUE) }");
         assertEval("{ x<-c(\"Aaa bbb Aaa bbb\", \"Aaa Bbb Aaa Bbb\", \"Aaa bbb Aaa bbb\"); p<-\"(?<first>[[:upper:]][[:lower:]]+) (?<last>[[:upper:]][[:lower:]]+)\"; regexpr(p, x, perl=TRUE) }");
 
+        assertEval("regexpr(')', 'abc()', fixed = TRUE)");
+        assertEval("regexpr('(', 'abc()', fixed = TRUE)");
+        assertEval("regexpr(')', 'abc()', fixed = FALSE)");
+        assertEval("regexpr('\\\\)', 'abc()', fixed = FALSE)");
+        assertEval(Output.IgnoreErrorMessage, "regexpr('(', 'abc()', fixed = FALSE)");
+        assertEval("regexpr('\\\\(', 'abc()', fixed = FALSE)");
     }
 }