diff --git a/include/regex b/include/regex
index 6ac5e1d..698278c 100644
--- a/include/regex
+++ b/include/regex
@@ -4305,6 +4305,14 @@
                 }
             }
             break;
+        case '*':
+        case '+':
+        case '?':
+        case '{':
+#ifndef _LIBCPP_NO_EXCEPTIONS
+            throw regex_error(regex_constants::error_badrepeat);
+#endif
+            break;
         default:
             __first = __parse_pattern_character(__first, __last);
             break;
diff --git a/test/std/re/re.regex/re.regex.construct/bad_escape.pass.cpp b/test/std/re/re.regex/re.regex.construct/bad_escape.pass.cpp
index 9455527..ddf2607 100644
--- a/test/std/re/re.regex/re.regex.construct/bad_escape.pass.cpp
+++ b/test/std/re/re.regex/re.regex.construct/bad_escape.pass.cpp
@@ -22,7 +22,7 @@
     bool result = false;
     try {
         std::regex re(pat);
-    } catch (std::regex_error &ex) {
+    } catch (const std::regex_error &ex) {
         result = (ex.code() == std::regex_constants::error_escape);
     }
     return result;
diff --git a/test/std/re/re.regex/re.regex.construct/bad_repeat.pass.cpp b/test/std/re/re.regex/re.regex.construct/bad_repeat.pass.cpp
new file mode 100644
index 0000000..bc70ec1
--- /dev/null
+++ b/test/std/re/re.regex/re.regex.construct/bad_repeat.pass.cpp
@@ -0,0 +1,42 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// <regex>
+
+// template <class charT, class traits = regex_traits<charT>> class basic_regex;
+
+// template <class ST, class SA>
+//    basic_regex(const basic_string<charT, ST, SA>& s);
+
+#include <regex>
+#include <cassert>
+
+static bool error_badrepeat_thrown(const char *pat) 
+{
+    bool result = false;
+    try {
+        std::regex re(pat);
+    } catch (const std::regex_error &ex) {
+        result = (ex.code() == std::regex_constants::error_badrepeat);
+    }
+    return result;
+}
+
+int main() 
+{
+    assert(error_badrepeat_thrown("?a"));
+    assert(error_badrepeat_thrown("*a"));
+    assert(error_badrepeat_thrown("+a"));
+    assert(error_badrepeat_thrown("{a"));
+
+    assert(error_badrepeat_thrown("?(a+)"));
+    assert(error_badrepeat_thrown("*(a+)"));
+    assert(error_badrepeat_thrown("+(a+)"));
+    assert(error_badrepeat_thrown("{(a+)"));
+}
