specify type of bracket in "Unmatched bracket" diagnostic;
[p5sagit/p5-mst-13.2.git] / t / op / re_tests
index dd54a2a..5abe217 100644 (file)
@@ -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,6 +164,16 @@ 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
+(a)|\1 a       y       -       -
+(a)|\1 x       n       -       -
+(a)|\2 -       c       -       /(a)|\2/: 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       -       -
+((\3|b)\2(a)x)+        aaaxabaxbaaxbbax        y       $&-$1-$2-$3     bbax-bbax-b-a
+((\3|b)\2(a)){2,}      bbaababbabaaaaabbaaaabba        y       $&-$1-$2-$3     bbaaaabba-bba-b-a
 'abc'i ABC     y       $&      ABC
 'abc'i XBC     n       -       -
 'abc'i AXC     n       -       -
@@ -281,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
@@ -325,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       -       -
@@ -349,6 +362,35 @@ a(?:b|(c|e){1,2}?|d)+?(.)  ace     y       $1$2    ce
 ((?i)a)b       Ab      y       $&:$1   Ab:A
 (?:(?i)a)b     aB      n       -       -
 ((?i)a)b       aB      n       -       -
+(?i:a)b        ab      y       $&      ab
+((?i:a))b      ab      y       $&:$1   ab:a
+(?i:a)b        Ab      y       $&      Ab
+((?i:a))b      Ab      y       $&:$1   Ab:A
+(?i:a)b        aB      n       -       -
+((?i:a))b      aB      n       -       -
+'(?:(?-i)a)b'i ab      y       $&      ab
+'((?-i)a)b'i   ab      y       $&:$1   ab:a
+'(?:(?-i)a)b'i aB      y       $&      aB
+'((?-i)a)b'i   aB      y       $&:$1   aB:a
+'(?:(?-i)a)b'i Ab      n       -       -
+'((?-i)a)b'i   Ab      n       -       -
+'(?:(?-i)a)b'i aB      y       $&      aB
+'((?-i)a)b'i   aB      y       $1      a
+'(?:(?-i)a)b'i AB      n       -       -
+'((?-i)a)b'i   AB      n       -       -
+'(?-i:a)b'i    ab      y       $&      ab
+'((?-i:a))b'i  ab      y       $&:$1   ab:a
+'(?-i:a)b'i    aB      y       $&      aB
+'((?-i:a))b'i  aB      y       $&:$1   aB:a
+'(?-i:a)b'i    Ab      n       -       -
+'((?-i:a))b'i  Ab      n       -       -
+'(?-i:a)b'i    aB      y       $&      aB
+'((?-i:a))b'i  aB      y       $1      a
+'(?-i:a)b'i    AB      n       -       -
+'((?-i:a))b'i  AB      n       -       -
+'((?-i:a.))b'i a\nB    n       -       -
+'((?s-i:a.))b'i        a\nB    y       $1      a\n
+'((?s-i:a.))b'i        B\nB    n       -       -
 (?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))       cabbbb  y       $&      cabbbb
 (?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))    caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb       y       $&      caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
 '(ab)\d\1'i    Ab4ab   y       $1      Ab
@@ -360,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
@@ -444,3 +486,9 @@ b\Z a\nb\n  y       -       -
 b\z    a\nb\n  n       -       -
 b\Z    a\nb    y       -       -
 b\z    a\nb    y       -       -
+(^|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-