test @+ and @- features
Mark-Jason Dominus [Sun, 14 Apr 2002 22:30:17 +0000 (22:30 +0000)]
Message-ID: <20020414223017.17361.qmail@plover.com>

p4raw-id: //depot/perl@15922

t/op/re_tests

index 55bd637..7ced95c 100644 (file)
@@ -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       -       -