diff --git a/include/regex b/include/regex
index 1f397cd..a0e3ba6 100644
--- a/include/regex
+++ b/include/regex
@@ -2306,7 +2306,7 @@
             else
             {
                 if (__b.size() != 1 || __e.size() != 1)
-                    __throw_regex_error<regex_constants::error_collate>();
+                    __throw_regex_error<regex_constants::error_range>();
                 if (__icase_)
                 {
                     __b[0] = __traits_.translate_nocase(__b[0]);
diff --git a/test/std/re/re.regex/re.regex.construct/bad_range.pass.cpp b/test/std/re/re.regex/re.regex.construct/bad_range.pass.cpp
new file mode 100644
index 0000000..198cea8
--- /dev/null
+++ b/test/std/re/re.regex/re.regex.construct/bad_range.pass.cpp
@@ -0,0 +1,38 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+// UNSUPPORTED: libcpp-no-exceptions
+// <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>
+#include "test_macros.h"
+
+static bool error_range_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_range);
+    }
+    return result;
+}
+
+int main(int, char**)
+{
+    assert(error_range_thrown(R"([\w-a])"));
+    assert(error_range_thrown(R"([a-\w])"));
+
+  return 0;
+}
