Annotation of embedaddon/pcre/testdata/testoutput11, revision 1.1.1.1

1.1       misho       1: /-- These tests are for the Perl >= 5.10 features that PCRE supports. --/
                      2: 
                      3: /\H\h\V\v/
                      4:     X X\x0a
                      5:  0: X X\x0a
                      6:     X\x09X\x0b
                      7:  0: X\x09X\x0b
                      8:     ** Failers
                      9: No match
                     10:     \xa0 X\x0a   
                     11: No match
                     12:     
                     13: /\H*\h+\V?\v{3,4}/ 
                     14:     \x09\x20\xa0X\x0a\x0b\x0c\x0d\x0a
                     15:  0: \x09 \xa0X\x0a\x0b\x0c\x0d
                     16:     \x09\x20\xa0\x0a\x0b\x0c\x0d\x0a
                     17:  0: \x09 \xa0\x0a\x0b\x0c\x0d
                     18:     \x09\x20\xa0\x0a\x0b\x0c
                     19:  0: \x09 \xa0\x0a\x0b\x0c
                     20:     ** Failers 
                     21: No match
                     22:     \x09\x20\xa0\x0a\x0b
                     23: No match
                     24:      
                     25: /\H{3,4}/
                     26:     XY  ABCDE
                     27:  0: ABCD
                     28:     XY  PQR ST 
                     29:  0: PQR
                     30:     
                     31: /.\h{3,4}./
                     32:     XY  AB    PQRS
                     33:  0: B    P
                     34: 
                     35: /\h*X\h?\H+Y\H?Z/
                     36:     >XNNNYZ
                     37:  0: XNNNYZ
                     38:     >  X NYQZ
                     39:  0:   X NYQZ
                     40:     ** Failers
                     41: No match
                     42:     >XYZ   
                     43: No match
                     44:     >  X NY Z
                     45: No match
                     46: 
                     47: /\v*X\v?Y\v+Z\V*\x0a\V+\x0b\V{2,3}\x0c/
                     48:     >XY\x0aZ\x0aA\x0bNN\x0c
                     49:  0: XY\x0aZ\x0aA\x0bNN\x0c
                     50:     >\x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c
                     51:  0: \x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c
                     52: 
                     53: /(foo)\Kbar/
                     54:     foobar
                     55:  0: bar
                     56:  1: foo
                     57:    
                     58: /(foo)(\Kbar|baz)/
                     59:     foobar
                     60:  0: bar
                     61:  1: foo
                     62:  2: bar
                     63:     foobaz 
                     64:  0: foobaz
                     65:  1: foo
                     66:  2: baz
                     67: 
                     68: /(foo\Kbar)baz/
                     69:     foobarbaz
                     70:  0: barbaz
                     71:  1: foobar
                     72: 
                     73: /abc\K|def\K/g+
                     74:     Xabcdefghi
                     75:  0: 
                     76:  0+ defghi
                     77:  0: 
                     78:  0+ ghi
                     79: 
                     80: /ab\Kc|de\Kf/g+
                     81:     Xabcdefghi
                     82:  0: c
                     83:  0+ defghi
                     84:  0: f
                     85:  0+ ghi
                     86:     
                     87: /(?=C)/g+
                     88:     ABCDECBA
                     89:  0: 
                     90:  0+ CDECBA
                     91:  0: 
                     92:  0+ CBA
                     93:     
                     94: /^abc\K/+
                     95:     abcdef
                     96:  0: 
                     97:  0+ def
                     98:     ** Failers
                     99: No match
                    100:     defabcxyz   
                    101: No match
                    102: 
                    103: /^(a(b))\1\g1\g{1}\g-1\g{-1}\g{-02}Z/
                    104:     ababababbbabZXXXX
                    105:  0: ababababbbabZ
                    106:  1: ab
                    107:  2: b
                    108: 
                    109: /(?<A>tom|bon)-\g{A}/
                    110:     tom-tom
                    111:  0: tom-tom
                    112:  1: tom
                    113:     bon-bon 
                    114:  0: bon-bon
                    115:  1: bon
                    116:     
                    117: /(^(a|b\g{-1}))/
                    118:     bacxxx
                    119: No match
                    120: 
                    121: /(?|(abc)|(xyz))\1/
                    122:     abcabc
                    123:  0: abcabc
                    124:  1: abc
                    125:     xyzxyz 
                    126:  0: xyzxyz
                    127:  1: xyz
                    128:     ** Failers
                    129: No match
                    130:     abcxyz
                    131: No match
                    132:     xyzabc   
                    133: No match
                    134:     
                    135: /(?|(abc)|(xyz))(?1)/
                    136:     abcabc
                    137:  0: abcabc
                    138:  1: abc
                    139:     xyzabc 
                    140:  0: xyzabc
                    141:  1: xyz
                    142:     ** Failers 
                    143: No match
                    144:     xyzxyz 
                    145: No match
                    146:  
                    147: /^X(?5)(a)(?|(b)|(q))(c)(d)(Y)/
                    148:     XYabcdY
                    149:  0: XYabcdY
                    150:  1: a
                    151:  2: b
                    152:  3: c
                    153:  4: d
                    154:  5: Y
                    155: 
                    156: /^X(?7)(a)(?|(b|(r)(s))|(q))(c)(d)(Y)/
                    157:     XYabcdY
                    158:  0: XYabcdY
                    159:  1: a
                    160:  2: b
                    161:  3: <unset>
                    162:  4: <unset>
                    163:  5: c
                    164:  6: d
                    165:  7: Y
                    166: 
                    167: /^X(?7)(a)(?|(b|(?|(r)|(t))(s))|(q))(c)(d)(Y)/
                    168:     XYabcdY
                    169:  0: XYabcdY
                    170:  1: a
                    171:  2: b
                    172:  3: <unset>
                    173:  4: <unset>
                    174:  5: c
                    175:  6: d
                    176:  7: Y
                    177: 
                    178: /(?'abc'\w+):\k<abc>{2}/
                    179:     a:aaxyz
                    180:  0: a:aa
                    181:  1: a
                    182:     ab:ababxyz
                    183:  0: ab:abab
                    184:  1: ab
                    185:     ** Failers
                    186: No match
                    187:     a:axyz
                    188: No match
                    189:     ab:abxyz
                    190: No match
                    191: 
                    192: /(?'abc'\w+):\g{abc}{2}/
                    193:     a:aaxyz
                    194:  0: a:aa
                    195:  1: a
                    196:     ab:ababxyz
                    197:  0: ab:abab
                    198:  1: ab
                    199:     ** Failers
                    200: No match
                    201:     a:axyz
                    202: No match
                    203:     ab:abxyz
                    204: No match
                    205: 
                    206: /^(?<ab>a)? (?(<ab>)b|c) (?('ab')d|e)/x
                    207:     abd
                    208:  0: abd
                    209:  1: a
                    210:     ce
                    211:  0: ce
                    212: 
                    213: /^(a.)\g-1Z/
                    214:     aXaXZ
                    215:  0: aXaXZ
                    216:  1: aX
                    217: 
                    218: /^(a.)\g{-1}Z/
                    219:     aXaXZ
                    220:  0: aXaXZ
                    221:  1: aX
                    222: 
                    223: /^(?(DEFINE) (?<A> a) (?<B> b) )  (?&A) (?&B) /x
                    224:     abcd
                    225:  0: ab
                    226: 
                    227: /(?<NAME>(?&NAME_PAT))\s+(?<ADDR>(?&ADDRESS_PAT))
                    228:   (?(DEFINE)
                    229:   (?<NAME_PAT>[a-z]+)
                    230:   (?<ADDRESS_PAT>\d+)
                    231:   )/x
                    232:     metcalfe 33
                    233:  0: metcalfe 33
                    234:  1: metcalfe
                    235:  2: 33
                    236: 
                    237: /(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))\b(?&byte)(\.(?&byte)){3}/
                    238:     1.2.3.4
                    239:  0: 1.2.3.4
                    240:  1: <unset>
                    241:  2: .4
                    242:     131.111.10.206
                    243:  0: 131.111.10.206
                    244:  1: <unset>
                    245:  2: .206
                    246:     10.0.0.0
                    247:  0: 10.0.0.0
                    248:  1: <unset>
                    249:  2: .0
                    250:     ** Failers
                    251: No match
                    252:     10.6
                    253: No match
                    254:     455.3.4.5
                    255: No match
                    256: 
                    257: /\b(?&byte)(\.(?&byte)){3}(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))/
                    258:     1.2.3.4
                    259:  0: 1.2.3.4
                    260:  1: .4
                    261:     131.111.10.206
                    262:  0: 131.111.10.206
                    263:  1: .206
                    264:     10.0.0.0
                    265:  0: 10.0.0.0
                    266:  1: .0
                    267:     ** Failers
                    268: No match
                    269:     10.6
                    270: No match
                    271:     455.3.4.5
                    272: No match
                    273: 
                    274: /^(\w++|\s++)*$/
                    275:     now is the time for all good men to come to the aid of the party
                    276:  0: now is the time for all good men to come to the aid of the party
                    277:  1: party
                    278:     *** Failers
                    279: No match
                    280:     this is not a line with only words and spaces!
                    281: No match
                    282: 
                    283: /(\d++)(\w)/
                    284:     12345a
                    285:  0: 12345a
                    286:  1: 12345
                    287:  2: a
                    288:     *** Failers
                    289: No match
                    290:     12345+
                    291: No match
                    292: 
                    293: /a++b/
                    294:     aaab
                    295:  0: aaab
                    296: 
                    297: /(a++b)/
                    298:     aaab
                    299:  0: aaab
                    300:  1: aaab
                    301: 
                    302: /(a++)b/
                    303:     aaab
                    304:  0: aaab
                    305:  1: aaa
                    306: 
                    307: /([^()]++|\([^()]*\))+/
                    308:     ((abc(ade)ufh()()x
                    309:  0: abc(ade)ufh()()x
                    310:  1: x
                    311: 
                    312: /\(([^()]++|\([^()]+\))+\)/
                    313:     (abc)
                    314:  0: (abc)
                    315:  1: abc
                    316:     (abc(def)xyz)
                    317:  0: (abc(def)xyz)
                    318:  1: xyz
                    319:     *** Failers
                    320: No match
                    321:     ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
                    322: No match
                    323: 
                    324: /^([^()]|\((?1)*\))*$/
                    325:     abc
                    326:  0: abc
                    327:  1: c
                    328:     a(b)c
                    329:  0: a(b)c
                    330:  1: c
                    331:     a(b(c))d
                    332:  0: a(b(c))d
                    333:  1: d
                    334:     *** Failers)
                    335: No match
                    336:     a(b(c)d
                    337: No match
                    338: 
                    339: /^>abc>([^()]|\((?1)*\))*<xyz<$/
                    340:    >abc>123<xyz<
                    341:  0: >abc>123<xyz<
                    342:  1: 3
                    343:    >abc>1(2)3<xyz<
                    344:  0: >abc>1(2)3<xyz<
                    345:  1: 3
                    346:    >abc>(1(2)3)<xyz<
                    347:  0: >abc>(1(2)3)<xyz<
                    348:  1: (1(2)3)
                    349: 
                    350: /^(?:((.)(?1)\2|)|((.)(?3)\4|.))$/i
                    351:     1221
                    352:  0: 1221
                    353:  1: 1221
                    354:  2: 1
                    355:     Satanoscillatemymetallicsonatas
                    356:  0: Satanoscillatemymetallicsonatas
                    357:  1: <unset>
                    358:  2: <unset>
                    359:  3: Satanoscillatemymetallicsonatas
                    360:  4: S
                    361:     AmanaplanacanalPanama
                    362:  0: AmanaplanacanalPanama
                    363:  1: <unset>
                    364:  2: <unset>
                    365:  3: AmanaplanacanalPanama
                    366:  4: A
                    367:     AblewasIereIsawElba
                    368:  0: AblewasIereIsawElba
                    369:  1: <unset>
                    370:  2: <unset>
                    371:  3: AblewasIereIsawElba
                    372:  4: A
                    373:     *** Failers
                    374: No match
                    375:     Thequickbrownfox
                    376: No match
                    377: 
                    378: /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/
                    379:     12
                    380:  0: 12
                    381:  1: 12
                    382:     (((2+2)*-3)-7)
                    383:  0: (((2+2)*-3)-7)
                    384:  1: (((2+2)*-3)-7)
                    385:  2: -
                    386:     -12
                    387:  0: -12
                    388:  1: -12
                    389:     *** Failers
                    390: No match
                    391:     ((2+2)*-3)-7)
                    392: No match
                    393: 
                    394: /^(x(y|(?1){2})z)/
                    395:     xyz
                    396:  0: xyz
                    397:  1: xyz
                    398:  2: y
                    399:     xxyzxyzz
                    400:  0: xxyzxyzz
                    401:  1: xxyzxyzz
                    402:  2: xyzxyz
                    403:     *** Failers
                    404: No match
                    405:     xxyzz
                    406: No match
                    407:     xxyzxyzxyzz
                    408: No match
                    409: 
                    410: /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/x
                    411:     <>
                    412:  0: <>
                    413:  1: <>
                    414:  2: <>
                    415:     <abcd>
                    416:  0: <abcd>
                    417:  1: <abcd>
                    418:  2: <abcd>
                    419:     <abc <123> hij>
                    420:  0: <abc <123> hij>
                    421:  1: <abc <123> hij>
                    422:  2: <abc <123> hij>
                    423:     <abc <def> hij>
                    424:  0: <def>
                    425:  1: <def>
                    426:  2: <def>
                    427:     <abc<>def>
                    428:  0: <abc<>def>
                    429:  1: <abc<>def>
                    430:  2: <abc<>def>
                    431:     <abc<>
                    432:  0: <>
                    433:  1: <>
                    434:  2: <>
                    435:     *** Failers
                    436: No match
                    437:     <abc
                    438: No match
                    439: 
                    440: /^a+(*FAIL)/
                    441:     aaaaaa
                    442: No match
                    443:     
                    444: /a+b?c+(*FAIL)/
                    445:     aaabccc
                    446: No match
                    447: 
                    448: /a+b?(*PRUNE)c+(*FAIL)/
                    449:     aaabccc
                    450: No match
                    451: 
                    452: /a+b?(*COMMIT)c+(*FAIL)/
                    453:     aaabccc
                    454: No match
                    455:     
                    456: /a+b?(*SKIP)c+(*FAIL)/
                    457:     aaabcccaaabccc
                    458: No match
                    459: 
                    460: /^(?:aaa(*THEN)\w{6}|bbb(*THEN)\w{5}|ccc(*THEN)\w{4}|\w{3})/
                    461:     aaaxxxxxx
                    462:  0: aaaxxxxxx
                    463:     aaa++++++ 
                    464:  0: aaa
                    465:     bbbxxxxx
                    466:  0: bbbxxxxx
                    467:     bbb+++++ 
                    468:  0: bbb
                    469:     cccxxxx
                    470:  0: cccxxxx
                    471:     ccc++++ 
                    472:  0: ccc
                    473:     dddddddd   
                    474:  0: ddd
                    475: 
                    476: /^(aaa(*THEN)\w{6}|bbb(*THEN)\w{5}|ccc(*THEN)\w{4}|\w{3})/
                    477:     aaaxxxxxx
                    478:  0: aaaxxxxxx
                    479:  1: aaaxxxxxx
                    480:     aaa++++++ 
                    481:  0: aaa
                    482:  1: aaa
                    483:     bbbxxxxx
                    484:  0: bbbxxxxx
                    485:  1: bbbxxxxx
                    486:     bbb+++++ 
                    487:  0: bbb
                    488:  1: bbb
                    489:     cccxxxx
                    490:  0: cccxxxx
                    491:  1: cccxxxx
                    492:     ccc++++ 
                    493:  0: ccc
                    494:  1: ccc
                    495:     dddddddd   
                    496:  0: ddd
                    497:  1: ddd
                    498: 
                    499: /a+b?(*THEN)c+(*FAIL)/
                    500:     aaabccc
                    501: No match
                    502: 
                    503: /(A (A|B(*ACCEPT)|C) D)(E)/x
                    504:     AB
                    505:  0: AB
                    506:  1: AB
                    507:  2: B
                    508:     ABX
                    509:  0: AB
                    510:  1: AB
                    511:  2: B
                    512:     AADE
                    513:  0: AADE
                    514:  1: AAD
                    515:  2: A
                    516:  3: E
                    517:     ACDE
                    518:  0: ACDE
                    519:  1: ACD
                    520:  2: C
                    521:  3: E
                    522:     ** Failers
                    523: No match
                    524:     AD 
                    525: No match
                    526:         
                    527: /^\W*+(?:((.)\W*+(?1)\W*+\2|)|((.)\W*+(?3)\W*+\4|\W*+.\W*+))\W*+$/i
                    528:     1221
                    529:  0: 1221
                    530:  1: 1221
                    531:  2: 1
                    532:     Satan, oscillate my metallic sonatas!
                    533:  0: Satan, oscillate my metallic sonatas!
                    534:  1: <unset>
                    535:  2: <unset>
                    536:  3: Satan, oscillate my metallic sonatas
                    537:  4: S
                    538:     A man, a plan, a canal: Panama!
                    539:  0: A man, a plan, a canal: Panama!
                    540:  1: <unset>
                    541:  2: <unset>
                    542:  3: A man, a plan, a canal: Panama
                    543:  4: A
                    544:     Able was I ere I saw Elba.
                    545:  0: Able was I ere I saw Elba.
                    546:  1: <unset>
                    547:  2: <unset>
                    548:  3: Able was I ere I saw Elba
                    549:  4: A
                    550:     *** Failers
                    551: No match
                    552:     The quick brown fox
                    553: No match
                    554: 
                    555: /^((.)(?1)\2|.)$/
                    556:     a
                    557:  0: a
                    558:  1: a
                    559:     aba
                    560:  0: aba
                    561:  1: aba
                    562:  2: a
                    563:     aabaa  
                    564:  0: aabaa
                    565:  1: aabaa
                    566:  2: a
                    567:     abcdcba 
                    568:  0: abcdcba
                    569:  1: abcdcba
                    570:  2: a
                    571:     pqaabaaqp  
                    572:  0: pqaabaaqp
                    573:  1: pqaabaaqp
                    574:  2: p
                    575:     ablewasiereisawelba
                    576:  0: ablewasiereisawelba
                    577:  1: ablewasiereisawelba
                    578:  2: a
                    579:     rhubarb
                    580: No match
                    581:     the quick brown fox  
                    582: No match
                    583: 
                    584: /(a)(?<=b(?1))/
                    585:     baz
                    586:  0: a
                    587:  1: a
                    588:     ** Failers
                    589: No match
                    590:     caz  
                    591: No match
                    592:     
                    593: /(?<=b(?1))(a)/
                    594:     zbaaz
                    595:  0: a
                    596:  1: a
                    597:     ** Failers
                    598: No match
                    599:     aaa  
                    600: No match
                    601:     
                    602: /(?<X>a)(?<=b(?&X))/
                    603:     baz
                    604:  0: a
                    605:  1: a
                    606: 
                    607: /^(?|(abc)|(def))\1/
                    608:     abcabc
                    609:  0: abcabc
                    610:  1: abc
                    611:     defdef 
                    612:  0: defdef
                    613:  1: def
                    614:     ** Failers
                    615: No match
                    616:     abcdef
                    617: No match
                    618:     defabc   
                    619: No match
                    620:     
                    621: /^(?|(abc)|(def))(?1)/
                    622:     abcabc
                    623:  0: abcabc
                    624:  1: abc
                    625:     defabc
                    626:  0: defabc
                    627:  1: def
                    628:     ** Failers
                    629: No match
                    630:     defdef
                    631: No match
                    632:     abcdef    
                    633: No match
                    634: 
                    635: /(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) |b(?<quote> (?<apostrophe>')|(?<realquote>")) ) (?('quote')[a-z]+|[0-9]+)/xJ
                    636:     a\"aaaaa
                    637:  0: a"aaaaa
                    638:  1: "
                    639:  2: <unset>
                    640:  3: "
                    641:     b\"aaaaa 
                    642:  0: b"aaaaa
                    643:  1: <unset>
                    644:  2: <unset>
                    645:  3: <unset>
                    646:  4: "
                    647:  5: <unset>
                    648:  6: "
                    649:     ** Failers 
                    650: No match
                    651:     b\"11111
                    652: No match
                    653: 
                    654: /(?:(?1)|B)(A(*F)|C)/
                    655:     ABCD
                    656:  0: BC
                    657:  1: C
                    658:     CCD
                    659:  0: CC
                    660:  1: C
                    661:     ** Failers
                    662: No match
                    663:     CAD   
                    664: No match
                    665: 
                    666: /^(?:(?1)|B)(A(*F)|C)/
                    667:     CCD
                    668:  0: CC
                    669:  1: C
                    670:     BCD 
                    671:  0: BC
                    672:  1: C
                    673:     ** Failers
                    674: No match
                    675:     ABCD
                    676: No match
                    677:     CAD
                    678: No match
                    679:     BAD    
                    680: No match
                    681: 
                    682: /(?:(?1)|B)(A(*ACCEPT)XX|C)D/
                    683:     AAD
                    684:  0: AA
                    685:  1: A
                    686:     ACD
                    687:  0: ACD
                    688:  1: C
                    689:     BAD
                    690:  0: BA
                    691:  1: A
                    692:     BCD
                    693:  0: BCD
                    694:  1: C
                    695:     BAX  
                    696:  0: BA
                    697:  1: A
                    698:     ** Failers
                    699: No match
                    700:     ACX
                    701: No match
                    702:     ABC   
                    703: No match
                    704: 
                    705: /(?(DEFINE)(A))B(?1)C/
                    706:     BAC
                    707:  0: BAC
                    708: 
                    709: /(?(DEFINE)((A)\2))B(?1)C/
                    710:     BAAC
                    711:  0: BAAC
                    712: 
                    713: /(?<pn> \( ( [^()]++ | (?&pn) )* \) )/x
                    714:     (ab(cd)ef)
                    715:  0: (ab(cd)ef)
                    716:  1: (ab(cd)ef)
                    717:  2: ef
                    718: 
                    719: /^(?!a(*SKIP)b)/
                    720:     ac
                    721:  0: 
                    722:     
                    723: /^(?=a(*SKIP)b|ac)/
                    724:     ** Failers
                    725: No match
                    726:     ac
                    727: No match
                    728:     
                    729: /^(?=a(*THEN)b|ac)/
                    730:     ac
                    731:  0: 
                    732:     
                    733: /^(?=a(*PRUNE)b)/
                    734:     ab  
                    735:  0: 
                    736:     ** Failers 
                    737: No match
                    738:     ac
                    739: No match
                    740: 
                    741: /^(?=a(*ACCEPT)b)/
                    742:     ac
                    743:  0: 
                    744: 
                    745: /^(?(?!a(*SKIP)b))/
                    746:     ac
                    747:  0: 
                    748: 
                    749: /(?>a\Kb)/
                    750:     ab
                    751:  0: b
                    752: 
                    753: /((?>a\Kb))/
                    754:     ab
                    755:  0: b
                    756:  1: ab
                    757: 
                    758: /(a\Kb)/
                    759:     ab
                    760:  0: b
                    761:  1: ab
                    762:     
                    763: /^a\Kcz|ac/
                    764:     ac
                    765:  0: ac
                    766:     
                    767: /(?>a\Kbz|ab)/
                    768:     ab 
                    769:  0: ab
                    770: 
                    771: /^(?&t)(?(DEFINE)(?<t>a\Kb))$/
                    772:     ab
                    773:  0: b
                    774: 
                    775: /^([^()]|\((?1)*\))*$/
                    776:     a(b)c
                    777:  0: a(b)c
                    778:  1: c
                    779:     a(b(c)d)e 
                    780:  0: a(b(c)d)e
                    781:  1: e
                    782: 
                    783: /(?P<L1>(?P<L2>0)(?P>L1)|(?P>L2))/
                    784:     0
                    785:  0: 0
                    786:  1: 0
                    787:     00
                    788:  0: 00
                    789:  1: 00
                    790:  2: 0
                    791:     0000  
                    792:  0: 0000
                    793:  1: 0000
                    794:  2: 0
                    795: 
                    796: /(?P<L1>(?P<L2>0)|(?P>L2)(?P>L1))/
                    797:     0
                    798:  0: 0
                    799:  1: 0
                    800:  2: 0
                    801:     00
                    802:  0: 0
                    803:  1: 0
                    804:  2: 0
                    805:     0000  
                    806:  0: 0
                    807:  1: 0
                    808:  2: 0
                    809: 
                    810: /--- This one does fail, as expected, in Perl. It needs the complex item at the
                    811:      end of the pattern. A single letter instead of (B|D) makes it not fail,
                    812:      which I think is a Perl bug. --- /
                    813: 
                    814: /A(*COMMIT)(B|D)/
                    815:     ACABX
                    816: No match
                    817: 
                    818: /--- Check the use of names for failure ---/
                    819: 
                    820: /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/K
                    821:     ** Failers
                    822: No match
                    823:     AC
                    824: No match, mark = A
                    825:     CB    
                    826: No match, mark = B
                    827:     
                    828: /--- Force no study, otherwise mark is not seen. The studied version is in
                    829:      test 2 because it isn't Perl-compatible. ---/
                    830: 
                    831: /(*MARK:A)(*SKIP:B)(C|X)/KSS
                    832:     C
                    833:  0: C
                    834:  1: C
                    835: MK: A
                    836:     D
                    837: No match, mark = A
                    838:      
                    839: /^(A(*THEN:A)B|C(*THEN:B)D)/K
                    840:     ** Failers
                    841: No match
                    842:     CB    
                    843: No match, mark = B
                    844: 
                    845: /^(?:A(*THEN:A)B|C(*THEN:B)D)/K
                    846:     CB    
                    847: No match, mark = B
                    848:     
                    849: /^(?>A(*THEN:A)B|C(*THEN:B)D)/K
                    850:     CB    
                    851: No match, mark = B
                    852:     
                    853: /--- This should succeed, as the skip causes bump to offset 1 (the mark). Note
                    854: that we have to have something complicated such as (B|Z) at the end because,
                    855: for Perl, a simple character somehow causes an unwanted optimization to mess
                    856: with the handling of backtracking verbs. ---/
                    857: 
                    858: /A(*MARK:A)A+(*SKIP:A)(B|Z) | AC/xK
                    859:     AAAC
                    860:  0: AC
                    861:     
                    862: /--- Test skipping over a non-matching mark. ---/
                    863: 
                    864: /A(*MARK:A)A+(*MARK:B)(*SKIP:A)(B|Z) | AC/xK
                    865:     AAAC
                    866:  0: AC
                    867:     
                    868: /--- Check shorthand for MARK ---/
                    869: 
                    870: /A(*:A)A+(*SKIP:A)(B|Z) | AC/xK
                    871:     AAAC
                    872:  0: AC
                    873: 
                    874: /--- Don't loop! Force no study, otherwise mark is not seen. ---/
                    875: 
                    876: /(*:A)A+(*SKIP:A)(B|Z)/KSS
                    877:     AAAC
                    878: No match, mark = A
                    879: 
                    880: /--- This should succeed, as a non-existent skip name disables the skip ---/ 
                    881: 
                    882: /A(*MARK:A)A+(*SKIP:B)(B|Z) | AC/xK
                    883:     AAAC
                    884:  0: AC
                    885: 
                    886: /A(*MARK:A)A+(*SKIP:B)(B|Z) | AC(*:B)/xK
                    887:     AAAC
                    888:  0: AC
                    889: MK: B
                    890: 
                    891: /--- COMMIT at the start of a pattern should act like an anchor. Again, 
                    892: however, we need the complication for Perl. ---/
                    893: 
                    894: /(*COMMIT)(A|P)(B|P)(C|P)/
                    895:     ABCDEFG
                    896:  0: ABC
                    897:  1: A
                    898:  2: B
                    899:  3: C
                    900:     ** Failers
                    901: No match
                    902:     DEFGABC  
                    903: No match
                    904: 
                    905: /--- COMMIT inside an atomic group can't stop backtracking over the group. ---/
                    906: 
                    907: /(\w+)(?>b(*COMMIT))\w{2}/
                    908:     abbb
                    909:  0: abbb
                    910:  1: a
                    911: 
                    912: /(\w+)b(*COMMIT)\w{2}/
                    913:     abbb
                    914: No match
                    915: 
                    916: /--- Check opening parens in comment when seeking forward reference. ---/ 
                    917: 
                    918: /(?&t)(?#()(?(DEFINE)(?<t>a))/
                    919:     bac
                    920:  0: a
                    921: 
                    922: /--- COMMIT should override THEN ---/
                    923: 
                    924: /(?>(*COMMIT)(?>yes|no)(*THEN)(*F))?/
                    925:   yes
                    926: No match
                    927: 
                    928: /(?>(*COMMIT)(yes|no)(*THEN)(*F))?/
                    929:   yes
                    930: No match
                    931: 
                    932: /b?(*SKIP)c/
                    933:     bc
                    934:  0: bc
                    935:     abc
                    936:  0: bc
                    937:    
                    938: /(*SKIP)bc/
                    939:     a
                    940: No match
                    941: 
                    942: /(*SKIP)b/
                    943:     a 
                    944: No match
                    945: 
                    946: /(?P<abn>(?P=abn)xxx|)+/
                    947:     xxx
                    948:  0: 
                    949:  1: 
                    950: 
                    951: /(?i:([^b]))(?1)/
                    952:     aa
                    953:  0: aa
                    954:  1: a
                    955:     aA     
                    956:  0: aA
                    957:  1: a
                    958:     ** Failers
                    959:  0: **
                    960:  1: *
                    961:     ab
                    962: No match
                    963:     aB
                    964: No match
                    965:     Ba
                    966: No match
                    967:     ba
                    968: No match
                    969: 
                    970: /^(?&t)*+(?(DEFINE)(?<t>a))\w$/
                    971:     aaaaaaX
                    972:  0: aaaaaaX
                    973:     ** Failers 
                    974: No match
                    975:     aaaaaa 
                    976: No match
                    977: 
                    978: /^(?&t)*(?(DEFINE)(?<t>a))\w$/
                    979:     aaaaaaX
                    980:  0: aaaaaaX
                    981:     aaaaaa 
                    982:  0: aaaaaa
                    983: 
                    984: /^(a)*+(\w)/
                    985:     aaaaX
                    986:  0: aaaaX
                    987:  1: a
                    988:  2: X
                    989:     YZ 
                    990:  0: Y
                    991:  1: <unset>
                    992:  2: Y
                    993:     ** Failers 
                    994: No match
                    995:     aaaa
                    996: No match
                    997: 
                    998: /^(?:a)*+(\w)/
                    999:     aaaaX
                   1000:  0: aaaaX
                   1001:  1: X
                   1002:     YZ 
                   1003:  0: Y
                   1004:  1: Y
                   1005:     ** Failers 
                   1006: No match
                   1007:     aaaa
                   1008: No match
                   1009: 
                   1010: /^(a)++(\w)/
                   1011:     aaaaX
                   1012:  0: aaaaX
                   1013:  1: a
                   1014:  2: X
                   1015:     ** Failers 
                   1016: No match
                   1017:     aaaa
                   1018: No match
                   1019:     YZ 
                   1020: No match
                   1021: 
                   1022: /^(?:a)++(\w)/
                   1023:     aaaaX
                   1024:  0: aaaaX
                   1025:  1: X
                   1026:     ** Failers 
                   1027: No match
                   1028:     aaaa
                   1029: No match
                   1030:     YZ 
                   1031: No match
                   1032: 
                   1033: /^(a)?+(\w)/
                   1034:     aaaaX
                   1035:  0: aa
                   1036:  1: a
                   1037:  2: a
                   1038:     YZ 
                   1039:  0: Y
                   1040:  1: <unset>
                   1041:  2: Y
                   1042: 
                   1043: /^(?:a)?+(\w)/
                   1044:     aaaaX
                   1045:  0: aa
                   1046:  1: a
                   1047:     YZ 
                   1048:  0: Y
                   1049:  1: Y
                   1050: 
                   1051: /^(a){2,}+(\w)/
                   1052:     aaaaX
                   1053:  0: aaaaX
                   1054:  1: a
                   1055:  2: X
                   1056:     ** Failers
                   1057: No match
                   1058:     aaa
                   1059: No match
                   1060:     YZ 
                   1061: No match
                   1062: 
                   1063: /^(?:a){2,}+(\w)/
                   1064:     aaaaX
                   1065:  0: aaaaX
                   1066:  1: X
                   1067:     ** Failers
                   1068: No match
                   1069:     aaa
                   1070: No match
                   1071:     YZ 
                   1072: No match
                   1073: 
                   1074: /(a|)*(?1)b/
                   1075:     b
                   1076:  0: b
                   1077:  1: 
                   1078:     ab
                   1079:  0: ab
                   1080:  1: 
                   1081:     aab  
                   1082:  0: aab
                   1083:  1: 
                   1084: 
                   1085: /(a)++(?1)b/
                   1086:     ** Failers
                   1087: No match
                   1088:     ab 
                   1089: No match
                   1090:     aab
                   1091: No match
                   1092: 
                   1093: /(a)*+(?1)b/
                   1094:     ** Failers
                   1095: No match
                   1096:     ab
                   1097: No match
                   1098:     aab  
                   1099: No match
                   1100: 
                   1101: /(?1)(?:(b)){0}/
                   1102:     b
                   1103:  0: b
                   1104: 
                   1105: /(foo ( \( ((?:(?> [^()]+ )|(?2))*) \) ) )/x
                   1106:     foo(bar(baz)+baz(bop))
                   1107:  0: foo(bar(baz)+baz(bop))
                   1108:  1: foo(bar(baz)+baz(bop))
                   1109:  2: (bar(baz)+baz(bop))
                   1110:  3: bar(baz)+baz(bop)
                   1111: 
                   1112: /(A (A|B(*ACCEPT)|C) D)(E)/x
                   1113:     AB
                   1114:  0: AB
                   1115:  1: AB
                   1116:  2: B
                   1117: 
                   1118: /\A.*?(?:a|b(*THEN)c)/
                   1119:     ba
                   1120:  0: ba
                   1121: 
                   1122: /\A.*?(?:a|bc)/
                   1123:     ba
                   1124:  0: ba
                   1125: 
                   1126: /\A.*?(a|b(*THEN)c)/
                   1127:     ba
                   1128:  0: ba
                   1129:  1: a
                   1130: 
                   1131: /\A.*?(a|bc)/
                   1132:     ba
                   1133:  0: ba
                   1134:  1: a
                   1135: 
                   1136: /\A.*?(?:a|b(*THEN)c)++/
                   1137:     ba
                   1138:  0: ba
                   1139: 
                   1140: /\A.*?(?:a|bc)++/
                   1141:     ba
                   1142:  0: ba
                   1143: 
                   1144: /\A.*?(a|b(*THEN)c)++/
                   1145:     ba
                   1146:  0: ba
                   1147:  1: a
                   1148: 
                   1149: /\A.*?(a|bc)++/
                   1150:     ba
                   1151:  0: ba
                   1152:  1: a
                   1153: 
                   1154: /\A.*?(?:a|b(*THEN)c|d)/
                   1155:     ba
                   1156:  0: ba
                   1157: 
                   1158: /\A.*?(?:a|bc|d)/
                   1159:     ba
                   1160:  0: ba
                   1161: 
                   1162: /(?:(b))++/
                   1163:     beetle
                   1164:  0: b
                   1165:  1: b
                   1166: 
                   1167: /(?(?=(a(*ACCEPT)z))a)/
                   1168:     a
                   1169:  0: a
                   1170:  1: a
                   1171: 
                   1172: /^(a)(?1)+ab/
                   1173:     aaaab
                   1174:  0: aaaab
                   1175:  1: a
                   1176:     
                   1177: /^(a)(?1)++ab/
                   1178:     aaaab
                   1179: No match
                   1180: 
                   1181: /^(?=a(*:M))aZ/K
                   1182:     aZbc
                   1183:  0: aZ
                   1184: MK: M
                   1185: 
                   1186: /^(?!(*:M)b)aZ/K
                   1187:     aZbc
                   1188:  0: aZ
                   1189: 
                   1190: /(?(DEFINE)(a))?b(?1)/
                   1191:     backgammon
                   1192:  0: ba
                   1193: 
                   1194: /^\N+/
                   1195:     abc\ndef
                   1196:  0: abc
                   1197:     
                   1198: /^\N{1,}/
                   1199:     abc\ndef 
                   1200:  0: abc
                   1201: 
                   1202: /(?(R)a+|(?R)b)/
                   1203:     aaaabcde
                   1204:  0: aaaab
                   1205: 
                   1206: /(?(R)a+|((?R))b)/
                   1207:     aaaabcde
                   1208:  0: aaaab
                   1209:  1: aaaa
                   1210: 
                   1211: /((?(R)a+|(?1)b))/
                   1212:     aaaabcde
                   1213:  0: aaaab
                   1214:  1: aaaab
                   1215: 
                   1216: /((?(R1)a+|(?1)b))/
                   1217:     aaaabcde
                   1218:  0: aaaab
                   1219:  1: aaaab
                   1220: 
                   1221: /a(*:any 
                   1222: name)/K
                   1223:     abc
                   1224:  0: a
                   1225: MK: any 
                   1226: name
                   1227:     
                   1228: /(?>(?&t)c|(?&t))(?(DEFINE)(?<t>a|b(*PRUNE)c))/
                   1229:     a
                   1230:  0: a
                   1231:     ba
                   1232:  0: a
                   1233:     bba 
                   1234:  0: a
                   1235:     
                   1236: /--- Checking revised (*THEN) handling ---/ 
                   1237: 
                   1238: /--- Capture ---/
                   1239: 
                   1240: /^.*? (a(*THEN)b) c/x
                   1241:     aabc
                   1242: No match
                   1243: 
                   1244: /^.*? (a(*THEN)b|(*F)) c/x
                   1245:     aabc
                   1246:  0: aabc
                   1247:  1: ab
                   1248: 
                   1249: /^.*? ( (a(*THEN)b) | (*F) ) c/x
                   1250:     aabc
                   1251:  0: aabc
                   1252:  1: ab
                   1253:  2: ab
                   1254: 
                   1255: /^.*? ( (a(*THEN)b) ) c/x
                   1256:     aabc
                   1257: No match
                   1258: 
                   1259: /--- Non-capture ---/
                   1260: 
                   1261: /^.*? (?:a(*THEN)b) c/x
                   1262:     aabc
                   1263: No match
                   1264: 
                   1265: /^.*? (?:a(*THEN)b|(*F)) c/x
                   1266:     aabc
                   1267:  0: aabc
                   1268: 
                   1269: /^.*? (?: (?:a(*THEN)b) | (*F) ) c/x
                   1270:     aabc
                   1271:  0: aabc
                   1272: 
                   1273: /^.*? (?: (?:a(*THEN)b) ) c/x
                   1274:     aabc
                   1275: No match
                   1276: 
                   1277: /--- Atomic ---/
                   1278: 
                   1279: /^.*? (?>a(*THEN)b) c/x
                   1280:     aabc
                   1281: No match
                   1282: 
                   1283: /^.*? (?>a(*THEN)b|(*F)) c/x
                   1284:     aabc
                   1285:  0: aabc
                   1286: 
                   1287: /^.*? (?> (?>a(*THEN)b) | (*F) ) c/x
                   1288:     aabc
                   1289:  0: aabc
                   1290: 
                   1291: /^.*? (?> (?>a(*THEN)b) ) c/x
                   1292:     aabc
                   1293: No match
                   1294: 
                   1295: /--- Possessive capture ---/
                   1296: 
                   1297: /^.*? (a(*THEN)b)++ c/x
                   1298:     aabc
                   1299: No match
                   1300: 
                   1301: /^.*? (a(*THEN)b|(*F))++ c/x
                   1302:     aabc
                   1303:  0: aabc
                   1304:  1: ab
                   1305: 
                   1306: /^.*? ( (a(*THEN)b)++ | (*F) )++ c/x
                   1307:     aabc
                   1308:  0: aabc
                   1309:  1: ab
                   1310:  2: ab
                   1311: 
                   1312: /^.*? ( (a(*THEN)b)++ )++ c/x
                   1313:     aabc
                   1314: No match
                   1315: 
                   1316: /--- Possessive non-capture ---/
                   1317: 
                   1318: /^.*? (?:a(*THEN)b)++ c/x
                   1319:     aabc
                   1320: No match
                   1321: 
                   1322: /^.*? (?:a(*THEN)b|(*F))++ c/x
                   1323:     aabc
                   1324:  0: aabc
                   1325: 
                   1326: /^.*? (?: (?:a(*THEN)b)++ | (*F) )++ c/x
                   1327:     aabc
                   1328:  0: aabc
                   1329: 
                   1330: /^.*? (?: (?:a(*THEN)b)++ )++ c/x
                   1331:     aabc
                   1332: No match
                   1333:     
                   1334: /--- Condition assertion ---/
                   1335: 
                   1336: /^(?(?=a(*THEN)b)ab|ac)/
                   1337:     ac
                   1338:  0: ac
                   1339:  
                   1340: /--- Condition ---/
                   1341: 
                   1342: /^.*?(?(?=a)a|b(*THEN)c)/
                   1343:     ba
                   1344: No match
                   1345: 
                   1346: /^.*?(?:(?(?=a)a|b(*THEN)c)|d)/
                   1347:     ba
                   1348:  0: ba
                   1349: 
                   1350: /^.*?(?(?=a)a(*THEN)b|c)/
                   1351:     ac
                   1352: No match
                   1353: 
                   1354: /--- Assertion ---/
                   1355: 
                   1356: /^.*(?=a(*THEN)b)/ 
                   1357:     aabc
                   1358:  0: a
                   1359: 
                   1360: /------------------------------/
                   1361: 
                   1362: /(?>a(*:m))/imsxSK 
                   1363:     a
                   1364:  0: a
                   1365: MK: m
                   1366: 
                   1367: /(?>(a)(*:m))/imsxSK 
                   1368:     a
                   1369:  0: a
                   1370:  1: a
                   1371: MK: m
                   1372: 
                   1373: /(?<=a(*ACCEPT)b)c/
                   1374:     xacd
                   1375:  0: c
                   1376: 
                   1377: /(?<=(a(*ACCEPT)b))c/
                   1378:     xacd
                   1379:  0: c
                   1380:  1: a
                   1381: 
                   1382: /(?<=(a(*COMMIT)b))c/
                   1383:     xabcd
                   1384:  0: c
                   1385:  1: ab
                   1386:     ** Failers 
                   1387: No match
                   1388:     xacd
                   1389: No match
                   1390:     
                   1391: /(?<!a(*FAIL)b)c/
                   1392:     xcd
                   1393:  0: c
                   1394:     acd 
                   1395:  0: c
                   1396: 
                   1397: /(?<=a(*:N)b)c/K
                   1398:     xabcd
                   1399:  0: c
                   1400: MK: N
                   1401:     
                   1402: /(?<=a(*PRUNE)b)c/
                   1403:     xabcd 
                   1404:  0: c
                   1405: 
                   1406: /(?<=a(*SKIP)b)c/
                   1407:     xabcd 
                   1408:  0: c
                   1409: 
                   1410: /(?<=a(*THEN)b)c/
                   1411:     xabcd 
                   1412:  0: c
                   1413: 
                   1414: /(a)(?2){2}(.)/
                   1415:     abcd
                   1416:  0: abcd
                   1417:  1: a
                   1418:  2: d
                   1419: 
                   1420: /(*MARK:A)(*PRUNE:B)(C|X)/KS
                   1421:     C
                   1422:  0: C
                   1423:  1: C
                   1424: MK: B
                   1425:     D 
                   1426: No match, mark = B
                   1427: 
                   1428: /(*MARK:A)(*PRUNE:B)(C|X)/KSS
                   1429:     C
                   1430:  0: C
                   1431:  1: C
                   1432: MK: B
                   1433:     D 
                   1434: No match, mark = B
                   1435: 
                   1436: /(*MARK:A)(*THEN:B)(C|X)/KS
                   1437:     C
                   1438:  0: C
                   1439:  1: C
                   1440: MK: B
                   1441:     D 
                   1442: No match, mark = B
                   1443: 
                   1444: /(*MARK:A)(*THEN:B)(C|X)/KSY
                   1445:     C
                   1446:  0: C
                   1447:  1: C
                   1448: MK: B
                   1449:     D 
                   1450: No match, mark = B
                   1451: 
                   1452: /(*MARK:A)(*THEN:B)(C|X)/KSS
                   1453:     C
                   1454:  0: C
                   1455:  1: C
                   1456: MK: B
                   1457:     D 
                   1458: No match, mark = B
                   1459: 
                   1460: /--- This should fail, as the skip causes a bump to offset 3 (the skip) ---/
                   1461: 
                   1462: /A(*MARK:A)A+(*SKIP)(B|Z) | AC/xK
                   1463:     AAAC
                   1464: No match, mark = A
                   1465: 
                   1466: /--- Same --/
                   1467: 
                   1468: /A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/xK
                   1469:     AAAC
                   1470: No match, mark = B
                   1471: 
                   1472: /A(*:A)A+(*SKIP)(B|Z) | AC/xK
                   1473:     AAAC
                   1474: No match, mark = A
                   1475: 
                   1476: /--- This should fail, as a null name is the same as no name ---/
                   1477: 
                   1478: /A(*MARK:A)A+(*SKIP:)(B|Z) | AC/xK
                   1479:     AAAC
                   1480: No match, mark = A
                   1481: 
                   1482: /--- A check on what happens after hitting a mark and them bumping along to
                   1483: something that does not even start. Perl reports tags after the failures here, 
                   1484: though it does not when the individual letters are made into something 
                   1485: more complicated. ---/
                   1486: 
                   1487: /A(*:A)B|XX(*:B)Y/K
                   1488:     AABC
                   1489:  0: AB
                   1490: MK: A
                   1491:     XXYZ 
                   1492:  0: XXY
                   1493: MK: B
                   1494:     ** Failers
                   1495: No match
                   1496:     XAQQ  
                   1497: No match, mark = A
                   1498:     XAQQXZZ  
                   1499: No match, mark = A
                   1500:     AXQQQ 
                   1501: No match, mark = A
                   1502:     AXXQQQ 
                   1503: No match, mark = B
                   1504:     
                   1505: /^(A(*THEN:A)B|C(*THEN:B)D)/K
                   1506:     AB
                   1507:  0: AB
                   1508:  1: AB
                   1509: MK: A
                   1510:     CD
                   1511:  0: CD
                   1512:  1: CD
                   1513: MK: B
                   1514:     ** Failers
                   1515: No match
                   1516:     AC
                   1517: No match, mark = A
                   1518:     CB    
                   1519: No match, mark = B
                   1520:     
                   1521: /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/K
                   1522:     AB
                   1523:  0: AB
                   1524:  1: AB
                   1525: MK: A
                   1526:     CD
                   1527:  0: CD
                   1528:  1: CD
                   1529: MK: B
                   1530:     ** Failers
                   1531: No match
                   1532:     AC
                   1533: No match, mark = A
                   1534:     CB    
                   1535: No match, mark = B
                   1536:     
                   1537: /--- An empty name does not pass back an empty string. It is the same as if no
                   1538: name were given. ---/ 
                   1539: 
                   1540: /^(A(*PRUNE:)B|C(*PRUNE:B)D)/K
                   1541:     AB
                   1542:  0: AB
                   1543:  1: AB
                   1544:     CD 
                   1545:  0: CD
                   1546:  1: CD
                   1547: MK: B
                   1548: 
                   1549: /--- PRUNE goes to next bumpalong; COMMIT does not. ---/
                   1550:     
                   1551: /A(*PRUNE:A)B/K
                   1552:     ACAB
                   1553:  0: AB
                   1554: MK: A
                   1555: 
                   1556: /--- Mark names can be duplicated ---/
                   1557: 
                   1558: /A(*:A)B|X(*:A)Y/K
                   1559:     AABC
                   1560:  0: AB
                   1561: MK: A
                   1562:     XXYZ 
                   1563:  0: XY
                   1564: MK: A
                   1565:     
                   1566: /b(*:m)f|a(*:n)w/K
                   1567:     aw 
                   1568:  0: aw
                   1569: MK: n
                   1570:     ** Failers 
                   1571: No match, mark = n
                   1572:     abc
                   1573: No match, mark = m
                   1574: 
                   1575: /b(*:m)f|aw/K
                   1576:     abaw
                   1577:  0: aw
                   1578:     ** Failers 
                   1579: No match
                   1580:     abc
                   1581: No match, mark = m
                   1582:     abax 
                   1583: No match, mark = m
                   1584: 
                   1585: /A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/xK
                   1586:     AAAC
                   1587:  0: AAC
                   1588: 
                   1589: /a(*PRUNE:X)bc|qq/KY
                   1590:     ** Failers
                   1591: No match, mark = X
                   1592:     axy
                   1593: No match, mark = X
                   1594: 
                   1595: /a(*THEN:X)bc|qq/KY
                   1596:     ** Failers
                   1597: No match, mark = X
                   1598:     axy
                   1599: No match, mark = X
                   1600: 
                   1601: /(?=a(*MARK:A)b)..x/K
                   1602:     abxy
                   1603:  0: abx
                   1604: MK: A
                   1605:     ** Failers
                   1606: No match
                   1607:     abpq  
                   1608: No match
                   1609: 
                   1610: /(?=a(*MARK:A)b)..(*:Y)x/K
                   1611:     abxy
                   1612:  0: abx
                   1613: MK: Y
                   1614:     ** Failers
                   1615: No match
                   1616:     abpq  
                   1617: No match
                   1618: 
                   1619: /(?=a(*PRUNE:A)b)..x/K
                   1620:     abxy
                   1621:  0: abx
                   1622: MK: A
                   1623:     ** Failers
                   1624: No match
                   1625:     abpq  
                   1626: No match
                   1627: 
                   1628: /(?=a(*PRUNE:A)b)..(*:Y)x/K
                   1629:     abxy
                   1630:  0: abx
                   1631: MK: Y
                   1632:     ** Failers
                   1633: No match
                   1634:     abpq  
                   1635: No match
                   1636: 
                   1637: /(?=a(*THEN:A)b)..x/K
                   1638:     abxy
                   1639:  0: abx
                   1640: MK: A
                   1641:     ** Failers
                   1642: No match
                   1643:     abpq  
                   1644: No match
                   1645: 
                   1646: /(?=a(*THEN:A)b)..(*:Y)x/K
                   1647:     abxy
                   1648:  0: abx
                   1649: MK: Y
                   1650:     ** Failers
                   1651: No match
                   1652:     abpq  
                   1653: No match
                   1654: 
                   1655: /-- End of testinput11 --/

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>