a[b-d] aac y $& ac
a[-b] a- y $& a-
a[b-] a- y $& a-
-a[b-a] - c - Invalid [] range "b-a" in regex; marked by <-- HERE in m/a[b-a <-- HERE ]/
-a[]b - c - Unmatched [ in regex; marked by <-- HERE in m/a[ <-- HERE ]b/
-a[ - c - Unmatched [ in regex; marked by <-- HERE in m/a[ <-- HERE /
+a[b-a] - c - Invalid [] range "b-a"
+a[]b - c - Unmatched [
+a[ - c - Unmatched [
a] a] y $& a]
a[]]b a]b y $& a]b
a[^bc]d aed y $& aed
ab|cd abc y $& ab
ab|cd abcd y $& ab
()ef def y $&-$1 ef-
-*a - c - Quantifier follows nothing in regex; marked by <-- HERE in m/* <-- HERE a/
-(*)b - c - Quantifier follows nothing in regex; marked by <-- HERE in m/(* <-- HERE )b/
+*a - c - Quantifier follows nothing
+(*)b - c - Quantifier follows nothing
$b b n - -
a\ - c - Search pattern not terminated
a\(b a(b y $&-$1 a(b-
a\(*b ab y $& ab
a\(*b a((b y $& a((b
a\\b a\b y $& a\b
-abc) - c - Unmatched ) in regex; marked by <-- HERE in m/abc) <-- HERE /
-(abc - c - Unmatched ( in regex; marked by <-- HERE in m/( <-- HERE abc/
+abc) - c - Unmatched )
+(abc - c - Unmatched (
((a)) abc y $&-$1-$2 a-a-a
(a)b(c) abc y $&-$1-$2 abc-a-c
a+b+c aabbabc y $& abc
a{1,}b{1,}c aabbabc y $& abc
-a** - c - Nested quantifiers in regex; marked by <-- HERE in m/a** <-- HERE /
+a** - c - Nested quantifiers
a.+?c abcabc y $& abc
(a+|b)* ab y $&-$1 ab-b
(a+|b){0,} ab y $&-$1 ab-b
(a+|b){1,} ab y $&-$1 ab-b
(a+|b)? ab y $&-$1 a-a
(a+|b){0,1} ab y $&-$1 a-a
-)( - c - Unmatched ) in regex; marked by <-- HERE in m/) <-- HERE (/
+)( - c - Unmatched )
[^ab]* cde y $& cde
abc n - -
a* y $&
'a[b-d]'i AAC y $& AC
'a[-b]'i A- y $& A-
'a[b-]'i A- y $& A-
-'a[b-a]'i - c - Invalid [] range "b-a" in regex; marked by <-- HERE in m/a[b-a <-- HERE ]/
-'a[]b'i - c - Unmatched [ in regex; marked by <-- HERE in m/a[ <-- HERE ]b/
-'a['i - c - Unmatched [ in regex; marked by <-- HERE in m/a[ <-- HERE /
+'a[b-a]'i - c - Invalid [] range "b-a"
+'a[]b'i - c - Unmatched [
+'a['i - c - Unmatched [
'a]'i A] y $& A]
'a[]]b'i A]B y $& A]B
'a[^bc]d'i AED y $& AED
'ab|cd'i ABC y $& AB
'ab|cd'i ABCD y $& AB
'()ef'i DEF y $&-$1 EF-
-'*a'i - c - Quantifier follows nothing in regex; marked by <-- HERE in m/* <-- HERE a/
-'(*)b'i - c - Quantifier follows nothing in regex; marked by <-- HERE in m/(* <-- HERE )b/
+'*a'i - c - Quantifier follows nothing
+'(*)b'i - c - Quantifier follows nothing
'$b'i B n - -
'a\'i - c - Search pattern not terminated
'a\(b'i A(B y $&-$1 A(B-
'a\(*b'i AB y $& AB
'a\(*b'i A((B y $& A((B
'a\\b'i A\B y $& A\B
-'abc)'i - c - Unmatched ) in regex; marked by <-- HERE in m/abc) <-- HERE /
-'(abc'i - c - Unmatched ( in regex; marked by <-- HERE in m/( <-- HERE abc/
+'abc)'i - c - Unmatched )
+'(abc'i - c - Unmatched (
'((a))'i ABC y $&-$1-$2 A-A-A
'(a)b(c)'i ABC y $&-$1-$2 ABC-A-C
'a+b+c'i AABBABC y $& ABC
'a{1,}b{1,}c'i AABBABC y $& ABC
-'a**'i - c - Nested quantifiers in regex; marked by <-- HERE in m/a** <-- HERE /
+'a**'i - c - Nested quantifiers
'a.+?c'i ABCABC y $& ABC
'a.*?c'i ABCABC y $& ABC
'a.{0,5}?c'i ABCABC y $& ABC
'(a+|b)?'i AB y $&-$1 A-A
'(a+|b){0,1}'i AB y $&-$1 A-A
'(a+|b){0,1}?'i AB y $&-$1 -
-')('i - c - Unmatched ) in regex; marked by <-- HERE in m/) <-- HERE (/
+')('i - c - Unmatched )
'[^ab]*'i CDE y $& CDE
'abc'i n - -
'a*'i y $&
(?<!c)b cb n - -
(?<!c)b b y - -
(?<!c)b b y $& b
-(?<%)b - c - Sequence (?<%...) not recognized in regex; marked by <-- HERE in m/(?<% <-- HERE )b/
+(?<%)b - c - Sequence (?<%...) not recognized
(?:..)*a aba y $& aba
(?:..)*?a aba y $& a
^(?:b|a(?=(.)))*\1 abc y $& ab
'(ab)\d\1'i ab4Ab y $1 ab
foo\w*\d{4}baz foobar1234baz y $& foobar1234baz
a(?{})b cabd y $& ab
-a(?{)b - c - Sequence (?{...}) not terminated or not {}-balanced in regex; marked by <-- HERE in m/a(?{ <-- HERE )b/
-a(?{{})b - c - Sequence (?{...}) not terminated or not {}-balanced in regex; marked by <-- HERE in m/a(?{ <-- HERE {})b/
+a(?{)b - c - Sequence (?{...}) not terminated or not {}-balanced
+a(?{{})b - c - Sequence (?{...}) not terminated or not {}-balanced
a(?{}})b - c -
-a(?{"{"})b - c - Sequence (?{...}) not terminated or not {}-balanced in regex; marked by <-- HERE in m/a(?{ <-- HERE "{"})b/
+a(?{"{"})b - c - Sequence (?{...}) not terminated or not {}-balanced
a(?{"\{"})b cabd y $& ab
a(?{"{"}})b - c - Unmatched right curly bracket
a(?{$bl="\{"}).b caxbd y $bl {
^(\(+)?blah(?(1)(\)))$ blah y ($2) ()
^(\(+)?blah(?(1)(\)))$ blah) n - -
^(\(+)?blah(?(1)(\)))$ (blah n - -
-(?(1?)a|b) a c - Switch condition not recognized in regex; marked by <-- HERE in m/(?(1? <-- HERE )a|b)/
-(?(1)a|b|c) a c - Switch (?(condition)... contains too many branches in regex; marked by <-- HERE in m/(?(1)a|b| <-- HERE c)/
+(?(1?)a|b) a c - Switch condition not recognized
+(?(1)a|b|c) a c - Switch (?(condition)... contains too many branches
(?(?{0})a|b) a n - -
(?(?{0})b|a) a y $& a
(?(?{1})b|a) a n - -
([[:]+) a:[b]: y $1 :[
([[=]+) a=[b]= y $1 =[
([[.]+) a.[b]. y $1 .[
-[a[:xyz: - c - Unmatched [ in regex; marked by <-- HERE in m/[ <-- HERE a[:xyz:/
-[a[:xyz:] - c - POSIX class [:xyz:] unknown in regex; marked by <-- HERE in m/[a[:xyz:] <-- HERE /
+[a[:xyz: - c - Unmatched [
+[a[:xyz:] - c - POSIX class [:xyz:] unknown
[a[:]b[:c] abc y $& abc
-([a[:xyz:]b]+) pbaq c - POSIX class [:xyz:] unknown in regex; marked by <-- HERE in m/([a[:xyz:] <-- HERE b]+)/
+([a[:xyz:]b]+) pbaq c - POSIX class [:xyz:] unknown
[a[:]b[:c] abc y $& abc
([[:alpha:]]+) ABcd01Xy__-- ${nulnul}${ffff} y $1 ABcd
([[:alnum:]]+) ABcd01Xy__-- ${nulnul}${ffff} y $1 ABcd01Xy
([[:^word:]]+) ABcd01Xy__-- ${nulnul}${ffff} y $1 -- ${nulnul}${ffff}
([[:^upper:]]+) ABcd01Xy__-- ${nulnul}${ffff} y $1 cd01
([[:^xdigit:]]+) ABcd01Xy__-- ${nulnul}${ffff} y $1 Xy__-- ${nulnul}${ffff}
-[[:foo:]] - c - POSIX class [:foo:] unknown in regex; marked by <-- HERE in m/[[:foo:] <-- HERE ]/
-[[:^foo:]] - c - POSIX class [:^foo:] unknown in regex; marked by <-- HERE in m/[[:^foo:] <-- HERE ]/
+[[:foo:]] - c - POSIX class [:foo:] unknown
+[[:^foo:]] - c - POSIX class [:^foo:] unknown
((?>a+)b) aaab y $1 aaab
(?>(a+))b aaab y $1 aaa
((?>[^()]+)|\([^()]*\))+ ((abc(ade)ufh()()x y $& abc(ade)ufh()()x
-(?<=x+)y - c - Variable length lookbehind not implemented in regex; marked by <-- HERE in m/(?<=x+) <-- HERE y/
+(?<=x+)y - c - Variable length lookbehind not implemented
a{37,17} - c - Can't do {n,m} with n > m
\Z a\nb\n y $-[0] 3
\z a\nb\n y $-[0] 4