Make C<undef ~~ 0> and C<undef ~~ ""> not match (like in 5.10.0)
[p5sagit/p5-mst-13.2.git] / t / op / re_tests
index 6f4db07..8c7381f 100644 (file)
@@ -31,6 +31,12 @@ ab*bc        abbbbc  y       $+[0]   6
 .{3,4} abbbbc  y       $&      abbb
 .{3,4} abbbbc  y       $-[0]   0
 .{3,4} abbbbc  y       $+[0]   4
+\N{1}  abbbbc  y       $&      a
+\N{1}  abbbbc  y       $-[0]   0
+\N{1}  abbbbc  y       $+[0]   1
+\N{3,4}        abbbbc  y       $&      abbb
+\N{3,4}        abbbbc  y       $-[0]   0
+\N{3,4}        abbbbc  y       $+[0]   4
 ab{0,}bc       abbbbc  y       $&      abbbbc
 ab{0,}bc       abbbbc  y       $-[0]   0
 ab{0,}bc       abbbbc  y       $+[0]   6
@@ -69,8 +75,11 @@ abc$ aabcd   n       -       -
 $      abc     y       $&      
 a.c    abc     y       $&      abc
 a.c    axc     y       $&      axc
+a\Nc   abc     y       $&      abc
 a.*c   axyzc   y       $&      axyzc
+a\N*c  axyzc   y       $&      axyzc
 a.*c   axyzd   n       -       -
+a\N*c  axyzd   n       -       -
 a[bc]d abc     n       -       -
 a[bc]d abd     y       $&      abd
 a[b]d  abd     y       $&      abd
@@ -78,6 +87,7 @@ a[b]d abd     y       $&      abd
 .[b].  abd     y       $&      abd
 .[b].  aBd     n       -       -
 (?i:.[b].)     abd     y       $&      abd
+(?i:\N[b]\N)   abd     y       $&      abd
 a[b-d]e        abd     n       -       -
 a[b-d]e        ace     y       $&      ace
 a[b-d] aac     y       $&      ac
@@ -315,6 +325,7 @@ a[-]?c      ac      y       $&      ac
 '$'i   ABC     y       $&      
 'a.c'i ABC     y       $&      ABC
 'a.c'i AXC     y       $&      AXC
+'a\Nc'i        ABC     y       $&      ABC
 'a.*?c'i       AXYZC   y       $&      AXYZC
 'a.*c'i        AXYZD   n       -       -
 'a[bc]d'i      ABC     n       -       -
@@ -414,6 +425,7 @@ a[-]?c      ac      y       $&      ac
 '(abc)\1'i     ABCABC  y       $1      ABC
 '([a-c]*)\1'i  ABCABC  y       $1      ABC
 a(?!b).        abad    y       $&      ad
+(?=)a  a       y       $&      a
 a(?=d).        abad    y       $&      ad
 a(?=c|d).      abad    y       $&      ad
 a(?:b|c|d)(.)  ace     y       $1      e
@@ -496,21 +508,24 @@ a(?:b|(c|e){1,2}?|d)+?(.) ace     y       $1$2    ce
 '(?-i:a)b'i    AB      n       -       -
 '((?-i:a))b'i  AB      n       -       -
 '((?-i:a.))b'i a\nB    n       -       -
+'((?-i:a\N))b'i        a\nB    n       -       -
 '((?s-i:a.))b'i        a\nB    y       $1      a\n
+'((?s-i:a\N))b'i       a\nB    n       -       -
 '((?s-i:a.))b'i        B\nB    n       -       -
+'((?s-i:a\N))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
-a(?{})b        cabd    yt      $&      ab      threads confuse eval
+a(?{})b        cabd    y       $&      ab
 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
-a(?{"\{"})b    cabd    yt      $&      ab      threads confuse eval
+a(?{"\{"})b    cabd    y       $&      ab
 a(?{"{"}})b    -       c       -       Unmatched right curly bracket
-a(?{$::bl="\{"}).b     caxbd   yt      $::bl   {       threads confuse eval
+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
@@ -530,6 +545,8 @@ x(~~)*(?:(?:F)?)?   x~~     y       -       -
 ((?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
+((?s)b.)c(?!\N)        a\nb\nc\n       y       $1:$&   b\n:b\nc
+'(b.)c(?!\N)'s 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
@@ -550,10 +567,10 @@ x(~~)*(?:(?:F)?)? x~~     y       -       -
 ^(\(+)?blah(?(1)(\)))$ (blah   n       -       -
 (?(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       nt      -       -       threads confuse eval
-(?(?{0})b|a)   a       yt      $&      a       threads confuse eval
-(?(?{1})b|a)   a       nt      -       -       threads confuse eval
-(?(?{1})a|b)   a       yt      $&      a       threads confuse eval
+(?(?{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       -       -
@@ -573,8 +590,8 @@ $(?<=^(a))  a       y       $1      a
 ([\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     yt      $b      3       threads confuse eval
-(?{$a=2})(a(?{local$a=$a+1}))*aak*c(?{$b=$a})  yaaxxaaaacd     yt      $b      4       threads confuse eval
+(?{$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      :[
@@ -617,6 +634,7 @@ $(?<=^(a))  a       y       $1      a
 ((?>[^()]+)|\([^()]*\))+       ((abc(ade)ufh()()x      y       $&      abc(ade)ufh()()x
 (?<=x+)y       -       c       -       Variable length lookbehind not implemented
 a{37,17}       -       c       -       Can't do {n,m} with n > m
+a{37,0}        -       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
@@ -817,7 +835,7 @@ abb$        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    yt      $b      2       threads confuse eval
+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-
@@ -896,7 +914,7 @@ tt+$        xxxtt   y       -       -
 (abc)?(abc)+   abc     y       $1:$2   :abc    -
 'b\s^'m        a\nb\n  n       -       -
 \ba    a       y       -       -
-^(a(??{"(?!)"})|(a)(?{1}))b    ab      yt      $2      a       # [ID 20010811.006]     threads confuse eval
+^(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
@@ -941,7 +959,7 @@ ab(?i)cd    abCd    y       -       -
 (.*?)(?<=[bc]) abcd    y       $1      ab
 (.*?)(?<=[bc])c        abcd    y       $1      ab
 2(]*)?$\1      2       y       $&      2
-(??{}) x       yt      -       -       threads confuse eval
+(??{}) x       y       -       -
 a(b)?? abc     y       <$1>    <>      # undef [perl #16773]
 (\d{1,3}\.){3,}        128.134.142.8   y       <$1>    <142.>  # [perl #18019]
 ^.{3,4}(.+)\1\z        foobarbar       y       $1      bar     # 16 tests for [perl #23171]
@@ -974,8 +992,8 @@ x(?#        x       c       -       Sequence (?#... not terminated
 (x.|foo|fool|x.|money|parted|y.)$      fools   n       -       -
 (foo|fool|money|parted)$       fools   n       -       -
 (a|aa|aaa||aaaa|aaaaa|aaaaaa)(b|c)     aaaaaaaaaaaaaaab        y       $1$2    aaaaaab
-(a|aa|aaa||aaaa|aaaaa|aaaaaa)(??{$1&&""})(b|c) aaaaaaaaaaaaaaab        yt      $1$2    aaaaaab threads confuse eval
-(a|aa|aaa|aaaa|aaaaa|aaaaaa)(??{$1&&"foo"})(b|c)       aaaaaaaaaaaaaaab        nt      -       -       threads confuse eval
+(a|aa|aaa||aaaa|aaaaa|aaaaaa)(??{$1&&""})(b|c) aaaaaaaaaaaaaaab        y       $1$2    aaaaaab
+(a|aa|aaa|aaaa|aaaaa|aaaaaa)(??{$1&&"foo"})(b|c)       aaaaaaaaaaaaaaab        n       -       -
 ^(a*?)(?!(aa|aaaa)*$)  aaaaaaaaaaaaaaaaaaaa    y       $1      a       # [perl #34195]
 ^(a*?)(?!(aa|aaaa)*$)(?=a\z)   aaaaaaaa        y       $1      aaaaaaa
 ^(.)\s+.$(?(1))        A B     y       $1      A       # [perl #37688]
@@ -1019,18 +1037,18 @@ X(?=foo)        ..XfooY..       y       pos     3
 X(?<=foo.)[YZ] ..XfooXY..      y       pos     8
 (?=XY*foo)     Xfoo    y       pos     0
 ^(?=XY*foo)    Xfoo    y       pos     0
-^(??{"a+"})a   aa      yt      $&      aa      threads confuse eval
-^(?:(??{"a+"})|b)a     aa      yt      $&      aa      threads confuse eval
-^(??{chr 0x100}).$     \x{100}\x{100}  yt      $&      \x{100}\x{100}  threads confuse eval
-^(??{q(\x{100})}).     \x{100}\x{100}  yt      $&      \x{100}\x{100}  threads confuse eval
-^(??{q(.+)})\x{100}    \x{100}\x{100}  yt      $&      \x{100}\x{100}  threads confuse eval
-^(??{q(.)})\x{100}     \x{100}\x{100}  yt      $&      \x{100}\x{100}  threads confuse eval
-^(??{chr 0x100})\xbb   \x{100}\x{bb}   yt      $&      \x{100}\x{bb}   threads confuse eval
-^(.)(??{"(.)(.)"})(.)$ abcd    yt      $1-$2   a-d     threads confuse eval
-^(.)(??{"(bz+|.)(.)"})(.)$     abcd    yt      $1-$2   a-d     threads confuse eval
-^(.)((??{"(.)(cz+)"})|.)       abcd    yt      $1-$2   a-b     threads confuse eval
-^a(?>(??{q(b)}))(??{q(c)})d    abcd    yt      -       -       threads confuse eval
-^x(??{""})+$   x       yt      $&      x       threads confuse eval
+^(??{"a+"})a   aa      y       $&      aa
+^(?:(??{"a+"})|b)a     aa      y       $&      aa
+^(??{chr 0x100}).$     \x{100}\x{100}  y       $&      \x{100}\x{100}
+^(??{q(\x{100})}).     \x{100}\x{100}  y       $&      \x{100}\x{100}
+^(??{q(.+)})\x{100}    \x{100}\x{100}  y       $&      \x{100}\x{100}
+^(??{q(.)})\x{100}     \x{100}\x{100}  y       $&      \x{100}\x{100}
+^(??{chr 0x100})\xbb   \x{100}\x{bb}   y       $&      \x{100}\x{bb}
+^(.)(??{"(.)(.)"})(.)$ abcd    y       $1-$2   a-d
+^(.)(??{"(bz+|.)(.)"})(.)$     abcd    y       $1-$2   a-d
+^(.)((??{"(.)(cz+)"})|.)       abcd    y       $1-$2   a-b
+^a(?>(??{q(b)}))(??{q(c)})d    abcd    y       -       -
+^x(??{""})+$   x       y       $&      x
 ^(<(?:[^<>]+|(?3)|(?1))*>)()(!>!>!>)$  <<!>!>!>><>>!>!>!>      y       $1      <<!>!>!>><>>
 ^(<(?:[^<>]+|(?1))*>)$ <<><<<><>>>>    y       $1      <<><<<><>>>>
 ((?2)*)([fF]o+)        fooFoFoo        y       $1-$2   fooFo-Foo
@@ -1040,13 +1058,13 @@ X(?<=foo.)[YZ]  ..XfooXY..      y       pos     8
 (?<n>foo|bar|baz)(?<m>[ew]+)   snofooewa       y       $+{n}   foo
 (?<n>foo|bar|baz)(?<m>[ew]+)   snofooewa       y       $+{m}   ew
 (?<n>foo)|(?<n>bar)|(?<n>baz)  snofooewa       y       $+{n}   foo
-(?<n>foo)(??{ $+{n} }) snofooefoofoowaa        yt      $+{n}   foo     threads confuse eval
+(?<n>foo)(??{ $+{n} }) snofooefoofoowaa        y       $+{n}   foo
 (?P<n>foo|bar|baz)     snofooewa       y       $1      foo
 (?P<n>foo|bar|baz)     snofooewa       y       $+{n}   foo
 (?P<n>foo|bar|baz)(?P<m>[ew]+) snofooewa       y       $+{n}   foo
 (?P<n>foo|bar|baz)(?P<m>[ew]+) snofooewa       y       $+{m}   ew
 (?P<n>foo)|(?P<n>bar)|(?P<n>baz)       snofooewa       y       $+{n}   foo
-(?P<n>foo)(??{ $+{n} })        snofooefoofoowaa        yt      $+{n}   foo     threads confuse eval
+(?P<n>foo)(??{ $+{n} })        snofooefoofoowaa        y       $+{n}   foo
 (?P<=n>foo|bar|baz)    snofooewa       c       -       Sequence (?P<=...) not recognized
 (?P<!n>foo|bar|baz)    snofooewa       c       -       Sequence (?P<!...) not recognized
 (?PX<n>foo|bar|baz)    snofooewa       c       -       Sequence (?PX<...) not recognized
@@ -1055,7 +1073,7 @@ X(?<=foo.)[YZ]    ..XfooXY..      y       pos     8
 /(?'n'foo|bar|baz)(?'m'[ew]+)/ snofooewa       y       $+{n}   foo
 /(?'n'foo|bar|baz)(?'m'[ew]+)/ snofooewa       y       $+{m}   ew
 /(?'n'foo)|(?'n'bar)|(?<n>baz)/        snobazewa       y       $+{n}   baz
-/(?'n'foo)(??{ $+{n} })/       snofooefoofoowaa        yt      $+{n}   foo     threads confuse eval
+/(?'n'foo)(??{ $+{n} })/       snofooefoofoowaa        y       $+{n}   foo
 /(?'n'foo)\k<n>/       ..foofoo..      y       $1      foo
 /(?'n'foo)\k<n>/       ..foofoo..      y       $+{n}   foo
 /(?<n>foo)\k'n'/       ..foofoo..      y       $1      foo
@@ -1284,6 +1302,7 @@ a*(*F)    aaaab   n       -       -
 X(\w+)(?=\s)|X(\w+)    Xab     y       [$1-$2] [-ab]
 
 #check that branch reset works ok.
+(?|(a))        a       y       $1-$+-$^N       a-a-a
 (?|a(.)b|d(.(o).)d|i(.)(.)j)(.)        d!o!da  y       $1-$2-$3        !o!-o-a
 (?|a(.)b|d(.(o).)d|i(.)(.)j)(.)        aabc    y       $1-$2-$3        a--c
 (?|a(.)b|d(.(o).)d|i(.)(.)j)(.)        ixyjp   y       $1-$2-$3        x-y-p
@@ -1292,10 +1311,16 @@ X(\w+)(?=\s)|X(\w+)     Xab     y       [$1-$2] [-ab]
 (?|(?|(a)|(b))|(?|(c)|(d)))    c       y       $1      c
 (?|(?|(a)|(b))|(?|(c)|(d)))    d       y       $1      d
 (.)(?|(.)(.)x|(.)d)(.) abcde   y       $1-$2-$3-$4-$5- b-c--e--
+(\N)(?|(\N)(\N)x|(\N)d)(\N)    abcde   y       $1-$2-$3-$4-$5- b-c--e--
+(?|(?<foo>x))  x       y       $+{foo} x
+(?|(?<foo>x)|(?<bar>y))        x       y       $+{foo} x
+(?|(?<bar>y)|(?<foo>x))        x       y       $+{foo} x
+(?<bar>)(?|(?<foo>x))  x       y       $+{foo} x
+
 #Bug #41492
 (?(DEFINE)(?<A>(?&B)+)(?<B>a))(?&A)    a       y       $&      a
 (?(DEFINE)(?<A>(?&B)+)(?<B>a))(?&A)    aa      y       $&      aa
-\x{100}?(??{""})xxx    xxx     yt      $&      xxx     threads confuse eval
+\x{100}?(??{""})xxx    xxx     y       $&      xxx
 
 foo(\R)bar     foo\r\nbar      y       $1      \r\n
 foo(\R)bar     foo\nbar        y       $1      \n
@@ -1338,6 +1363,33 @@ foo(\h)bar       foo\tbar        y       $1      \t
 (\H)(\h)       foo\tbar        y       $1-$2   o-\t
 (\h)(\H)       foo\tbar        y       $1-$2   \t-b
 
-.*\z   foo\n   y       -       -
+.*\z   foo\n   y       -$&-    --
+\N*\z  foo\n   y       -$&-    --
+.*\Z   foo\n   y       -$&-    -foo-
+\N*\Z  foo\n   y       -$&-    -foo-
 ^(?:(\d)x)?\d$ 1       y       ${\(defined($1)?1:0)}   0       
 .*?(?:(\w)|(\w))x      abx     y       $1-$2   b-
+
+0{50}  000000000000000000000000000000000000000000000000000     y       -       -
+^a?(?=b)b      ab      B       $&      ab      # Bug #56690
+^a*(?=b)b      ab      B       $&      ab      # Bug #56690
+/>\d+$ \n/ix   >10\n   y       $&      >10
+/>\d+$ \n/ix   >1\n    y       $&      >1
+/\d+$ \n/ix    >10\n   y       $&      10
+/>\d\d$ \n/ix  >10\n   y       $&      >10
+/>\d+$ \n/x    >10\n   y       $&      >10
+
+# Two regressions in 5.8.x (only) introduced by change 30638
+# Simplification of the test failure in XML::LibXML::Simple:
+/^\s*i.*?o\s*$/s       io\n io y       -       -
+# As reported in #59168 by Father Chrysostomos:
+/(.*?)a(?!(a+)b\2c)/   baaabaac        y       $&-$1   baa-ba
+# [perl #60344] Regex lookbehind failure after an (if)then|else in perl 5.10
+/\A(?(?=db2)db2|\D+)(?<!processed)\.csv\z/xms  sql_processed.csv       n       -       -
+/\N{U+0100}/   \x{100} y       $&      \x{100} # Bug #59328
+[\s][\S]       \x{a0}\x{a0}    nT      -       -       # TODO Unicode complements should not match same character
+
+# was generating malformed utf8
+'[\x{100}\xff]'i       \x{ff}  y       $&      \x{ff}
+
+((??{ "(?:|)" }))\s    C\x20   y       -       -