/[[:alpha]/ now dies on unmatched [] instead of
[p5sagit/p5-mst-13.2.git] / regcomp.c
index 271c20c..7c6b761 100644 (file)
--- a/regcomp.c
+++ b/regcomp.c
@@ -2820,12 +2820,12 @@ S_regpposixcc(pTHX_ I32 value)
                        }
                        break;
                    }
-                   if ((namedclass == OOB_NAMEDCLASS ||
-                        !(posixcc + skip + 2 < PL_regxend &&
-                          (posixcc[skip] == ':' &&
-                           posixcc[skip + 1] == ']'))))
-                       Perl_croak(aTHX_ "Character class [:%.*s:] unknown",
-                                  t - s - 1, s + 1); 
+                   if (namedclass == OOB_NAMEDCLASS ||
+                       posixcc[skip] != ':' ||
+                       posixcc[skip+1] != ']')
+                       Perl_croak(aTHX_
+                                  "Character class [:%.*s:] unknown",
+                                  t - s - 1, s + 1);
                } else if (ckWARN(WARN_REGEXP) && !SIZE_ONLY)
                    /* [[=foo=]] and [[.foo.]] are still future. */
                    Perl_warner(aTHX_ WARN_REGEXP,