Fix bug #31387 - not checking end iterator when parsing decimal escape. Thanks to Karen for the report.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@290500 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/regex b/include/regex
index 1c4cc1d..5a6c7fb 100644
--- a/include/regex
+++ b/include/regex
@@ -4314,7 +4314,8 @@
         else if ('1' <= *__first && *__first <= '9')
         {
             unsigned __v = *__first - '0';
-            for (++__first; '0' <= *__first && *__first <= '9'; ++__first)
+            for (++__first;
+                    __first != __last && '0' <= *__first && *__first <= '9'; ++__first)
                 __v = 10 * __v + *__first - '0';
             if (__v > mark_count())
                 __throw_regex_error<regex_constants::error_backref>();