X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/f65d3ee7144b180ff71330675c391d978fcf01d6..389edf241b78737b2f85067f44d638ceaf8a0e8e:/t/op/re_tests diff --git a/t/op/re_tests b/t/op/re_tests index 3d939a6..1bec50b 100644 --- a/t/op/re_tests +++ b/t/op/re_tests @@ -1,24 +1,54 @@ abc abc y $& abc +abc abc y $-[0] 0 +abc abc y $+[0] 3 abc xbc n - - abc axc n - - abc abx n - - abc xabcy y $& abc +abc xabcy y $-[0] 1 +abc xabcy y $+[0] 4 abc ababc y $& abc +abc ababc y $-[0] 2 +abc ababc y $+[0] 5 ab*c abc y $& abc +ab*c abc y $-[0] 0 +ab*c abc y $+[0] 3 ab*bc abc y $& abc +ab*bc abc y $-[0] 0 +ab*bc abc y $+[0] 3 ab*bc abbc y $& abbc +ab*bc abbc y $-[0] 0 +ab*bc abbc y $+[0] 4 ab*bc abbbbc y $& abbbbc +ab*bc abbbbc y $-[0] 0 +ab*bc abbbbc y $+[0] 6 .{1} abbbbc y $& a +.{1} abbbbc y $-[0] 0 +.{1} abbbbc y $+[0] 1 .{3,4} abbbbc y $& abbb +.{3,4} abbbbc y $-[0] 0 +.{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 ab+bc abbc y $& abbc +ab+bc abbc y $-[0] 0 +ab+bc abbc y $+[0] 4 ab+bc abc n - - ab+bc abq n - - ab{1,}bc abq n - - ab+bc abbbbc y $& abbbbc +ab+bc abbbbc y $-[0] 0 +ab+bc abbbbc y $+[0] 6 ab{1,}bc abbbbc y $& abbbbc +ab{1,}bc abbbbc y $-[0] 0 +ab{1,}bc abbbbc y $+[0] 6 ab{1,3}bc abbbbc y $& abbbbc +ab{1,3}bc abbbbc y $-[0] 0 +ab{1,3}bc abbbbc y $+[0] 6 ab{3,4}bc abbbbc y $& abbbbc +ab{3,4}bc abbbbc y $-[0] 0 +ab{3,4}bc abbbbc y $+[0] 6 ab{4,5}bc abbbbc n - - ab?bc abbc y $& abbc ab?bc abc y $& abc @@ -66,6 +96,9 @@ a[^]b]c adc y $& adc \Ba\B -a n - - \Ba\B -a- n - - \By\b xy y - - +\By\b xy y $-[0] 1 +\By\b xy y $+[0] 2 +\By\b xy y - - \by\B yz y - - \By\B xyz y - - \w a y - - @@ -95,6 +128,10 @@ a[\S]b a-b y - - ab|cd abc y $& ab ab|cd abcd y $& ab ()ef def y $&-$1 ef- +()ef def y $-[0] 1 +()ef def y $+[0] 3 +()ef def y $-[1] 1 +()ef def y $+[1] 1 *a - c - Quantifier follows nothing (*)b - c - Quantifier follows nothing $b b n - - @@ -106,12 +143,22 @@ a\\b a\b y $& a\b abc) - c - Unmatched ) (abc - c - Unmatched ( ((a)) abc y $&-$1-$2 a-a-a +((a)) abc y $-[0]-$-[1]-$-[2] 0-0-0 +((a)) abc y $+[0]-$+[1]-$+[2] 1-1-1 +((a)) abc b @- 0 0 0 +((a)) abc b @+ 1 1 1 (a)b(c) abc y $&-$1-$2 abc-a-c +(a)b(c) abc y $-[0]-$-[1]-$-[2] 0-0-2 +(a)b(c) abc y $+[0]-$+[1]-$+[2] 3-1-3 a+b+c aabbabc y $& abc a{1,}b{1,}c aabbabc y $& abc a** - c - Nested quantifiers a.+?c abcabc y $& abc (a+|b)* ab y $&-$1 ab-b +(a+|b)* ab y $-[0] 0 +(a+|b)* ab y $+[0] 2 +(a+|b)* ab y $-[1] 1 +(a+|b)* ab y $+[1] 2 (a+|b){0,} ab y $&-$1 ab-b (a+|b)+ ab y $&-$1 ab-b (a+|b){1,} ab y $&-$1 ab-b @@ -125,6 +172,10 @@ a* y $& ([abc])*bcd abcd y $&-$1 abcd-a a|b|c|d|e e y $& e (a|b|c|d|e)f ef y $&-$1 ef-e +(a|b|c|d|e)f ef y $-[0] 0 +(a|b|c|d|e)f ef y $+[0] 2 +(a|b|c|d|e)f ef y $-[1] 0 +(a|b|c|d|e)f ef y $+[1] 1 abcd*efg abcdefg y $& abcdefg ab* xabyabbbz y $& ab ab* xayabbbz y $& a @@ -136,12 +187,38 @@ ab* xayabbbz y $& a (ab|ab*)bc abc y $&-$1 abc-a a([bc]*)c* abc y $&-$1 abc-bc a([bc]*)(c*d) abcd y $&-$1-$2 abcd-bc-d +a([bc]*)(c*d) abcd y $-[0] 0 +a([bc]*)(c*d) abcd y $+[0] 4 +a([bc]*)(c*d) abcd y $-[1] 1 +a([bc]*)(c*d) abcd y $+[1] 3 +a([bc]*)(c*d) abcd y $-[2] 3 +a([bc]*)(c*d) abcd y $+[2] 4 a([bc]+)(c*d) abcd y $&-$1-$2 abcd-bc-d a([bc]*)(c+d) abcd y $&-$1-$2 abcd-b-cd +a([bc]*)(c+d) abcd y $-[0] 0 +a([bc]*)(c+d) abcd y $+[0] 4 +a([bc]*)(c+d) abcd y $-[1] 1 +a([bc]*)(c+d) abcd y $+[1] 2 +a([bc]*)(c+d) abcd y $-[2] 2 +a([bc]*)(c+d) abcd y $+[2] 4 a[bcd]*dcdcde adcdcde y $& adcdcde a[bcd]+dcdcde adcdcde n - - (ab|a)b*c abc y $&-$1 abc-ab +(ab|a)b*c abc y $-[0] 0 +(ab|a)b*c abc y $+[0] 3 +(ab|a)b*c abc y $-[1] 0 +(ab|a)b*c abc y $+[1] 2 ((a)(b)c)(d) abcd y $1-$2-$3-$4 abc-a-b-d +((a)(b)c)(d) abcd y $-[0] 0 +((a)(b)c)(d) abcd y $+[0] 4 +((a)(b)c)(d) abcd y $-[1] 0 +((a)(b)c)(d) abcd y $+[1] 3 +((a)(b)c)(d) abcd y $-[2] 0 +((a)(b)c)(d) abcd y $+[2] 1 +((a)(b)c)(d) abcd y $-[3] 1 +((a)(b)c)(d) abcd y $+[3] 2 +((a)(b)c)(d) abcd y $-[4] 3 +((a)(b)c)(d) abcd y $+[4] 4 [a-zA-Z_][a-zA-Z0-9_]* alpha y $& alpha ^a(bc+|b[eh])g|.h$ abh y $&-$1 bh- (bc+d$|ef*g.|h?i(j|k)) effgz y $&-$1-$2 effgz-effgz- @@ -150,6 +227,10 @@ a[bcd]+dcdcde adcdcde n - - (bc+d$|ef*g.|h?i(j|k)) bcdd n - - (bc+d$|ef*g.|h?i(j|k)) reffgz y $&-$1-$2 effgz-effgz- ((((((((((a)))))))))) a y $10 a +((((((((((a)))))))))) a y $-[0] 0 +((((((((((a)))))))))) a y $+[0] 1 +((((((((((a)))))))))) a y $-[10] 0 +((((((((((a)))))))))) a y $+[10] 1 ((((((((((a))))))))))\10 aa y $& aa ((((((((((a))))))))))${bang} aa n - - ((((((((((a))))))))))${bang} a! y $& a! @@ -174,6 +255,12 @@ a[-]?c ac y $& ac ((\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 +(a)|(b) b y $-[0] 0 +(a)|(b) b y $+[0] 1 +(a)|(b) b y x$-[1] x +(a)|(b) b y x$+[1] x +(a)|(b) b y $-[2] 0 +(a)|(b) b y $+[2] 1 'abc'i ABC y $& ABC 'abc'i XBC n - - 'abc'i AXC n - - @@ -797,3 +884,62 @@ ab(?i)cd abCd y - - (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 +2(]*)?$\1 2 y $& 2 +(??{}) 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] +^(?:f|o|b){3,4}(.+)\1\z foobarbar y $1 bar +^.{3,4}((?:b|a|r)+)\1\z foobarbar y $1 bar +^(?:f|o|b){3,4}((?:b|a|r)+)\1\z foobarbar y $1 bar +^.{3,4}(.+?)\1\z foobarbar y $1 bar +^(?:f|o|b){3,4}(.+?)\1\z foobarbar y $1 bar +^.{3,4}((?:b|a|r)+?)\1\z foobarbar y $1 bar +^(?:f|o|b){3,4}((?:b|a|r)+?)\1\z foobarbar y $1 bar +^.{2,3}?(.+)\1\z foobarbar y $1 bar +^(?:f|o|b){2,3}?(.+)\1\z foobarbar y $1 bar +^.{2,3}?((?:b|a|r)+)\1\z foobarbar y $1 bar +^(?:f|o|b){2,3}?((?:b|a|r)+)\1\z foobarbar y $1 bar +^.{2,3}?(.+?)\1\z foobarbar y $1 bar +^(?:f|o|b){2,3}?(.+?)\1\z foobarbar y $1 bar +^.{2,3}?((?:b|a|r)+?)\1\z foobarbar y $1 bar +^(?:f|o|b){2,3}?((?:b|a|r)+?)\1\z foobarbar y $1 bar +.*a(?!(b|cd)*e).*f ......abef n - - # [perl #23030] +x(?# x c - Sequence (?#... not terminated +:x(?#: x c - Sequence (?#... not terminated