magic.t tweak
[p5sagit/p5-mst-13.2.git] / t / op / re_tests
index 52666da..88f69f2 100644 (file)
@@ -45,9 +45,9 @@ 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       -       Invalid [] range "b-a" before HERE mark in regex m/a[b-a << HERE ]/
-a[]b   -       c       -       Unmatched [ before HERE mark in regex m/a[ << HERE ]b/
-a[     -       c       -       Unmatched [ before HERE mark in regex 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
@@ -95,21 +95,21 @@ a[\S]b      a-b     y       -       -
 ab|cd  abc     y       $&      ab
 ab|cd  abcd    y       $&      ab
 ()ef   def     y       $&-$1   ef-
-*a     -       c       -       Quantifier follows nothing before HERE mark in regex m/* << HERE a/
-(*)b   -       c       -       Quantifier follows nothing before HERE mark in regex 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 ) before HERE mark in regex m/abc) << HERE /
-(abc   -       c       -       Unmatched ( before HERE mark in regex 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 before HERE mark in regex 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
@@ -117,7 +117,7 @@ a.+?c       abcabc  y       $&      abc
 (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 ) before HERE mark in regex m/) << HERE (/
+)(     -       c       -       Unmatched )
 [^ab]* cde     y       $&      cde
 abc            n       -       -
 a*             y       $&      
@@ -218,9 +218,9 @@ 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       -       Invalid [] range "b-a" before HERE mark in regex m/a[b-a << HERE ]/
-'a[]b'i        -       c       -       Unmatched [ before HERE mark in regex m/a[ << HERE ]b/
-'a['i  -       c       -       Unmatched [ before HERE mark in regex 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
@@ -232,21 +232,21 @@ 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       -       Quantifier follows nothing before HERE mark in regex m/* << HERE a/
-'(*)b'i        -       c       -       Quantifier follows nothing before HERE mark in regex 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 ) before HERE mark in regex m/abc) << HERE /
-'(abc'i        -       c       -       Unmatched ( before HERE mark in regex 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 before HERE mark in regex 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
@@ -257,7 +257,7 @@ a[-]?c      ac      y       $&      ac
 '(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 ) before HERE mark in regex m/) << HERE (/
+')('i  -       c       -       Unmatched )
 '[^ab]*'i      CDE     y       $&      CDE
 'abc'i         n       -       -
 'a*'i          y       $&      
@@ -346,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       -       Sequence (?<%...) not recognized before HERE mark in regex m/(?<% << HERE )b/
+(?<%)b -       c       -       Sequence (?<%...) not recognized
 (?:..)*a       aba     y       $&      aba
 (?:..)*?a      aba     y       $&      a
 ^(?:b|a(?=(.)))*\1     abc     y       $&      ab
@@ -397,10 +397,10 @@ a(?:b|(c|e){1,2}?|d)+?(.) ace     y       $1$2    ce
 '(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 before HERE mark in regex m/a(?{ << HERE )b/
-a(?{{})b       -       c       -       Sequence (?{...}) not terminated or not {}-balanced before HERE mark in regex 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 before HERE mark in regex 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     {
@@ -441,7 +441,7 @@ x(~~)*(?:(?:F)?)?   x~~     y       -       -
 ^(\(+)?blah(?(1)(\)))$ blah    y       ($2)    ()
 ^(\(+)?blah(?(1)(\)))$ blah)   n       -       -
 ^(\(+)?blah(?(1)(\)))$ (blah   n       -       -
-(?(1?)a|b)     a       c       -       Switch condition not recognized before HERE mark in regex m/(?(1? << HERE )a|b)/
+(?(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
@@ -473,10 +473,10 @@ $(?<=^(a))        a       y       $1      a
 ([[:]+)        a:[b]:  y       $1      :[
 ([[=]+)        a=[b]=  y       $1      =[
 ([[.]+)        a.[b].  y       $1      .[
-[a[:xyz:       -       c       -       Unmatched [ before HERE mark in regex m/[ << HERE a[:xyz:/
-[a[:xyz:]      -       c       -       POSIX class [:xyz:] unknown before HERE mark in regex 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 before HERE mark in regex 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
@@ -503,8 +503,8 @@ $(?<=^(a))  a       y       $1      a
 ([[:^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 before HERE mark in regex m/[[:foo:] << HERE ]/
-[[:^foo:]]     -       c       -       POSIX class [:^foo:] unknown before HERE mark in regex 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
@@ -537,7 +537,7 @@ 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\z'm a\nb\n  n       -       -
 'a$'m  a\nb\n  y       $-[0]   0
 'a\Z'm b\na\n  y       $-[0]   2
@@ -555,7 +555,7 @@ 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\z'm        aa\nb\n n       -       -
 'aa$'m aa\nb\n y       $-[0]   0
 'aa\Z'm        b\naa\n y       $-[0]   2
@@ -609,7 +609,7 @@ 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\z'm        ab\nb\n n       -       -
 'ab$'m ab\nb\n y       $-[0]   0
 'ab\Z'm        b\nab\n y       $-[0]   2
@@ -663,7 +663,7 @@ 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\z'm       abb\nb\n        n       -       -
 'abb$'m        abb\nb\n        y       $-[0]   0
 'abb\Z'm       b\nabb\n        y       $-[0]   2
@@ -781,3 +781,55 @@ tt+$       xxxtt   y       -       -
 ^([0-9a-fA-F]+)(?:x([0-9a-fA-F]+)?)(?:x([0-9a-fA-F]+))?        012cxx0190      y       -       -
 ^(b+?|a){1,2}c bbbac   y       $1      a
 ^(b+?|a){1,2}c bbbbac  y       $1      a
+\((\w\. \w+)\) cd. (A. Tw)     y       -$1-    -A. Tw-
+((?:aaaa|bbbb)cccc)?   aaaacccc        y       -       -
+((?:aaaa|bbbb)cccc)?   bbbbcccc        y       -       -
+(a)?(a)+       a       y       $1:$2   :a      -
+(ab)?(ab)+     ab      y       $1:$2   :ab     -
+(abc)?(abc)+   abc     y       $1:$2   :abc    -
+'b\s^'m        a\nb\n  n       -       -
+\ba    a       y       -       -
+^(a(??{"(?!)"})|(a)(?{1}))b    ab      y       $2      a       # [ID 20010811.006]
+ab(?i)cd       AbCd    n       -       -       # [ID 20010809.023]
+ab(?i)cd       abCd    y       -       -
+(A|B)*(?(1)(CD)|(CD))  CD      y       $2-$3   -CD
+(A|B)*(?(1)(CD)|(CD))  ABCD    y       $2-$3   CD-
+(A|B)*?(?(1)(CD)|(CD)) CD      y       $2-$3   -CD     # [ID 20010803.016]
+(A|B)*?(?(1)(CD)|(CD)) ABCD    y       $2-$3   CD-
+'^(o)(?!.*\1)'i        Oo      n       -       -
+(.*)\d+\1      abc12bc y       $1      bc
+(?m:(foo\s*$)) foo\n bar       y       $1      foo
+(.*)c  abcd    y       $1      ab
+(.*)(?=c)      abcd    y       $1      ab
+(.*)(?=c)c     abcd    yB      $1      ab
+(.*)(?=b|c)    abcd    y       $1      ab
+(.*)(?=b|c)c   abcd    y       $1      ab
+(.*)(?=c|b)    abcd    y       $1      ab
+(.*)(?=c|b)c   abcd    y       $1      ab
+(.*)(?=[bc])   abcd    y       $1      ab
+(.*)(?=[bc])c  abcd    yB      $1      ab
+(.*)(?<=b)     abcd    y       $1      ab
+(.*)(?<=b)c    abcd    y       $1      ab
+(.*)(?<=b|c)   abcd    y       $1      abc
+(.*)(?<=b|c)c  abcd    y       $1      ab
+(.*)(?<=c|b)   abcd    y       $1      abc
+(.*)(?<=c|b)c  abcd    y       $1      ab
+(.*)(?<=[bc])  abcd    y       $1      abc
+(.*)(?<=[bc])c abcd    y       $1      ab
+(.*?)c abcd    y       $1      ab
+(.*?)(?=c)     abcd    y       $1      ab
+(.*?)(?=c)c    abcd    yB      $1      ab
+(.*?)(?=b|c)   abcd    y       $1      a
+(.*?)(?=b|c)c  abcd    y       $1      ab
+(.*?)(?=c|b)   abcd    y       $1      a
+(.*?)(?=c|b)c  abcd    y       $1      ab
+(.*?)(?=[bc])  abcd    y       $1      a
+(.*?)(?=[bc])c abcd    yB      $1      ab
+(.*?)(?<=b)    abcd    y       $1      ab
+(.*?)(?<=b)c   abcd    y       $1      ab
+(.*?)(?<=b|c)  abcd    y       $1      ab
+(.*?)(?<=b|c)c abcd    y       $1      ab
+(.*?)(?<=c|b)  abcd    y       $1      ab
+(.*?)(?<=c|b)c abcd    y       $1      ab
+(.*?)(?<=[bc]) abcd    y       $1      ab
+(.*?)(?<=[bc])c        abcd    y       $1      ab