Re: enhanced(?) regex error messages
[p5sagit/p5-mst-13.2.git] / t / op / re_tests
index 7ac20c3..afdcd58 100644 (file)
@@ -45,7 +45,7 @@ a[b-d]e       ace     y       $&      ace
 a[b-d] aac     y       $&      ac
 a[-b]  a-      y       $&      a-
 a[b-]  a-      y       $&      a-
-a[b-a] -       c       -       /a[b-a]/: invalid [] range in regexp
+a[b-a] -       c       -       /a[b-a]/: invalid [] range "b-a" in regexp
 a[]b   -       c       -       /a[]b/: unmatched [] in regexp
 a[     -       c       -       /a[/: unmatched [] in regexp
 a]     a]      y       $&      a]
@@ -95,8 +95,8 @@ a[\S]b        a-b     y       -       -
 ab|cd  abc     y       $&      ab
 ab|cd  abcd    y       $&      ab
 ()ef   def     y       $&-$1   ef-
-*a     -       c       -       /*a/: ?+*{} follows nothing in regexp
-(*)b   -       c       -       /(*)b/: ?+*{} follows nothing in regexp
+*a     -       c       -       Quantifier follows nothing in regexp
+(*)b   -       c       -       Quantifier follows nothing in regexp
 $b     b       n       -       -
 a\     -       c       -       Search pattern not terminated
 a\(b   a(b     y       $&-$1   a(b-
@@ -109,7 +109,7 @@ abc)        -       c       -       /abc)/: unmatched () in regexp
 (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       -       /a**/: nested *?+ in regexp
+a**    -       c       -       Nested quantifiers in regexp
 a.+?c  abcabc  y       $&      abc
 (a+|b)*        ab      y       $&-$1   ab-b
 (a+|b){0,}     ab      y       $&-$1   ab-b
@@ -151,8 +151,8 @@ a[bcd]+dcdcde       adcdcde n       -       -
 (bc+d$|ef*g.|h?i(j|k)) reffgz  y       $&-$1-$2        effgz-effgz-
 ((((((((((a))))))))))  a       y       $10     a
 ((((((((((a))))))))))\10       aa      y       $&      aa
-((((((((((a))))))))))\41       aa      n       -       -
-((((((((((a))))))))))\41       a!      y       $&      a!
+((((((((((a))))))))))${bang}   aa      n       -       -
+((((((((((a))))))))))${bang}   a!      y       $&      a!
 (((((((((a)))))))))    a       y       $&      a
 multiple words of text uh-uh   n       -       -
 multiple words multiple words, yeah    y       $&      multiple words
@@ -164,11 +164,11 @@ a(bc)d    abcd    y       $1-\$1-\\$1     bc-$1-\bc
 a[-]?c ac      y       $&      ac
 (abc)\1        abcabc  y       $1      abc
 ([a-c]*)\1     abcabc  y       $1      abc
-\1     -       c       -       /\1/: reference to nonexistent group
-\2     -       c       -       /\2/: reference to nonexistent group
+\1     -       c       -       Reference to nonexistent group
+\2     -       c       -       Reference to nonexistent group
 (a)|\1 a       y       -       -
 (a)|\1 x       n       -       -
-(a)|\2 -       c       -       /(a)|\2/: reference to nonexistent group
+(a)|\2 -       c       -       Reference to nonexistent group
 (([a-c])b*?\2)*        ababbbcbc       y       $&-$1-$2        ababb-bb-b
 (([a-c])b*?\2){3}      ababbbcbc       y       $&-$1-$2        ababbbcbc-cbc-c
 ((\3|b)\2(a)x)+        aaxabxbaxbbx    n       -       -
@@ -218,7 +218,7 @@ a[-]?c      ac      y       $&      ac
 'a[b-d]'i      AAC     y       $&      AC
 'a[-b]'i       A-      y       $&      A-
 'a[b-]'i       A-      y       $&      A-
-'a[b-a]'i      -       c       -       /a[b-a]/: invalid [] range in regexp
+'a[b-a]'i      -       c       -       /a[b-a]/: invalid [] range "b-a" in regexp
 'a[]b'i        -       c       -       /a[]b/: unmatched [] in regexp
 'a['i  -       c       -       /a[/: unmatched [] in regexp
 'a]'i  A]      y       $&      A]
@@ -232,8 +232,8 @@ a[-]?c      ac      y       $&      ac
 'ab|cd'i       ABC     y       $&      AB
 'ab|cd'i       ABCD    y       $&      AB
 '()ef'i        DEF     y       $&-$1   EF-
-'*a'i  -       c       -       /*a/: ?+*{} follows nothing in regexp
-'(*)b'i        -       c       -       /(*)b/: ?+*{} follows nothing in regexp
+'*a'i  -       c       -       Quantifier follows nothing in regexp
+'(*)b'i        -       c       -       Quantifier follows nothing in regexp
 '$b'i  B       n       -       -
 'a\'i  -       c       -       Search pattern not terminated
 'a\(b'i        A(B     y       $&-$1   A(B-
@@ -246,7 +246,7 @@ a[-]?c      ac      y       $&      ac
 '(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       -       /a**/: nested *?+ in regexp
+'a**'i -       c       -       Nested quantifiers in regexp
 'a.+?c'i       ABCABC  y       $&      ABC
 'a.*?c'i       ABCABC  y       $&      ABC
 'a.{0,5}?c'i   ABCABC  y       $&      ABC
@@ -291,8 +291,8 @@ a[-]?c      ac      y       $&      ac
 '(bc+d$|ef*g.|h?i(j|k))'i      REFFGZ  y       $&-$1-$2        EFFGZ-EFFGZ-
 '((((((((((a))))))))))'i       A       y       $10     A
 '((((((((((a))))))))))\10'i    AA      y       $&      AA
-'((((((((((a))))))))))\41'i    AA      n       -       -
-'((((((((((a))))))))))\41'i    A!      y       $&      A!
+'((((((((((a))))))))))${bang}'i        AA      n       -       -
+'((((((((((a))))))))))${bang}'i        A!      y       $&      A!
 '(((((((((a)))))))))'i A       y       $&      A
 '(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))'i     A       y       $1      A
 '(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))'i C       y       $1      C
@@ -318,7 +318,7 @@ a(?:b|c|d){2}(.)    acdbcdbe        y       $1      b
 a(?:b|c|d){4,5}(.)     acdbcdbe        y       $1      b
 a(?:b|c|d){4,5}?(.)    acdbcdbe        y       $1      d
 ((foo)|(bar))* foobar  y       $1-$2-$3        bar-foo-bar
-:(?:   -       c       -       /(?/: Sequence (? incomplete
+:(?:   -       c       -       Sequence (? incomplete
 a(?:b|c|d){6,7}(.)     acdbcdbe        y       $1      e
 a(?:b|c|d){6,7}?(.)    acdbcdbe        y       $1      e
 a(?:b|c|d){5,6}(.)     acdbcdbe        y       $1      e
@@ -335,6 +335,9 @@ a(?:b|(c|e){1,2}?|d)+?(.)   ace     y       $1$2    ce
 ^(a(?(1)\1)){4}$       aaaaaaaaaa      y       $1      aaaa
 ^(a(?(1)\1)){4}$       aaaaaaaaa       n       -       -
 ^(a(?(1)\1)){4}$       aaaaaaaaaaa     n       -       -
+((a{4})+)      aaaaaaaaa       y       $1      aaaaaaaa
+(((aa){2})+)   aaaaaaaaaa      y       $1      aaaaaaaa
+(((a{2}){2})+) aaaaaaaaaa      y       $1      aaaaaaaa
 (?:(f)(o)(o)|(b)(a)(r))*       foobar  y       $1:$2:$3:$4:$5:$6       f:o:o:b:a:r
 (?<=a)b        ab      y       $&      b
 (?<=a)b        cb      n       -       -
@@ -343,7 +346,7 @@ a(?:b|(c|e){1,2}?|d)+?(.)   ace     y       $1$2    ce
 (?<!c)b        cb      n       -       -
 (?<!c)b        b       y       -       -
 (?<!c)b        b       y       $&      b
-(?<%)b -       c       -       /(?<%)b/: Sequence (?%...) not recognized
+(?<%)b -       c       -       Sequence (?%...) not recognized
 (?:..)*a       aba     y       $&      aba
 (?:..)*?a      aba     y       $&      a
 ^(?:b|a(?=(.)))*\1     abc     y       $&      ab
@@ -399,7 +402,7 @@ a(?{{})b    -       c       -       /a(?{{})b/: Sequence (?{...}) not terminated or not {}-balanced
 a(?{}})b       -       c       -       /a(?{}})b/: Sequence (?{...}) not terminated or not {}-balanced
 a(?{"{"})b     -       c       -       /a(?{"{"})b/: Sequence (?{...}) not terminated or not {}-balanced
 a(?{"\{"})b    cabd    y       $&      ab
-a(?{"{"}})b    -       c       -       Unmatched right bracket
+a(?{"{"}})b    -       c       -       Unmatched right curly bracket
 a(?{$bl="\{"}).b       caxbd   y       $bl     {
 x(~~)*(?:(?:F)?)?      x~~     y       -       -
 ^a(?#xxx){3}c  aaac    y       $&      aaac
@@ -438,8 +441,8 @@ x(~~)*(?:(?:F)?)?   x~~     y       -       -
 ^(\(+)?blah(?(1)(\)))$ blah    y       ($2)    ()
 ^(\(+)?blah(?(1)(\)))$ blah)   n       -       -
 ^(\(+)?blah(?(1)(\)))$ (blah   n       -       -
-(?(1?)a|b)     a       c       -       /(?(1?)a|b)/: Switch (?(number? not recognized
-(?(1)a|b|c)    a       c       -       /(?(1)a|b|c)/: Switch (?(condition)... contains too many branches
+(?(1?)a|b)     a       c       -       Switch (?(number? 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       -       -
@@ -471,15 +474,304 @@ $(?<=^(a))       a       y       $1      a
 ([[=]+)        a=[b]=  y       $1      =[
 ([[.]+)        a.[b].  y       $1      .[
 [a[:xyz:       -       c       -       /[a[:xyz:/: unmatched [] in regexp
-[a[:xyz:]      -       c       -       /[a[:xyz:]/: unmatched [] in regexp
-([a[:xyz:]b]+) pbaq    y       $1      ba
+[a[:xyz:]      -       c       -       Character class [:xyz:] unknown
+[a[:]b[:c]     abc     y       $&      abc
+([a[:xyz:]b]+) pbaq    c       -       Character class [:xyz:] unknown
+[a[:]b[:c]     abc     y       $&      abc
+([[:alpha:]]+) ABcd01Xy__--  ${nulnul}${ffff}  y       $1      ABcd
+([[:alnum:]]+) ABcd01Xy__--  ${nulnul}${ffff}  y       $1      ABcd01Xy
+([[:ascii:]]+) ABcd01Xy__--  ${nulnul}${ffff}  y       $1      ABcd01Xy__--  ${nulnul}
+([[:cntrl:]]+) ABcd01Xy__--  ${nulnul}${ffff}  y       $1      ${nulnul}
+([[:digit:]]+) ABcd01Xy__--  ${nulnul}${ffff}  y       $1      01
+([[:graph:]]+) ABcd01Xy__--  ${nulnul}${ffff}  y       $1      ABcd01Xy__--
+([[:lower:]]+) ABcd01Xy__--  ${nulnul}${ffff}  y       $1      cd
+([[:print:]]+) ABcd01Xy__--  ${nulnul}${ffff}  y       $1      ABcd01Xy__--  
+([[:punct:]]+) ABcd01Xy__--  ${nulnul}${ffff}  y       $1      __--
+([[:space:]]+) ABcd01Xy__--  ${nulnul}${ffff}  y       $1        
+([[:word:]]+)  ABcd01Xy__--  ${nulnul}${ffff}  y       $1      ABcd01Xy__
+([[:upper:]]+) ABcd01Xy__--  ${nulnul}${ffff}  y       $1      AB
+([[:xdigit:]]+)        ABcd01Xy__--  ${nulnul}${ffff}  y       $1      ABcd01
+([[:^alpha:]]+)        ABcd01Xy__--  ${nulnul}${ffff}  y       $1      01
+([[:^alnum:]]+)        ABcd01Xy__--  ${nulnul}${ffff}  y       $1      __--  ${nulnul}${ffff}
+([[:^ascii:]]+)        ABcd01Xy__--  ${nulnul}${ffff}  y       $1      ${ffff}
+([[:^cntrl:]]+)        ABcd01Xy__--  ${nulnul}${ffff}  y       $1      ABcd01Xy__--  
+([[:^digit:]]+)        ABcd01Xy__--  ${nulnul}${ffff}  y       $1      ABcd
+([[:^lower:]]+)        ABcd01Xy__--  ${nulnul}${ffff}  y       $1      AB
+([[:^print:]]+)        ABcd01Xy__--  ${nulnul}${ffff}  y       $1      ${nulnul}${ffff}
+([[:^punct:]]+)        ABcd01Xy__--  ${nulnul}${ffff}  y       $1      ABcd01Xy
+([[:^space:]]+)        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       -       Character class [:foo:] unknown
+[[:^foo:]]     -       c       -       Character 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       -       /(?<=x+)y/: variable length lookbehind not implemented
-a{37,17}       -       c       -       /a{37,17}/: Can't do {n,m} with n > m
+(?<=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
+$      a\nb\n  y       $-[0]   3
+\Z     b\na\n  y       $-[0]   3
+\z     b\na\n  y       $-[0]   4
+$      b\na\n  y       $-[0]   3
+\Z     b\na    y       $-[0]   3
+\z     b\na    y       $-[0]   3
+$      b\na    y       $-[0]   3
+'\Z'm  a\nb\n  y       $-[0]   3
+'\z'm  a\nb\n  y       $-[0]   4
+'$'m   a\nb\n  y       $-[0]   1
+'\Z'm  b\na\n  y       $-[0]   3
+'\z'm  b\na\n  y       $-[0]   4
+'$'m   b\na\n  y       $-[0]   1
+'\Z'm  b\na    y       $-[0]   3
+'\z'm  b\na    y       $-[0]   3
+'$'m   b\na    y       $-[0]   1
 a\Z    a\nb\n  n       -       -
-b\Z    a\nb\n  y       -       -
-b\z    a\nb\n  n       -       -
-b\Z    a\nb    y       -       -
-b\z    a\nb    y       -       -
+a\z    a\nb\n  n       -       -
+a$     a\nb\n  n       -       -
+a\Z    b\na\n  y       $-[0]   2
+a\z    b\na\n  n       -       -
+a$     b\na\n  y       $-[0]   2
+a\Z    b\na    y       $-[0]   2
+a\z    b\na    y       $-[0]   2
+a$     b\na    y       $-[0]   2
+'a\Z'm a\nb\n  bn      -       -
+'a\z'm a\nb\n  n       -       -
+'a$'m  a\nb\n  y       $-[0]   0
+'a\Z'm b\na\n  y       $-[0]   2
+'a\z'm b\na\n  n       -       -
+'a$'m  b\na\n  y       $-[0]   2
+'a\Z'm b\na    y       $-[0]   2
+'a\z'm b\na    y       $-[0]   2
+'a$'m  b\na    y       $-[0]   2
+aa\Z   aa\nb\n n       -       -
+aa\z   aa\nb\n n       -       -
+aa$    aa\nb\n n       -       -
+aa\Z   b\naa\n y       $-[0]   2
+aa\z   b\naa\n n       -       -
+aa$    b\naa\n y       $-[0]   2
+aa\Z   b\naa   y       $-[0]   2
+aa\z   b\naa   y       $-[0]   2
+aa$    b\naa   y       $-[0]   2
+'aa\Z'm        aa\nb\n bn      -       -
+'aa\z'm        aa\nb\n n       -       -
+'aa$'m aa\nb\n y       $-[0]   0
+'aa\Z'm        b\naa\n y       $-[0]   2
+'aa\z'm        b\naa\n n       -       -
+'aa$'m b\naa\n y       $-[0]   2
+'aa\Z'm        b\naa   y       $-[0]   2
+'aa\z'm        b\naa   y       $-[0]   2
+'aa$'m b\naa   y       $-[0]   2
+aa\Z   ac\nb\n n       -       -
+aa\z   ac\nb\n n       -       -
+aa$    ac\nb\n n       -       -
+aa\Z   b\nac\n n       -       -
+aa\z   b\nac\n n       -       -
+aa$    b\nac\n n       -       -
+aa\Z   b\nac   n       -       -
+aa\z   b\nac   n       -       -
+aa$    b\nac   n       -       -
+'aa\Z'm        ac\nb\n n       -       -
+'aa\z'm        ac\nb\n n       -       -
+'aa$'m ac\nb\n n       -       -
+'aa\Z'm        b\nac\n n       -       -
+'aa\z'm        b\nac\n n       -       -
+'aa$'m b\nac\n n       -       -
+'aa\Z'm        b\nac   n       -       -
+'aa\z'm        b\nac   n       -       -
+'aa$'m b\nac   n       -       -
+aa\Z   ca\nb\n n       -       -
+aa\z   ca\nb\n n       -       -
+aa$    ca\nb\n n       -       -
+aa\Z   b\nca\n n       -       -
+aa\z   b\nca\n n       -       -
+aa$    b\nca\n n       -       -
+aa\Z   b\nca   n       -       -
+aa\z   b\nca   n       -       -
+aa$    b\nca   n       -       -
+'aa\Z'm        ca\nb\n n       -       -
+'aa\z'm        ca\nb\n n       -       -
+'aa$'m ca\nb\n n       -       -
+'aa\Z'm        b\nca\n n       -       -
+'aa\z'm        b\nca\n n       -       -
+'aa$'m b\nca\n n       -       -
+'aa\Z'm        b\nca   n       -       -
+'aa\z'm        b\nca   n       -       -
+'aa$'m b\nca   n       -       -
+ab\Z   ab\nb\n n       -       -
+ab\z   ab\nb\n n       -       -
+ab$    ab\nb\n n       -       -
+ab\Z   b\nab\n y       $-[0]   2
+ab\z   b\nab\n n       -       -
+ab$    b\nab\n y       $-[0]   2
+ab\Z   b\nab   y       $-[0]   2
+ab\z   b\nab   y       $-[0]   2
+ab$    b\nab   y       $-[0]   2
+'ab\Z'm        ab\nb\n bn      -       -
+'ab\z'm        ab\nb\n n       -       -
+'ab$'m ab\nb\n y       $-[0]   0
+'ab\Z'm        b\nab\n y       $-[0]   2
+'ab\z'm        b\nab\n n       -       -
+'ab$'m b\nab\n y       $-[0]   2
+'ab\Z'm        b\nab   y       $-[0]   2
+'ab\z'm        b\nab   y       $-[0]   2
+'ab$'m b\nab   y       $-[0]   2
+ab\Z   ac\nb\n n       -       -
+ab\z   ac\nb\n n       -       -
+ab$    ac\nb\n n       -       -
+ab\Z   b\nac\n n       -       -
+ab\z   b\nac\n n       -       -
+ab$    b\nac\n n       -       -
+ab\Z   b\nac   n       -       -
+ab\z   b\nac   n       -       -
+ab$    b\nac   n       -       -
+'ab\Z'm        ac\nb\n n       -       -
+'ab\z'm        ac\nb\n n       -       -
+'ab$'m ac\nb\n n       -       -
+'ab\Z'm        b\nac\n n       -       -
+'ab\z'm        b\nac\n n       -       -
+'ab$'m b\nac\n n       -       -
+'ab\Z'm        b\nac   n       -       -
+'ab\z'm        b\nac   n       -       -
+'ab$'m b\nac   n       -       -
+ab\Z   ca\nb\n n       -       -
+ab\z   ca\nb\n n       -       -
+ab$    ca\nb\n n       -       -
+ab\Z   b\nca\n n       -       -
+ab\z   b\nca\n n       -       -
+ab$    b\nca\n n       -       -
+ab\Z   b\nca   n       -       -
+ab\z   b\nca   n       -       -
+ab$    b\nca   n       -       -
+'ab\Z'm        ca\nb\n n       -       -
+'ab\z'm        ca\nb\n n       -       -
+'ab$'m ca\nb\n n       -       -
+'ab\Z'm        b\nca\n n       -       -
+'ab\z'm        b\nca\n n       -       -
+'ab$'m b\nca\n n       -       -
+'ab\Z'm        b\nca   n       -       -
+'ab\z'm        b\nca   n       -       -
+'ab$'m b\nca   n       -       -
+abb\Z  abb\nb\n        n       -       -
+abb\z  abb\nb\n        n       -       -
+abb$   abb\nb\n        n       -       -
+abb\Z  b\nabb\n        y       $-[0]   2
+abb\z  b\nabb\n        n       -       -
+abb$   b\nabb\n        y       $-[0]   2
+abb\Z  b\nabb  y       $-[0]   2
+abb\z  b\nabb  y       $-[0]   2
+abb$   b\nabb  y       $-[0]   2
+'abb\Z'm       abb\nb\n        bn      -       -
+'abb\z'm       abb\nb\n        n       -       -
+'abb$'m        abb\nb\n        y       $-[0]   0
+'abb\Z'm       b\nabb\n        y       $-[0]   2
+'abb\z'm       b\nabb\n        n       -       -
+'abb$'m        b\nabb\n        y       $-[0]   2
+'abb\Z'm       b\nabb  y       $-[0]   2
+'abb\z'm       b\nabb  y       $-[0]   2
+'abb$'m        b\nabb  y       $-[0]   2
+abb\Z  ac\nb\n n       -       -
+abb\z  ac\nb\n n       -       -
+abb$   ac\nb\n n       -       -
+abb\Z  b\nac\n n       -       -
+abb\z  b\nac\n n       -       -
+abb$   b\nac\n n       -       -
+abb\Z  b\nac   n       -       -
+abb\z  b\nac   n       -       -
+abb$   b\nac   n       -       -
+'abb\Z'm       ac\nb\n n       -       -
+'abb\z'm       ac\nb\n n       -       -
+'abb$'m        ac\nb\n n       -       -
+'abb\Z'm       b\nac\n n       -       -
+'abb\z'm       b\nac\n n       -       -
+'abb$'m        b\nac\n n       -       -
+'abb\Z'm       b\nac   n       -       -
+'abb\z'm       b\nac   n       -       -
+'abb$'m        b\nac   n       -       -
+abb\Z  ca\nb\n n       -       -
+abb\z  ca\nb\n n       -       -
+abb$   ca\nb\n n       -       -
+abb\Z  b\nca\n n       -       -
+abb\z  b\nca\n n       -       -
+abb$   b\nca\n n       -       -
+abb\Z  b\nca   n       -       -
+abb\z  b\nca   n       -       -
+abb$   b\nca   n       -       -
+'abb\Z'm       ca\nb\n n       -       -
+'abb\z'm       ca\nb\n n       -       -
+'abb$'m        ca\nb\n n       -       -
+'abb\Z'm       b\nca\n n       -       -
+'abb\z'm       b\nca\n n       -       -
+'abb$'m        b\nca\n n       -       -
+'abb\Z'm       b\nca   n       -       -
+'abb\z'm       b\nca   n       -       -
+'abb$'m        b\nca   n       -       -
+(^|x)(c)       ca      y       $2      c
+a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz   x       n       -       -
+a(?{$a=2;$b=3;($b)=$a})b       yabz    y       $b      2
+round\(((?>[^()]+))\)  _I(round(xs * sz),1)    y       $1      xs * sz
+'((?x:.) )'    x       y       $1-     x -
+'((?-x:.) )'x  x       y       $1-     x-
+foo.bart       foo.bart        y       -       -
+'^d[x][x][x]'m abcd\ndxxx      y       -       -
+.X(.+)+X       bbbbXcXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa  y       -       -
+.X(.+)+XX      bbbbXcXXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa y       -       -
+.XX(.+)+X      bbbbXXcXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa y       -       -
+.X(.+)+X       bbbbXXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa  n       -       -
+.X(.+)+XX      bbbbXXXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa n       -       -
+.XX(.+)+X      bbbbXXXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa n       -       -
+.X(.+)+[X]     bbbbXcXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa  y       -       -
+.X(.+)+[X][X]  bbbbXcXXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa y       -       -
+.XX(.+)+[X]    bbbbXXcXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa y       -       -
+.X(.+)+[X]     bbbbXXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa  n       -       -
+.X(.+)+[X][X]  bbbbXXXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa n       -       -
+.XX(.+)+[X]    bbbbXXXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa n       -       -
+.[X](.+)+[X]   bbbbXcXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa  y       -       -
+.[X](.+)+[X][X]        bbbbXcXXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa y       -       -
+.[X][X](.+)+[X]        bbbbXXcXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa y       -       -
+.[X](.+)+[X]   bbbbXXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa  n       -       -
+.[X](.+)+[X][X]        bbbbXXXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa n       -       -
+.[X][X](.+)+[X]        bbbbXXXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa n       -       -
+tt+$   xxxtt   y       -       -
+([a-\d]+)      za-9z   y       $1      a-9
+([\d-z]+)      a0-za   y       $1      0-z
+([\d-\s]+)     a0- z   y       $1      0- 
+([a-[:digit:]]+)       za-9z   y       $1      a-9
+([[:digit:]-z]+)       =0-z=   y       $1      0-z
+([[:digit:]-[:alpha:]]+)       =0-z=   y       $1      0-z
+\GX.*X aaaXbX  n       -       -
+(\d+\.\d+)     3.1415926       y       $1      3.1415926
+(\ba.{0,10}br) have a web browser      y       $1      a web br
+'\.c(pp|xx|c)?$'i      Changes n       -       -
+'\.c(pp|xx|c)?$'i      IO.c    y       -       -
+'(\.c(pp|xx|c)?$)'i    IO.c    y       $1      .c
+^([a-z]:)      C:/     n       -       -
+'^\S\s+aa$'m   \nx aa  y       -       -
+(^|a)b ab      y       -       -
+^([ab]*?)(b)?(c)$      abac    y       -$2-    --
+(\w)?(abc)\1b  abcab   n       -       -
+^(?:.,){2}c    a,b,c   y       -       -
+^(.,){2}c      a,b,c   y       $1      b,
+^(?:[^,]*,){2}c        a,b,c   y       -       -
+^([^,]*,){2}c  a,b,c   y       $1      b,
+^([^,]*,){3}d  aaa,b,c,d       y       $1      c,
+^([^,]*,){3,}d aaa,b,c,d       y       $1      c,
+^([^,]*,){0,3}d        aaa,b,c,d       y       $1      c,
+^([^,]{1,3},){3}d      aaa,b,c,d       y       $1      c,
+^([^,]{1,3},){3,}d     aaa,b,c,d       y       $1      c,
+^([^,]{1,3},){0,3}d    aaa,b,c,d       y       $1      c,
+^([^,]{1,},){3}d       aaa,b,c,d       y       $1      c,
+^([^,]{1,},){3,}d      aaa,b,c,d       y       $1      c,
+^([^,]{1,},){0,3}d     aaa,b,c,d       y       $1      c,
+^([^,]{0,3},){3}d      aaa,b,c,d       y       $1      c,
+^([^,]{0,3},){3,}d     aaa,b,c,d       y       $1      c,
+^([^,]{0,3},){0,3}d    aaa,b,c,d       y       $1      c,
+(?i)           y       -       -
+'(?!\A)x'm     a\nxb\n y       -       -
+^(a(b)?)+$     aba     y       -$1-$2- -a--
+^(aa(bb)?)+$   aabbaa  y       -$1-$2- -aa--
+'^.{9}abc.*\n'm        123\nabcabcabcabc\n     y       -       -
+^(a)?a$        a       y       -$1-    --
+^(a)?(?(1)a|b)+$       a       n       -       -