Test hex('x...').
[p5sagit/p5-mst-13.2.git] / t / op / re_tests
index 1f035c7..34b6e29 100644 (file)
@@ -8,6 +8,8 @@ ab*c    abc     y       $&      abc
 ab*bc  abc     y       $&      abc
 ab*bc  abbc    y       $&      abbc
 ab*bc  abbbbc  y       $&      abbbbc
+.{1}   abbbbc  y       $&      a
+.{3,4} abbbbc  y       $&      abbb
 ab{0,}bc       abbbbc  y       $&      abbbbc
 ab+bc  abbc    y       $&      abbc
 ab+bc  abc     n       -       -
@@ -29,6 +31,7 @@ ab{0,1}c      abc     y       $&      abc
 ^abc   abcc    y       $&      abc
 ^abc$  aabc    n       -       -
 abc$   aabc    y       $&      abc
+abc$   aabcd   n       -       -
 ^      abc     y       $&      
 $      abc     y       $&      
 a.c    abc     y       $&      abc
@@ -148,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
@@ -161,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       -       -
@@ -278,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
@@ -299,9 +312,406 @@ a(?=c|d). abad    y       $&      ad
 a(?:b|c|d)(.)  ace     y       $1      e
 a(?:b|c|d)*(.) ace     y       $1      e
 a(?:b|c|d)+?(.)        ace     y       $1      e
+a(?:b|c|d)+?(.)        acdbcdbe        y       $1      d
+a(?:b|c|d)+(.) acdbcdbe        y       $1      e
+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
+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
+a(?:b|c|d){5,6}?(.)    acdbcdbe        y       $1      b
+a(?:b|c|d){5,7}(.)     acdbcdbe        y       $1      e
+a(?:b|c|d){5,7}?(.)    acdbcdbe        y       $1      b
 a(?:b|(c|e){1,2}?|d)+?(.)      ace     y       $1$2    ce
 ^(.+)?B        AB      y       $1      A
-'([a-z]+)\s\1'i        Aa aa   y       $&-$1   Aa aa-Aa
-'([a-z]+)\s\1'i        Ab ab   y       $&-$1   Ab ab-Ab
+^([^a-z])|(\^)$        .       y       $1      .
+^[<>]& <&OUT   y       $&      <&
+^(a\1?){4}$    aaaaaaaaaa      y       $1      aaaa
+^(a\1?){4}$    aaaaaaaaa       n       -       -
+^(a\1?){4}$    aaaaaaaaaaa     n       -       -
+^(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       -       -
+(?<=a)b        b       n       -       -
+(?<!c)b        ab      y       $&      b
+(?<!c)b        cb      n       -       -
+(?<!c)b        b       y       -       -
+(?<!c)b        b       y       $&      b
+(?<%)b -       c       -       /(?<%)b/: Sequence (?%...) not recognized
+(?:..)*a       aba     y       $&      aba
+(?:..)*?a      aba     y       $&      a
+^(?:b|a(?=(.)))*\1     abc     y       $&      ab
+^(){3,5}       abc     y       a$1     a
+^(a+)*ax       aax     y       $1      a
+^((a|b)+)*ax   aax     y       $1      a
+^((a|bc)+)*ax  aax     y       $1      a
+(a|x)*ab       cab     y       y$1     y
+(a)*ab cab     y       y$1     y
+(?:(?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        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
+'(ab)\d\1'i    ab4Ab   y       $1      ab
 foo\w*\d{4}baz foobar1234baz   y       $&      foobar1234baz
-:(?:   -       c       -       Sequence (? incomplete
+a(?{})b        cabd    y       $&      ab
+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     -       c       -       /a(?{"{"})b/: Sequence (?{...}) not terminated or not {}-balanced
+a(?{"\{"})b    cabd    y       $&      ab
+a(?{"{"}})b    -       c       -       Unmatched right curly bracket
+a(?{$bl="\{"}).b       caxbd   y       $bl     {
+x(~~)*(?:(?:F)?)?      x~~     y       -       -
+^a(?#xxx){3}c  aaac    y       $&      aaac
+'^a (?#xxx) (?#yyy) {3}c'x     aaac    y       $&      aaac
+(?<![cd])b     dbcb    n       -       -
+(?<![cd])[ab]  dbaacb  y       $&      a
+(?<!(c|d))b    dbcb    n       -       -
+(?<!(c|d))[ab] dbaacb  y       $&      a
+(?<!cd)[ab]    cdaccb  y       $&      b
+^(?:a?b?)*$    a--     n       -       -
+((?s)^a(.))((?m)^b$)   a\nb\nc\n       y       $1;$2;$3        a\n;\n;b
+((?m)^b$)      a\nb\nc\n       y       $1      b
+(?m)^b a\nb\n  y       $&      b
+(?m)^(b)       a\nb\n  y       $1      b
+((?m)^b)       a\nb\n  y       $1      b
+\n((?m)^b)     a\nb\n  y       $1      b
+((?s).)c(?!.)  a\nb\nc\n       y       $1      \n
+((?s).)c(?!.)  a\nb\nc\n       y       $1:$&   \n:\nc
+((?s)b.)c(?!.) a\nb\nc\n       y       $1      b\n
+((?s)b.)c(?!.) a\nb\nc\n       y       $1:$&   b\n:b\nc
+^b     a\nb\nc\n       n       -       -
+()^b   a\nb\nc\n       n       -       -
+((?m)^b)       a\nb\nc\n       y       $1      b
+(?(1)a|b)      a       n       -       -
+(?(1)b|a)      a       y       $&      a
+(x)?(?(1)a|b)  a       n       -       -
+(x)?(?(1)b|a)  a       y       $&      a
+()?(?(1)b|a)   a       y       $&      a
+()(?(1)b|a)    a       n       -       -
+()?(?(1)a|b)   a       y       $&      a
+^(\()?blah(?(1)(\)))$  (blah)  y       $2      )
+^(\()?blah(?(1)(\)))$  blah    y       ($2)    ()
+^(\()?blah(?(1)(\)))$  blah)   n       -       -
+^(\()?blah(?(1)(\)))$  (blah   n       -       -
+^(\(+)?blah(?(1)(\)))$ (blah)  y       $2      )
+^(\(+)?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
+(?(?{0})a|b)   a       n       -       -
+(?(?{0})b|a)   a       y       $&      a
+(?(?{1})b|a)   a       n       -       -
+(?(?{1})a|b)   a       y       $&      a
+(?(?!a)a|b)    a       n       -       -
+(?(?!a)b|a)    a       y       $&      a
+(?(?=a)b|a)    a       n       -       -
+(?(?=a)a|b)    a       y       $&      a
+(?=(a+?))(\1ab)        aaab    y       $2      aab
+^(?=(a+?))\1ab aaab    n       -       -
+(\w+:)+        one:    y       $1      one:
+$(?<=^(a))     a       y       $1      a
+(?=(a+?))(\1ab)        aaab    y       $2      aab
+^(?=(a+?))\1ab aaab    n       -       -
+([\w:]+::)?(\w+)$      abcd:   n       -       -
+([\w:]+::)?(\w+)$      abcd    y       $1-$2   -abcd
+([\w:]+::)?(\w+)$      xy:z:::abcd     y       $1-$2   xy:z:::-abcd
+^[^bcd]*(c+)   aexycd  y       $1      c
+(a*)b+ caab    y       $1      aa
+([\w:]+::)?(\w+)$      abcd:   n       -       -
+([\w:]+::)?(\w+)$      abcd    y       $1-$2   -abcd
+([\w:]+::)?(\w+)$      xy:z:::abcd     y       $1-$2   xy:z:::-abcd
+^[^bcd]*(c+)   aexycd  y       $1      c
+(?{$a=2})a*aa(?{local$a=$a+1})k*c(?{$b=$a})    yaaxxaaaacd     y       $b      3
+(?{$a=2})(a(?{local$a=$a+1}))*aak*c(?{$b=$a})  yaaxxaaaacd     y       $b      4
+(>a+)ab        aaab    n       -       -
+(?>a+)b        aaab    y       -       -
+([[:]+)        a:[b]:  y       $1      :[
+([[=]+)        a=[b]=  y       $1      =[
+([[.]+)        a.[b].  y       $1      .[
+[a[:xyz:       -       c       -       /[a[:xyz:/: unmatched [] in regexp
+[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
+\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       -       -
+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       -       -