Annotation of embedaddon/pcre/testdata/testoutput7, revision 1.1

1.1     ! misho       1: /-- This set of tests check the DFA matching functionality of pcre_dfa_exec().
        !             2:     The -dfa flag must be used with pcretest when running it. --/
        !             3:      
        !             4: /abc/
        !             5:     abc
        !             6:  0: abc
        !             7:     
        !             8: /ab*c/
        !             9:     abc
        !            10:  0: abc
        !            11:     abbbbc
        !            12:  0: abbbbc
        !            13:     ac
        !            14:  0: ac
        !            15:     
        !            16: /ab+c/
        !            17:     abc
        !            18:  0: abc
        !            19:     abbbbbbc
        !            20:  0: abbbbbbc
        !            21:     *** Failers 
        !            22: No match
        !            23:     ac
        !            24: No match
        !            25:     ab
        !            26: No match
        !            27:     
        !            28: /a*/
        !            29:     a
        !            30:  0: a
        !            31:  1: 
        !            32:     aaaaaaaaaaaaaaaaa
        !            33:  0: aaaaaaaaaaaaaaaaa
        !            34:  1: aaaaaaaaaaaaaaaa
        !            35:  2: aaaaaaaaaaaaaaa
        !            36:  3: aaaaaaaaaaaaaa
        !            37:  4: aaaaaaaaaaaaa
        !            38:  5: aaaaaaaaaaaa
        !            39:  6: aaaaaaaaaaa
        !            40:  7: aaaaaaaaaa
        !            41:  8: aaaaaaaaa
        !            42:  9: aaaaaaaa
        !            43: 10: aaaaaaa
        !            44: 11: aaaaaa
        !            45: 12: aaaaa
        !            46: 13: aaaa
        !            47: 14: aaa
        !            48: 15: aa
        !            49: 16: a
        !            50: 17: 
        !            51:     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
        !            52: Matched, but too many subsidiary matches
        !            53:  0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
        !            54:  1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaa
        !            55:  2: aaaaaaaaaaaaaaaaaaaaaaaaaaaa
        !            56:  3: aaaaaaaaaaaaaaaaaaaaaaaaaaa
        !            57:  4: aaaaaaaaaaaaaaaaaaaaaaaaaa
        !            58:  5: aaaaaaaaaaaaaaaaaaaaaaaaa
        !            59:  6: aaaaaaaaaaaaaaaaaaaaaaaa
        !            60:  7: aaaaaaaaaaaaaaaaaaaaaaa
        !            61:  8: aaaaaaaaaaaaaaaaaaaaaa
        !            62:  9: aaaaaaaaaaaaaaaaaaaaa
        !            63: 10: aaaaaaaaaaaaaaaaaaaa
        !            64: 11: aaaaaaaaaaaaaaaaaaa
        !            65: 12: aaaaaaaaaaaaaaaaaa
        !            66: 13: aaaaaaaaaaaaaaaaa
        !            67: 14: aaaaaaaaaaaaaaaa
        !            68: 15: aaaaaaaaaaaaaaa
        !            69: 16: aaaaaaaaaaaaaa
        !            70: 17: aaaaaaaaaaaaa
        !            71: 18: aaaaaaaaaaaa
        !            72: 19: aaaaaaaaaaa
        !            73: 20: aaaaaaaaaa
        !            74: 21: aaaaaaaaa
        !            75:     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\F 
        !            76:  0: 
        !            77:     
        !            78: /(a|abcd|african)/
        !            79:     a
        !            80:  0: a
        !            81:     abcd
        !            82:  0: abcd
        !            83:  1: a
        !            84:     african
        !            85:  0: african
        !            86:  1: a
        !            87:     
        !            88: /^abc/
        !            89:     abcdef
        !            90:  0: abc
        !            91:     *** Failers
        !            92: No match
        !            93:     xyzabc
        !            94: No match
        !            95:     xyz\nabc    
        !            96: No match
        !            97:     
        !            98: /^abc/m
        !            99:     abcdef
        !           100:  0: abc
        !           101:     xyz\nabc    
        !           102:  0: abc
        !           103:     *** Failers
        !           104: No match
        !           105:     xyzabc
        !           106: No match
        !           107:     
        !           108: /\Aabc/
        !           109:     abcdef
        !           110:  0: abc
        !           111:     *** Failers
        !           112: No match
        !           113:     xyzabc
        !           114: No match
        !           115:     xyz\nabc    
        !           116: No match
        !           117:     
        !           118: /\Aabc/m
        !           119:     abcdef
        !           120:  0: abc
        !           121:     *** Failers
        !           122: No match
        !           123:     xyzabc
        !           124: No match
        !           125:     xyz\nabc    
        !           126: No match
        !           127:     
        !           128: /\Gabc/
        !           129:     abcdef
        !           130:  0: abc
        !           131:     xyzabc\>3
        !           132:  0: abc
        !           133:     *** Failers
        !           134: No match
        !           135:     xyzabc    
        !           136: No match
        !           137:     xyzabc\>2 
        !           138: No match
        !           139:     
        !           140: /x\dy\Dz/
        !           141:     x9yzz
        !           142:  0: x9yzz
        !           143:     x0y+z
        !           144:  0: x0y+z
        !           145:     *** Failers
        !           146: No match
        !           147:     xyz
        !           148: No match
        !           149:     xxy0z     
        !           150: No match
        !           151:     
        !           152: /x\sy\Sz/
        !           153:     x yzz
        !           154:  0: x yzz
        !           155:     x y+z
        !           156:  0: x y+z
        !           157:     *** Failers
        !           158: No match
        !           159:     xyz
        !           160: No match
        !           161:     xxyyz
        !           162: No match
        !           163:     
        !           164: /x\wy\Wz/
        !           165:     xxy+z
        !           166:  0: xxy+z
        !           167:     *** Failers
        !           168: No match
        !           169:     xxy0z
        !           170: No match
        !           171:     x+y+z         
        !           172: No match
        !           173:     
        !           174: /x.y/
        !           175:     x+y
        !           176:  0: x+y
        !           177:     x-y
        !           178:  0: x-y
        !           179:     *** Failers
        !           180: No match
        !           181:     x\ny
        !           182: No match
        !           183:     
        !           184: /x.y/s
        !           185:     x+y
        !           186:  0: x+y
        !           187:     x-y
        !           188:  0: x-y
        !           189:     x\ny
        !           190:  0: x\x0ay
        !           191: 
        !           192: /(a.b(?s)c.d|x.y)p.q/
        !           193:     a+bc+dp+q
        !           194:  0: a+bc+dp+q
        !           195:     a+bc\ndp+q
        !           196:  0: a+bc\x0adp+q
        !           197:     x\nyp+q 
        !           198:  0: x\x0ayp+q
        !           199:     *** Failers 
        !           200: No match
        !           201:     a\nbc\ndp+q
        !           202: No match
        !           203:     a+bc\ndp\nq
        !           204: No match
        !           205:     x\nyp\nq 
        !           206: No match
        !           207: 
        !           208: /a\d\z/
        !           209:     ba0
        !           210:  0: a0
        !           211:     *** Failers
        !           212: No match
        !           213:     ba0\n
        !           214: No match
        !           215:     ba0\ncd   
        !           216: No match
        !           217: 
        !           218: /a\d\z/m
        !           219:     ba0
        !           220:  0: a0
        !           221:     *** Failers
        !           222: No match
        !           223:     ba0\n
        !           224: No match
        !           225:     ba0\ncd   
        !           226: No match
        !           227: 
        !           228: /a\d\Z/
        !           229:     ba0
        !           230:  0: a0
        !           231:     ba0\n
        !           232:  0: a0
        !           233:     *** Failers
        !           234: No match
        !           235:     ba0\ncd   
        !           236: No match
        !           237: 
        !           238: /a\d\Z/m
        !           239:     ba0
        !           240:  0: a0
        !           241:     ba0\n
        !           242:  0: a0
        !           243:     *** Failers
        !           244: No match
        !           245:     ba0\ncd   
        !           246: No match
        !           247: 
        !           248: /a\d$/
        !           249:     ba0
        !           250:  0: a0
        !           251:     ba0\n
        !           252:  0: a0
        !           253:     *** Failers
        !           254: No match
        !           255:     ba0\ncd   
        !           256: No match
        !           257: 
        !           258: /a\d$/m
        !           259:     ba0
        !           260:  0: a0
        !           261:     ba0\n
        !           262:  0: a0
        !           263:     ba0\ncd   
        !           264:  0: a0
        !           265:     *** Failers
        !           266: No match
        !           267: 
        !           268: /abc/i
        !           269:     abc
        !           270:  0: abc
        !           271:     aBc
        !           272:  0: aBc
        !           273:     ABC
        !           274:  0: ABC
        !           275:     
        !           276: /[^a]/
        !           277:     abcd
        !           278:  0: b
        !           279:     
        !           280: /ab?\w/
        !           281:     abz
        !           282:  0: abz
        !           283:  1: ab
        !           284:     abbz
        !           285:  0: abb
        !           286:  1: ab
        !           287:     azz  
        !           288:  0: az
        !           289: 
        !           290: /x{0,3}yz/
        !           291:     ayzq
        !           292:  0: yz
        !           293:     axyzq
        !           294:  0: xyz
        !           295:     axxyz
        !           296:  0: xxyz
        !           297:     axxxyzq
        !           298:  0: xxxyz
        !           299:     axxxxyzq
        !           300:  0: xxxyz
        !           301:     *** Failers
        !           302: No match
        !           303:     ax
        !           304: No match
        !           305:     axx     
        !           306: No match
        !           307:       
        !           308: /x{3}yz/
        !           309:     axxxyzq
        !           310:  0: xxxyz
        !           311:     axxxxyzq
        !           312:  0: xxxyz
        !           313:     *** Failers
        !           314: No match
        !           315:     ax
        !           316: No match
        !           317:     axx     
        !           318: No match
        !           319:     ayzq
        !           320: No match
        !           321:     axyzq
        !           322: No match
        !           323:     axxyz
        !           324: No match
        !           325:       
        !           326: /x{2,3}yz/
        !           327:     axxyz
        !           328:  0: xxyz
        !           329:     axxxyzq
        !           330:  0: xxxyz
        !           331:     axxxxyzq
        !           332:  0: xxxyz
        !           333:     *** Failers
        !           334: No match
        !           335:     ax
        !           336: No match
        !           337:     axx     
        !           338: No match
        !           339:     ayzq
        !           340: No match
        !           341:     axyzq
        !           342: No match
        !           343:       
        !           344: /[^a]+/
        !           345:     bac
        !           346:  0: b
        !           347:     bcdefax
        !           348:  0: bcdef
        !           349:  1: bcde
        !           350:  2: bcd
        !           351:  3: bc
        !           352:  4: b
        !           353:     *** Failers
        !           354:  0: *** F
        !           355:  1: *** 
        !           356:  2: ***
        !           357:  3: **
        !           358:  4: *
        !           359:     aaaaa   
        !           360: No match
        !           361: 
        !           362: /[^a]*/
        !           363:     bac
        !           364:  0: b
        !           365:  1: 
        !           366:     bcdefax
        !           367:  0: bcdef
        !           368:  1: bcde
        !           369:  2: bcd
        !           370:  3: bc
        !           371:  4: b
        !           372:  5: 
        !           373:     *** Failers
        !           374:  0: *** F
        !           375:  1: *** 
        !           376:  2: ***
        !           377:  3: **
        !           378:  4: *
        !           379:  5: 
        !           380:     aaaaa   
        !           381:  0: 
        !           382:     
        !           383: /[^a]{3,5}/
        !           384:     xyz
        !           385:  0: xyz
        !           386:     awxyza
        !           387:  0: wxyz
        !           388:  1: wxy
        !           389:     abcdefa
        !           390:  0: bcdef
        !           391:  1: bcde
        !           392:  2: bcd
        !           393:     abcdefghijk
        !           394:  0: bcdef
        !           395:  1: bcde
        !           396:  2: bcd
        !           397:     *** Failers
        !           398:  0: *** F
        !           399:  1: *** 
        !           400:  2: ***
        !           401:     axya
        !           402: No match
        !           403:     axa
        !           404: No match
        !           405:     aaaaa         
        !           406: No match
        !           407: 
        !           408: /\d*/
        !           409:     1234b567
        !           410:  0: 1234
        !           411:  1: 123
        !           412:  2: 12
        !           413:  3: 1
        !           414:  4: 
        !           415:     xyz
        !           416:  0: 
        !           417:     
        !           418: /\D*/
        !           419:     a1234b567
        !           420:  0: a
        !           421:  1: 
        !           422:     xyz
        !           423:  0: xyz
        !           424:  1: xy
        !           425:  2: x
        !           426:  3: 
        !           427:      
        !           428: /\d+/
        !           429:     ab1234c56
        !           430:  0: 1234
        !           431:  1: 123
        !           432:  2: 12
        !           433:  3: 1
        !           434:     *** Failers
        !           435: No match
        !           436:     xyz
        !           437: No match
        !           438:     
        !           439: /\D+/
        !           440:     ab123c56
        !           441:  0: ab
        !           442:  1: a
        !           443:     *** Failers
        !           444:  0: *** Failers
        !           445:  1: *** Failer
        !           446:  2: *** Faile
        !           447:  3: *** Fail
        !           448:  4: *** Fai
        !           449:  5: *** Fa
        !           450:  6: *** F
        !           451:  7: *** 
        !           452:  8: ***
        !           453:  9: **
        !           454: 10: *
        !           455:     789
        !           456: No match
        !           457:     
        !           458: /\d?A/
        !           459:     045ABC
        !           460:  0: 5A
        !           461:     ABC
        !           462:  0: A
        !           463:     *** Failers
        !           464: No match
        !           465:     XYZ
        !           466: No match
        !           467:     
        !           468: /\D?A/
        !           469:     ABC
        !           470:  0: A
        !           471:     BAC
        !           472:  0: BA
        !           473:     9ABC             
        !           474:  0: A
        !           475:     *** Failers
        !           476: No match
        !           477: 
        !           478: /a+/
        !           479:     aaaa
        !           480:  0: aaaa
        !           481:  1: aaa
        !           482:  2: aa
        !           483:  3: a
        !           484: 
        !           485: /^.*xyz/
        !           486:     xyz
        !           487:  0: xyz
        !           488:     ggggggggxyz
        !           489:  0: ggggggggxyz
        !           490:     
        !           491: /^.+xyz/
        !           492:     abcdxyz
        !           493:  0: abcdxyz
        !           494:     axyz
        !           495:  0: axyz
        !           496:     *** Failers
        !           497: No match
        !           498:     xyz
        !           499: No match
        !           500:     
        !           501: /^.?xyz/
        !           502:     xyz
        !           503:  0: xyz
        !           504:     cxyz       
        !           505:  0: cxyz
        !           506: 
        !           507: /^\d{2,3}X/
        !           508:     12X
        !           509:  0: 12X
        !           510:     123X
        !           511:  0: 123X
        !           512:     *** Failers
        !           513: No match
        !           514:     X
        !           515: No match
        !           516:     1X
        !           517: No match
        !           518:     1234X     
        !           519: No match
        !           520: 
        !           521: /^[abcd]\d/
        !           522:     a45
        !           523:  0: a4
        !           524:     b93
        !           525:  0: b9
        !           526:     c99z
        !           527:  0: c9
        !           528:     d04
        !           529:  0: d0
        !           530:     *** Failers
        !           531: No match
        !           532:     e45
        !           533: No match
        !           534:     abcd      
        !           535: No match
        !           536:     abcd1234
        !           537: No match
        !           538:     1234  
        !           539: No match
        !           540: 
        !           541: /^[abcd]*\d/
        !           542:     a45
        !           543:  0: a4
        !           544:     b93
        !           545:  0: b9
        !           546:     c99z
        !           547:  0: c9
        !           548:     d04
        !           549:  0: d0
        !           550:     abcd1234
        !           551:  0: abcd1
        !           552:     1234  
        !           553:  0: 1
        !           554:     *** Failers
        !           555: No match
        !           556:     e45
        !           557: No match
        !           558:     abcd      
        !           559: No match
        !           560: 
        !           561: /^[abcd]+\d/
        !           562:     a45
        !           563:  0: a4
        !           564:     b93
        !           565:  0: b9
        !           566:     c99z
        !           567:  0: c9
        !           568:     d04
        !           569:  0: d0
        !           570:     abcd1234
        !           571:  0: abcd1
        !           572:     *** Failers
        !           573: No match
        !           574:     1234  
        !           575: No match
        !           576:     e45
        !           577: No match
        !           578:     abcd      
        !           579: No match
        !           580: 
        !           581: /^a+X/
        !           582:     aX
        !           583:  0: aX
        !           584:     aaX 
        !           585:  0: aaX
        !           586: 
        !           587: /^[abcd]?\d/
        !           588:     a45
        !           589:  0: a4
        !           590:     b93
        !           591:  0: b9
        !           592:     c99z
        !           593:  0: c9
        !           594:     d04
        !           595:  0: d0
        !           596:     1234  
        !           597:  0: 1
        !           598:     *** Failers
        !           599: No match
        !           600:     abcd1234
        !           601: No match
        !           602:     e45
        !           603: No match
        !           604: 
        !           605: /^[abcd]{2,3}\d/
        !           606:     ab45
        !           607:  0: ab4
        !           608:     bcd93
        !           609:  0: bcd9
        !           610:     *** Failers
        !           611: No match
        !           612:     1234 
        !           613: No match
        !           614:     a36 
        !           615: No match
        !           616:     abcd1234
        !           617: No match
        !           618:     ee45
        !           619: No match
        !           620: 
        !           621: /^(abc)*\d/
        !           622:     abc45
        !           623:  0: abc4
        !           624:     abcabcabc45
        !           625:  0: abcabcabc4
        !           626:     42xyz 
        !           627:  0: 4
        !           628:     *** Failers
        !           629: No match
        !           630: 
        !           631: /^(abc)+\d/
        !           632:     abc45
        !           633:  0: abc4
        !           634:     abcabcabc45
        !           635:  0: abcabcabc4
        !           636:     *** Failers
        !           637: No match
        !           638:     42xyz 
        !           639: No match
        !           640: 
        !           641: /^(abc)?\d/
        !           642:     abc45
        !           643:  0: abc4
        !           644:     42xyz 
        !           645:  0: 4
        !           646:     *** Failers
        !           647: No match
        !           648:     abcabcabc45
        !           649: No match
        !           650: 
        !           651: /^(abc){2,3}\d/
        !           652:     abcabc45
        !           653:  0: abcabc4
        !           654:     abcabcabc45
        !           655:  0: abcabcabc4
        !           656:     *** Failers
        !           657: No match
        !           658:     abcabcabcabc45
        !           659: No match
        !           660:     abc45
        !           661: No match
        !           662:     42xyz 
        !           663: No match
        !           664: 
        !           665: /1(abc|xyz)2(?1)3/
        !           666:     1abc2abc3456
        !           667:  0: 1abc2abc3
        !           668:     1abc2xyz3456 
        !           669:  0: 1abc2xyz3
        !           670: 
        !           671: /^(a*\w|ab)=(a*\w|ab)/
        !           672:     ab=ab
        !           673:  0: ab=ab
        !           674:  1: ab=a
        !           675: 
        !           676: /^(a*\w|ab)=(?1)/
        !           677:     ab=ab
        !           678:  0: ab=ab
        !           679:  1: ab=a
        !           680: 
        !           681: /^([^()]|\((?1)*\))*$/
        !           682:     abc
        !           683:  0: abc
        !           684:     a(b)c
        !           685:  0: a(b)c
        !           686:     a(b(c))d  
        !           687:  0: a(b(c))d
        !           688:     *** Failers)
        !           689: No match
        !           690:     a(b(c)d  
        !           691: No match
        !           692: 
        !           693: /^>abc>([^()]|\((?1)*\))*<xyz<$/
        !           694:     >abc>123<xyz<
        !           695:  0: >abc>123<xyz<
        !           696:     >abc>1(2)3<xyz<
        !           697:  0: >abc>1(2)3<xyz<
        !           698:     >abc>(1(2)3)<xyz<
        !           699:  0: >abc>(1(2)3)<xyz<
        !           700: 
        !           701: /^(?>a*)\d/
        !           702:     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa9876
        !           703:  0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa9
        !           704:     *** Failers 
        !           705: No match
        !           706:     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
        !           707: No match
        !           708: 
        !           709: /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/x
        !           710:     <>
        !           711:  0: <>
        !           712:     <abcd>
        !           713:  0: <abcd>
        !           714:     <abc <123> hij>
        !           715:  0: <abc <123> hij>
        !           716:     <abc <def> hij>
        !           717:  0: <def>
        !           718:     <abc<>def> 
        !           719:  0: <abc<>def>
        !           720:     <abc<>      
        !           721:  0: <>
        !           722:     *** Failers
        !           723: No match
        !           724:     <abc
        !           725: No match
        !           726: 
        !           727: /^(?(?=abc)\w{3}:|\d\d)$/        
        !           728:     abc:                          
        !           729:  0: abc:
        !           730:     12                             
        !           731:  0: 12
        !           732:     *** Failers                     
        !           733: No match
        !           734:     123                       
        !           735: No match
        !           736:     xyz                        
        !           737: No match
        !           738:                                 
        !           739: /^(?(?!abc)\d\d|\w{3}:)$/      
        !           740:     abc:                        
        !           741:  0: abc:
        !           742:     12         
        !           743:  0: 12
        !           744:     *** Failers
        !           745: No match
        !           746:     123
        !           747: No match
        !           748:     xyz    
        !           749: No match
        !           750: 
        !           751: /^(?=abc)\w{5}:$/        
        !           752:     abcde:                          
        !           753:  0: abcde:
        !           754:     *** Failers                     
        !           755: No match
        !           756:     abc.. 
        !           757: No match
        !           758:     123                       
        !           759: No match
        !           760:     vwxyz                        
        !           761: No match
        !           762:                                 
        !           763: /^(?!abc)\d\d$/      
        !           764:     12         
        !           765:  0: 12
        !           766:     *** Failers
        !           767: No match
        !           768:     abcde:
        !           769: No match
        !           770:     abc..  
        !           771: No match
        !           772:     123
        !           773: No match
        !           774:     vwxyz    
        !           775: No match
        !           776: 
        !           777: /(?<=abc|xy)123/
        !           778:     abc12345
        !           779:  0: 123
        !           780:     wxy123z
        !           781:  0: 123
        !           782:     *** Failers
        !           783: No match
        !           784:     123abc
        !           785: No match
        !           786: 
        !           787: /(?<!abc|xy)123/
        !           788:     123abc
        !           789:  0: 123
        !           790:     mno123456 
        !           791:  0: 123
        !           792:     *** Failers
        !           793: No match
        !           794:     abc12345
        !           795: No match
        !           796:     wxy123z
        !           797: No match
        !           798: 
        !           799: /abc(?C1)xyz/
        !           800:     abcxyz
        !           801: --->abcxyz
        !           802:   1 ^  ^       x
        !           803:  0: abcxyz
        !           804:     123abcxyz999 
        !           805: --->123abcxyz999
        !           806:   1    ^  ^          x
        !           807:  0: abcxyz
        !           808: 
        !           809: /(ab|cd){3,4}/C
        !           810:   ababab
        !           811: --->ababab
        !           812:  +0 ^          (ab|cd){3,4}
        !           813:  +1 ^          a
        !           814:  +4 ^          c
        !           815:  +2 ^^         b
        !           816:  +3 ^ ^        |
        !           817:  +1 ^ ^        a
        !           818:  +4 ^ ^        c
        !           819:  +2 ^  ^       b
        !           820:  +3 ^   ^      |
        !           821:  +1 ^   ^      a
        !           822:  +4 ^   ^      c
        !           823:  +2 ^    ^     b
        !           824:  +3 ^     ^    |
        !           825: +12 ^     ^    
        !           826:  +1 ^     ^    a
        !           827:  +4 ^     ^    c
        !           828:  0: ababab
        !           829:   abcdabcd
        !           830: --->abcdabcd
        !           831:  +0 ^            (ab|cd){3,4}
        !           832:  +1 ^            a
        !           833:  +4 ^            c
        !           834:  +2 ^^           b
        !           835:  +3 ^ ^          |
        !           836:  +1 ^ ^          a
        !           837:  +4 ^ ^          c
        !           838:  +5 ^  ^         d
        !           839:  +6 ^   ^        )
        !           840:  +1 ^   ^        a
        !           841:  +4 ^   ^        c
        !           842:  +2 ^    ^       b
        !           843:  +3 ^     ^      |
        !           844: +12 ^     ^      
        !           845:  +1 ^     ^      a
        !           846:  +4 ^     ^      c
        !           847:  +5 ^      ^     d
        !           848:  +6 ^       ^    )
        !           849: +12 ^       ^    
        !           850:  0: abcdabcd
        !           851:  1: abcdab
        !           852:   abcdcdcdcdcd  
        !           853: --->abcdcdcdcdcd
        !           854:  +0 ^                (ab|cd){3,4}
        !           855:  +1 ^                a
        !           856:  +4 ^                c
        !           857:  +2 ^^               b
        !           858:  +3 ^ ^              |
        !           859:  +1 ^ ^              a
        !           860:  +4 ^ ^              c
        !           861:  +5 ^  ^             d
        !           862:  +6 ^   ^            )
        !           863:  +1 ^   ^            a
        !           864:  +4 ^   ^            c
        !           865:  +5 ^    ^           d
        !           866:  +6 ^     ^          )
        !           867: +12 ^     ^          
        !           868:  +1 ^     ^          a
        !           869:  +4 ^     ^          c
        !           870:  +5 ^      ^         d
        !           871:  +6 ^       ^        )
        !           872: +12 ^       ^        
        !           873:  0: abcdcdcd
        !           874:  1: abcdcd
        !           875: 
        !           876: /^abc/
        !           877:     abcdef
        !           878:  0: abc
        !           879:     *** Failers
        !           880: No match
        !           881:     abcdef\B  
        !           882: No match
        !           883: 
        !           884: /^(a*|xyz)/
        !           885:     bcd
        !           886:  0: 
        !           887:     aaabcd
        !           888:  0: aaa
        !           889:  1: aa
        !           890:  2: a
        !           891:  3: 
        !           892:     xyz
        !           893:  0: xyz
        !           894:  1: 
        !           895:     xyz\N  
        !           896:  0: xyz
        !           897:     *** Failers
        !           898:  0: 
        !           899:     bcd\N   
        !           900: No match
        !           901:     
        !           902: /xyz$/
        !           903:     xyz
        !           904:  0: xyz
        !           905:     xyz\n
        !           906:  0: xyz
        !           907:     *** Failers
        !           908: No match
        !           909:     xyz\Z
        !           910: No match
        !           911:     xyz\n\Z    
        !           912: No match
        !           913:     
        !           914: /xyz$/m
        !           915:     xyz
        !           916:  0: xyz
        !           917:     xyz\n 
        !           918:  0: xyz
        !           919:     abcxyz\npqr 
        !           920:  0: xyz
        !           921:     abcxyz\npqr\Z 
        !           922:  0: xyz
        !           923:     xyz\n\Z    
        !           924:  0: xyz
        !           925:     *** Failers
        !           926: No match
        !           927:     xyz\Z
        !           928: No match
        !           929: 
        !           930: /\Gabc/
        !           931:     abcdef
        !           932:  0: abc
        !           933:     defabcxyz\>3 
        !           934:  0: abc
        !           935:     *** Failers 
        !           936: No match
        !           937:     defabcxyz
        !           938: No match
        !           939: 
        !           940: /^abcdef/
        !           941:     ab\P
        !           942: Partial match: ab
        !           943:     abcde\P
        !           944: Partial match: abcde
        !           945:     abcdef\P
        !           946:  0: abcdef
        !           947:     *** Failers
        !           948: No match
        !           949:     abx\P    
        !           950: No match
        !           951: 
        !           952: /^a{2,4}\d+z/
        !           953:     a\P
        !           954: Partial match: a
        !           955:     aa\P
        !           956: Partial match: aa
        !           957:     aa2\P 
        !           958: Partial match: aa2
        !           959:     aaa\P
        !           960: Partial match: aaa
        !           961:     aaa23\P 
        !           962: Partial match: aaa23
        !           963:     aaaa12345\P
        !           964: Partial match: aaaa12345
        !           965:     aa0z\P
        !           966:  0: aa0z
        !           967:     aaaa4444444444444z\P 
        !           968:  0: aaaa4444444444444z
        !           969:     *** Failers
        !           970: No match
        !           971:     az\P 
        !           972: No match
        !           973:     aaaaa\P 
        !           974: No match
        !           975:     a56\P 
        !           976: No match
        !           977: 
        !           978: /^abcdef/
        !           979:    abc\P
        !           980: Partial match: abc
        !           981:    def\R 
        !           982:  0: def
        !           983:    
        !           984: /(?<=foo)bar/
        !           985:    xyzfo\P 
        !           986: No match
        !           987:    foob\P\>2 
        !           988: Partial match: foob
        !           989:    foobar...\R\P\>4 
        !           990:  0: ar
        !           991:    xyzfo\P
        !           992: No match
        !           993:    foobar\>2  
        !           994:  0: bar
        !           995:    *** Failers
        !           996: No match
        !           997:    xyzfo\P
        !           998: No match
        !           999:    obar\R   
        !          1000: No match
        !          1001: 
        !          1002: /(ab*(cd|ef))+X/
        !          1003:     adfadadaklhlkalkajhlkjahdfasdfasdfladsfjkj\P\Z
        !          1004: No match
        !          1005:     lkjhlkjhlkjhlkjhabbbbbbcdaefabbbbbbbefa\P\B\Z
        !          1006: Partial match: abbbbbbcdaefabbbbbbbefa
        !          1007:     cdabbbbbbbb\P\R\B\Z
        !          1008: Partial match: cdabbbbbbbb
        !          1009:     efabbbbbbbbbbbbbbbb\P\R\B\Z
        !          1010: Partial match: efabbbbbbbbbbbbbbbb
        !          1011:     bbbbbbbbbbbbcdXyasdfadf\P\R\B\Z    
        !          1012:  0: bbbbbbbbbbbbcdX
        !          1013: 
        !          1014: /(a|b)/SF>testsavedregex
        !          1015: Compiled pattern written to testsavedregex
        !          1016: Study data written to testsavedregex
        !          1017: <testsavedregex
        !          1018: Compiled pattern (byte-inverted) loaded from testsavedregex
        !          1019: Study data loaded from testsavedregex
        !          1020:     abc
        !          1021:  0: a
        !          1022:     ** Failers
        !          1023:  0: a
        !          1024:     def  
        !          1025: No match
        !          1026:     
        !          1027: /the quick brown fox/
        !          1028:     the quick brown fox
        !          1029:  0: the quick brown fox
        !          1030:     The quick brown FOX
        !          1031: No match
        !          1032:     What do you know about the quick brown fox?
        !          1033:  0: the quick brown fox
        !          1034:     What do you know about THE QUICK BROWN FOX?
        !          1035: No match
        !          1036: 
        !          1037: /The quick brown fox/i
        !          1038:     the quick brown fox
        !          1039:  0: the quick brown fox
        !          1040:     The quick brown FOX
        !          1041:  0: The quick brown FOX
        !          1042:     What do you know about the quick brown fox?
        !          1043:  0: the quick brown fox
        !          1044:     What do you know about THE QUICK BROWN FOX?
        !          1045:  0: THE QUICK BROWN FOX
        !          1046: 
        !          1047: /abcd\t\n\r\f\a\e\071\x3b\$\\\?caxyz/
        !          1048:     abcd\t\n\r\f\a\e9;\$\\?caxyz
        !          1049:  0: abcd\x09\x0a\x0d\x0c\x07\x1b9;$\?caxyz
        !          1050: 
        !          1051: /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/
        !          1052:     abxyzpqrrrabbxyyyypqAzz
        !          1053:  0: abxyzpqrrrabbxyyyypqAzz
        !          1054:     abxyzpqrrrabbxyyyypqAzz
        !          1055:  0: abxyzpqrrrabbxyyyypqAzz
        !          1056:     aabxyzpqrrrabbxyyyypqAzz
        !          1057:  0: aabxyzpqrrrabbxyyyypqAzz
        !          1058:     aaabxyzpqrrrabbxyyyypqAzz
        !          1059:  0: aaabxyzpqrrrabbxyyyypqAzz
        !          1060:     aaaabxyzpqrrrabbxyyyypqAzz
        !          1061:  0: aaaabxyzpqrrrabbxyyyypqAzz
        !          1062:     abcxyzpqrrrabbxyyyypqAzz
        !          1063:  0: abcxyzpqrrrabbxyyyypqAzz
        !          1064:     aabcxyzpqrrrabbxyyyypqAzz
        !          1065:  0: aabcxyzpqrrrabbxyyyypqAzz
        !          1066:     aaabcxyzpqrrrabbxyyyypAzz
        !          1067:  0: aaabcxyzpqrrrabbxyyyypAzz
        !          1068:     aaabcxyzpqrrrabbxyyyypqAzz
        !          1069:  0: aaabcxyzpqrrrabbxyyyypqAzz
        !          1070:     aaabcxyzpqrrrabbxyyyypqqAzz
        !          1071:  0: aaabcxyzpqrrrabbxyyyypqqAzz
        !          1072:     aaabcxyzpqrrrabbxyyyypqqqAzz
        !          1073:  0: aaabcxyzpqrrrabbxyyyypqqqAzz
        !          1074:     aaabcxyzpqrrrabbxyyyypqqqqAzz
        !          1075:  0: aaabcxyzpqrrrabbxyyyypqqqqAzz
        !          1076:     aaabcxyzpqrrrabbxyyyypqqqqqAzz
        !          1077:  0: aaabcxyzpqrrrabbxyyyypqqqqqAzz
        !          1078:     aaabcxyzpqrrrabbxyyyypqqqqqqAzz
        !          1079:  0: aaabcxyzpqrrrabbxyyyypqqqqqqAzz
        !          1080:     aaaabcxyzpqrrrabbxyyyypqAzz
        !          1081:  0: aaaabcxyzpqrrrabbxyyyypqAzz
        !          1082:     abxyzzpqrrrabbxyyyypqAzz
        !          1083:  0: abxyzzpqrrrabbxyyyypqAzz
        !          1084:     aabxyzzzpqrrrabbxyyyypqAzz
        !          1085:  0: aabxyzzzpqrrrabbxyyyypqAzz
        !          1086:     aaabxyzzzzpqrrrabbxyyyypqAzz
        !          1087:  0: aaabxyzzzzpqrrrabbxyyyypqAzz
        !          1088:     aaaabxyzzzzpqrrrabbxyyyypqAzz
        !          1089:  0: aaaabxyzzzzpqrrrabbxyyyypqAzz
        !          1090:     abcxyzzpqrrrabbxyyyypqAzz
        !          1091:  0: abcxyzzpqrrrabbxyyyypqAzz
        !          1092:     aabcxyzzzpqrrrabbxyyyypqAzz
        !          1093:  0: aabcxyzzzpqrrrabbxyyyypqAzz
        !          1094:     aaabcxyzzzzpqrrrabbxyyyypqAzz
        !          1095:  0: aaabcxyzzzzpqrrrabbxyyyypqAzz
        !          1096:     aaaabcxyzzzzpqrrrabbxyyyypqAzz
        !          1097:  0: aaaabcxyzzzzpqrrrabbxyyyypqAzz
        !          1098:     aaaabcxyzzzzpqrrrabbbxyyyypqAzz
        !          1099:  0: aaaabcxyzzzzpqrrrabbbxyyyypqAzz
        !          1100:     aaaabcxyzzzzpqrrrabbbxyyyyypqAzz
        !          1101:  0: aaaabcxyzzzzpqrrrabbbxyyyyypqAzz
        !          1102:     aaabcxyzpqrrrabbxyyyypABzz
        !          1103:  0: aaabcxyzpqrrrabbxyyyypABzz
        !          1104:     aaabcxyzpqrrrabbxyyyypABBzz
        !          1105:  0: aaabcxyzpqrrrabbxyyyypABBzz
        !          1106:     >>>aaabxyzpqrrrabbxyyyypqAzz
        !          1107:  0: aaabxyzpqrrrabbxyyyypqAzz
        !          1108:     >aaaabxyzpqrrrabbxyyyypqAzz
        !          1109:  0: aaaabxyzpqrrrabbxyyyypqAzz
        !          1110:     >>>>abcxyzpqrrrabbxyyyypqAzz
        !          1111:  0: abcxyzpqrrrabbxyyyypqAzz
        !          1112:     *** Failers
        !          1113: No match
        !          1114:     abxyzpqrrabbxyyyypqAzz
        !          1115: No match
        !          1116:     abxyzpqrrrrabbxyyyypqAzz
        !          1117: No match
        !          1118:     abxyzpqrrrabxyyyypqAzz
        !          1119: No match
        !          1120:     aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz
        !          1121: No match
        !          1122:     aaaabcxyzzzzpqrrrabbbxyyypqAzz
        !          1123: No match
        !          1124:     aaabcxyzpqrrrabbxyyyypqqqqqqqAzz
        !          1125: No match
        !          1126: 
        !          1127: /^(abc){1,2}zz/
        !          1128:     abczz
        !          1129:  0: abczz
        !          1130:     abcabczz
        !          1131:  0: abcabczz
        !          1132:     *** Failers
        !          1133: No match
        !          1134:     zz
        !          1135: No match
        !          1136:     abcabcabczz
        !          1137: No match
        !          1138:     >>abczz
        !          1139: No match
        !          1140: 
        !          1141: /^(b+?|a){1,2}?c/
        !          1142:     bc
        !          1143:  0: bc
        !          1144:     bbc
        !          1145:  0: bbc
        !          1146:     bbbc
        !          1147:  0: bbbc
        !          1148:     bac
        !          1149:  0: bac
        !          1150:     bbac
        !          1151:  0: bbac
        !          1152:     aac
        !          1153:  0: aac
        !          1154:     abbbbbbbbbbbc
        !          1155:  0: abbbbbbbbbbbc
        !          1156:     bbbbbbbbbbbac
        !          1157:  0: bbbbbbbbbbbac
        !          1158:     *** Failers
        !          1159: No match
        !          1160:     aaac
        !          1161: No match
        !          1162:     abbbbbbbbbbbac
        !          1163: No match
        !          1164: 
        !          1165: /^(b+|a){1,2}c/
        !          1166:     bc
        !          1167:  0: bc
        !          1168:     bbc
        !          1169:  0: bbc
        !          1170:     bbbc
        !          1171:  0: bbbc
        !          1172:     bac
        !          1173:  0: bac
        !          1174:     bbac
        !          1175:  0: bbac
        !          1176:     aac
        !          1177:  0: aac
        !          1178:     abbbbbbbbbbbc
        !          1179:  0: abbbbbbbbbbbc
        !          1180:     bbbbbbbbbbbac
        !          1181:  0: bbbbbbbbbbbac
        !          1182:     *** Failers
        !          1183: No match
        !          1184:     aaac
        !          1185: No match
        !          1186:     abbbbbbbbbbbac
        !          1187: No match
        !          1188: 
        !          1189: /^(b+|a){1,2}?bc/
        !          1190:     bbc
        !          1191:  0: bbc
        !          1192: 
        !          1193: /^(b*|ba){1,2}?bc/
        !          1194:     babc
        !          1195:  0: babc
        !          1196:     bbabc
        !          1197:  0: bbabc
        !          1198:     bababc
        !          1199:  0: bababc
        !          1200:     *** Failers
        !          1201: No match
        !          1202:     bababbc
        !          1203: No match
        !          1204:     babababc
        !          1205: No match
        !          1206: 
        !          1207: /^(ba|b*){1,2}?bc/
        !          1208:     babc
        !          1209:  0: babc
        !          1210:     bbabc
        !          1211:  0: bbabc
        !          1212:     bababc
        !          1213:  0: bababc
        !          1214:     *** Failers
        !          1215: No match
        !          1216:     bababbc
        !          1217: No match
        !          1218:     babababc
        !          1219: No match
        !          1220: 
        !          1221: /^\ca\cA\c[\c{\c:/
        !          1222:     \x01\x01\e;z
        !          1223:  0: \x01\x01\x1b;z
        !          1224: 
        !          1225: /^[ab\]cde]/
        !          1226:     athing
        !          1227:  0: a
        !          1228:     bthing
        !          1229:  0: b
        !          1230:     ]thing
        !          1231:  0: ]
        !          1232:     cthing
        !          1233:  0: c
        !          1234:     dthing
        !          1235:  0: d
        !          1236:     ething
        !          1237:  0: e
        !          1238:     *** Failers
        !          1239: No match
        !          1240:     fthing
        !          1241: No match
        !          1242:     [thing
        !          1243: No match
        !          1244:     \\thing
        !          1245: No match
        !          1246: 
        !          1247: /^[]cde]/
        !          1248:     ]thing
        !          1249:  0: ]
        !          1250:     cthing
        !          1251:  0: c
        !          1252:     dthing
        !          1253:  0: d
        !          1254:     ething
        !          1255:  0: e
        !          1256:     *** Failers
        !          1257: No match
        !          1258:     athing
        !          1259: No match
        !          1260:     fthing
        !          1261: No match
        !          1262: 
        !          1263: /^[^ab\]cde]/
        !          1264:     fthing
        !          1265:  0: f
        !          1266:     [thing
        !          1267:  0: [
        !          1268:     \\thing
        !          1269:  0: \
        !          1270:     *** Failers
        !          1271:  0: *
        !          1272:     athing
        !          1273: No match
        !          1274:     bthing
        !          1275: No match
        !          1276:     ]thing
        !          1277: No match
        !          1278:     cthing
        !          1279: No match
        !          1280:     dthing
        !          1281: No match
        !          1282:     ething
        !          1283: No match
        !          1284: 
        !          1285: /^[^]cde]/
        !          1286:     athing
        !          1287:  0: a
        !          1288:     fthing
        !          1289:  0: f
        !          1290:     *** Failers
        !          1291:  0: *
        !          1292:     ]thing
        !          1293: No match
        !          1294:     cthing
        !          1295: No match
        !          1296:     dthing
        !          1297: No match
        !          1298:     ething
        !          1299: No match
        !          1300: 
        !          1301: /^\/
        !          1302:     
        !          1303:  0: \x81
        !          1304: 
        !          1305: /^ÿ/
        !          1306:     ÿ
        !          1307:  0: \xff
        !          1308: 
        !          1309: /^[0-9]+$/
        !          1310:     0
        !          1311:  0: 0
        !          1312:     1
        !          1313:  0: 1
        !          1314:     2
        !          1315:  0: 2
        !          1316:     3
        !          1317:  0: 3
        !          1318:     4
        !          1319:  0: 4
        !          1320:     5
        !          1321:  0: 5
        !          1322:     6
        !          1323:  0: 6
        !          1324:     7
        !          1325:  0: 7
        !          1326:     8
        !          1327:  0: 8
        !          1328:     9
        !          1329:  0: 9
        !          1330:     10
        !          1331:  0: 10
        !          1332:     100
        !          1333:  0: 100
        !          1334:     *** Failers
        !          1335: No match
        !          1336:     abc
        !          1337: No match
        !          1338: 
        !          1339: /^.*nter/
        !          1340:     enter
        !          1341:  0: enter
        !          1342:     inter
        !          1343:  0: inter
        !          1344:     uponter
        !          1345:  0: uponter
        !          1346: 
        !          1347: /^xxx[0-9]+$/
        !          1348:     xxx0
        !          1349:  0: xxx0
        !          1350:     xxx1234
        !          1351:  0: xxx1234
        !          1352:     *** Failers
        !          1353: No match
        !          1354:     xxx
        !          1355: No match
        !          1356: 
        !          1357: /^.+[0-9][0-9][0-9]$/
        !          1358:     x123
        !          1359:  0: x123
        !          1360:     xx123
        !          1361:  0: xx123
        !          1362:     123456
        !          1363:  0: 123456
        !          1364:     *** Failers
        !          1365: No match
        !          1366:     123
        !          1367: No match
        !          1368:     x1234
        !          1369:  0: x1234
        !          1370: 
        !          1371: /^.+?[0-9][0-9][0-9]$/
        !          1372:     x123
        !          1373:  0: x123
        !          1374:     xx123
        !          1375:  0: xx123
        !          1376:     123456
        !          1377:  0: 123456
        !          1378:     *** Failers
        !          1379: No match
        !          1380:     123
        !          1381: No match
        !          1382:     x1234
        !          1383:  0: x1234
        !          1384: 
        !          1385: /^([^!]+)!(.+)=apquxz\.ixr\.zzz\.ac\.uk$/
        !          1386:     abc!pqr=apquxz.ixr.zzz.ac.uk
        !          1387:  0: abc!pqr=apquxz.ixr.zzz.ac.uk
        !          1388:     *** Failers
        !          1389: No match
        !          1390:     !pqr=apquxz.ixr.zzz.ac.uk
        !          1391: No match
        !          1392:     abc!=apquxz.ixr.zzz.ac.uk
        !          1393: No match
        !          1394:     abc!pqr=apquxz:ixr.zzz.ac.uk
        !          1395: No match
        !          1396:     abc!pqr=apquxz.ixr.zzz.ac.ukk
        !          1397: No match
        !          1398: 
        !          1399: /:/
        !          1400:     Well, we need a colon: somewhere
        !          1401:  0: :
        !          1402:     *** Fail if we don't
        !          1403: No match
        !          1404: 
        !          1405: /([\da-f:]+)$/i
        !          1406:     0abc
        !          1407:  0: 0abc
        !          1408:     abc
        !          1409:  0: abc
        !          1410:     fed
        !          1411:  0: fed
        !          1412:     E
        !          1413:  0: E
        !          1414:     ::
        !          1415:  0: ::
        !          1416:     5f03:12C0::932e
        !          1417:  0: 5f03:12C0::932e
        !          1418:     fed def
        !          1419:  0: def
        !          1420:     Any old stuff
        !          1421:  0: ff
        !          1422:     *** Failers
        !          1423: No match
        !          1424:     0zzz
        !          1425: No match
        !          1426:     gzzz
        !          1427: No match
        !          1428:     fed\x20
        !          1429: No match
        !          1430:     Any old rubbish
        !          1431: No match
        !          1432: 
        !          1433: /^.*\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/
        !          1434:     .1.2.3
        !          1435:  0: .1.2.3
        !          1436:     A.12.123.0
        !          1437:  0: A.12.123.0
        !          1438:     *** Failers
        !          1439: No match
        !          1440:     .1.2.3333
        !          1441: No match
        !          1442:     1.2.3
        !          1443: No match
        !          1444:     1234.2.3
        !          1445: No match
        !          1446: 
        !          1447: /^(\d+)\s+IN\s+SOA\s+(\S+)\s+(\S+)\s*\(\s*$/
        !          1448:     1 IN SOA non-sp1 non-sp2(
        !          1449:  0: 1 IN SOA non-sp1 non-sp2(
        !          1450:     1    IN    SOA    non-sp1    non-sp2   (
        !          1451:  0: 1    IN    SOA    non-sp1    non-sp2   (
        !          1452:     *** Failers
        !          1453: No match
        !          1454:     1IN SOA non-sp1 non-sp2(
        !          1455: No match
        !          1456: 
        !          1457: /^[a-zA-Z\d][a-zA-Z\d\-]*(\.[a-zA-Z\d][a-zA-z\d\-]*)*\.$/
        !          1458:     a.
        !          1459:  0: a.
        !          1460:     Z.
        !          1461:  0: Z.
        !          1462:     2.
        !          1463:  0: 2.
        !          1464:     ab-c.pq-r.
        !          1465:  0: ab-c.pq-r.
        !          1466:     sxk.zzz.ac.uk.
        !          1467:  0: sxk.zzz.ac.uk.
        !          1468:     x-.y-.
        !          1469:  0: x-.y-.
        !          1470:     *** Failers
        !          1471: No match
        !          1472:     -abc.peq.
        !          1473: No match
        !          1474: 
        !          1475: /^\*\.[a-z]([a-z\-\d]*[a-z\d]+)?(\.[a-z]([a-z\-\d]*[a-z\d]+)?)*$/
        !          1476:     *.a
        !          1477:  0: *.a
        !          1478:     *.b0-a
        !          1479:  0: *.b0-a
        !          1480:     *.c3-b.c
        !          1481:  0: *.c3-b.c
        !          1482:     *.c-a.b-c
        !          1483:  0: *.c-a.b-c
        !          1484:     *** Failers
        !          1485: No match
        !          1486:     *.0
        !          1487: No match
        !          1488:     *.a-
        !          1489: No match
        !          1490:     *.a-b.c-
        !          1491: No match
        !          1492:     *.c-a.0-c
        !          1493: No match
        !          1494: 
        !          1495: /^(?=ab(de))(abd)(e)/
        !          1496:     abde
        !          1497:  0: abde
        !          1498: 
        !          1499: /^(?!(ab)de|x)(abd)(f)/
        !          1500:     abdf
        !          1501:  0: abdf
        !          1502: 
        !          1503: /^(?=(ab(cd)))(ab)/
        !          1504:     abcd
        !          1505:  0: ab
        !          1506: 
        !          1507: /^[\da-f](\.[\da-f])*$/i
        !          1508:     a.b.c.d
        !          1509:  0: a.b.c.d
        !          1510:     A.B.C.D
        !          1511:  0: A.B.C.D
        !          1512:     a.b.c.1.2.3.C
        !          1513:  0: a.b.c.1.2.3.C
        !          1514: 
        !          1515: /^\".*\"\s*(;.*)?$/
        !          1516:     \"1234\"
        !          1517:  0: "1234"
        !          1518:     \"abcd\" ;
        !          1519:  0: "abcd" ;
        !          1520:     \"\" ; rhubarb
        !          1521:  0: "" ; rhubarb
        !          1522:     *** Failers
        !          1523: No match
        !          1524:     \"1234\" : things
        !          1525: No match
        !          1526: 
        !          1527: /^$/
        !          1528:     \
        !          1529:  0: 
        !          1530:     *** Failers
        !          1531: No match
        !          1532: 
        !          1533: /   ^    a   (?# begins with a)  b\sc (?# then b c) $ (?# then end)/x
        !          1534:     ab c
        !          1535:  0: ab c
        !          1536:     *** Failers
        !          1537: No match
        !          1538:     abc
        !          1539: No match
        !          1540:     ab cde
        !          1541: No match
        !          1542: 
        !          1543: /(?x)   ^    a   (?# begins with a)  b\sc (?# then b c) $ (?# then end)/
        !          1544:     ab c
        !          1545:  0: ab c
        !          1546:     *** Failers
        !          1547: No match
        !          1548:     abc
        !          1549: No match
        !          1550:     ab cde
        !          1551: No match
        !          1552: 
        !          1553: /^   a\ b[c ]d       $/x
        !          1554:     a bcd
        !          1555:  0: a bcd
        !          1556:     a b d
        !          1557:  0: a b d
        !          1558:     *** Failers
        !          1559: No match
        !          1560:     abcd
        !          1561: No match
        !          1562:     ab d
        !          1563: No match
        !          1564: 
        !          1565: /^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$/
        !          1566:     abcdefhijklm
        !          1567:  0: abcdefhijklm
        !          1568: 
        !          1569: /^(?:a(b(c)))(?:d(e(f)))(?:h(i(j)))(?:k(l(m)))$/
        !          1570:     abcdefhijklm
        !          1571:  0: abcdefhijklm
        !          1572: 
        !          1573: /^[\w][\W][\s][\S][\d][\D][\b][\n][\c]][\022]/
        !          1574:     a+ Z0+\x08\n\x1d\x12
        !          1575:  0: a+ Z0+\x08\x0a\x1d\x12
        !          1576: 
        !          1577: /^[.^$|()*+?{,}]+/
        !          1578:     .^\$(*+)|{?,?}
        !          1579:  0: .^$(*+)|{?,?}
        !          1580:  1: .^$(*+)|{?,?
        !          1581:  2: .^$(*+)|{?,
        !          1582:  3: .^$(*+)|{?
        !          1583:  4: .^$(*+)|{
        !          1584:  5: .^$(*+)|
        !          1585:  6: .^$(*+)
        !          1586:  7: .^$(*+
        !          1587:  8: .^$(*
        !          1588:  9: .^$(
        !          1589: 10: .^$
        !          1590: 11: .^
        !          1591: 12: .
        !          1592: 
        !          1593: /^a*\w/
        !          1594:     z
        !          1595:  0: z
        !          1596:     az
        !          1597:  0: az
        !          1598:  1: a
        !          1599:     aaaz
        !          1600:  0: aaaz
        !          1601:  1: aaa
        !          1602:  2: aa
        !          1603:  3: a
        !          1604:     a
        !          1605:  0: a
        !          1606:     aa
        !          1607:  0: aa
        !          1608:  1: a
        !          1609:     aaaa
        !          1610:  0: aaaa
        !          1611:  1: aaa
        !          1612:  2: aa
        !          1613:  3: a
        !          1614:     a+
        !          1615:  0: a
        !          1616:     aa+
        !          1617:  0: aa
        !          1618:  1: a
        !          1619: 
        !          1620: /^a*?\w/
        !          1621:     z
        !          1622:  0: z
        !          1623:     az
        !          1624:  0: az
        !          1625:  1: a
        !          1626:     aaaz
        !          1627:  0: aaaz
        !          1628:  1: aaa
        !          1629:  2: aa
        !          1630:  3: a
        !          1631:     a
        !          1632:  0: a
        !          1633:     aa
        !          1634:  0: aa
        !          1635:  1: a
        !          1636:     aaaa
        !          1637:  0: aaaa
        !          1638:  1: aaa
        !          1639:  2: aa
        !          1640:  3: a
        !          1641:     a+
        !          1642:  0: a
        !          1643:     aa+
        !          1644:  0: aa
        !          1645:  1: a
        !          1646: 
        !          1647: /^a+\w/
        !          1648:     az
        !          1649:  0: az
        !          1650:     aaaz
        !          1651:  0: aaaz
        !          1652:  1: aaa
        !          1653:  2: aa
        !          1654:     aa
        !          1655:  0: aa
        !          1656:     aaaa
        !          1657:  0: aaaa
        !          1658:  1: aaa
        !          1659:  2: aa
        !          1660:     aa+
        !          1661:  0: aa
        !          1662: 
        !          1663: /^a+?\w/
        !          1664:     az
        !          1665:  0: az
        !          1666:     aaaz
        !          1667:  0: aaaz
        !          1668:  1: aaa
        !          1669:  2: aa
        !          1670:     aa
        !          1671:  0: aa
        !          1672:     aaaa
        !          1673:  0: aaaa
        !          1674:  1: aaa
        !          1675:  2: aa
        !          1676:     aa+
        !          1677:  0: aa
        !          1678: 
        !          1679: /^\d{8}\w{2,}/
        !          1680:     1234567890
        !          1681:  0: 1234567890
        !          1682:     12345678ab
        !          1683:  0: 12345678ab
        !          1684:     12345678__
        !          1685:  0: 12345678__
        !          1686:     *** Failers
        !          1687: No match
        !          1688:     1234567
        !          1689: No match
        !          1690: 
        !          1691: /^[aeiou\d]{4,5}$/
        !          1692:     uoie
        !          1693:  0: uoie
        !          1694:     1234
        !          1695:  0: 1234
        !          1696:     12345
        !          1697:  0: 12345
        !          1698:     aaaaa
        !          1699:  0: aaaaa
        !          1700:     *** Failers
        !          1701: No match
        !          1702:     123456
        !          1703: No match
        !          1704: 
        !          1705: /^[aeiou\d]{4,5}?/
        !          1706:     uoie
        !          1707:  0: uoie
        !          1708:     1234
        !          1709:  0: 1234
        !          1710:     12345
        !          1711:  0: 12345
        !          1712:  1: 1234
        !          1713:     aaaaa
        !          1714:  0: aaaaa
        !          1715:  1: aaaa
        !          1716:     123456
        !          1717:  0: 12345
        !          1718:  1: 1234
        !          1719: 
        !          1720: /^From +([^ ]+) +[a-zA-Z][a-zA-Z][a-zA-Z] +[a-zA-Z][a-zA-Z][a-zA-Z] +[0-9]?[0-9] +[0-9][0-9]:[0-9][0-9]/
        !          1721:     From abcd  Mon Sep 01 12:33:02 1997
        !          1722:  0: From abcd  Mon Sep 01 12:33
        !          1723: 
        !          1724: /^From\s+\S+\s+([a-zA-Z]{3}\s+){2}\d{1,2}\s+\d\d:\d\d/
        !          1725:     From abcd  Mon Sep 01 12:33:02 1997
        !          1726:  0: From abcd  Mon Sep 01 12:33
        !          1727:     From abcd  Mon Sep  1 12:33:02 1997
        !          1728:  0: From abcd  Mon Sep  1 12:33
        !          1729:     *** Failers
        !          1730: No match
        !          1731:     From abcd  Sep 01 12:33:02 1997
        !          1732: No match
        !          1733: 
        !          1734: /^12.34/s
        !          1735:     12\n34
        !          1736:  0: 12\x0a34
        !          1737:     12\r34
        !          1738:  0: 12\x0d34
        !          1739: 
        !          1740: /\w+(?=\t)/
        !          1741:     the quick brown\t fox
        !          1742:  0: brown
        !          1743: 
        !          1744: /foo(?!bar)(.*)/
        !          1745:     foobar is foolish see?
        !          1746:  0: foolish see?
        !          1747:  1: foolish see
        !          1748:  2: foolish se
        !          1749:  3: foolish s
        !          1750:  4: foolish 
        !          1751:  5: foolish
        !          1752:  6: foolis
        !          1753:  7: fooli
        !          1754:  8: fool
        !          1755:  9: foo
        !          1756: 
        !          1757: /(?:(?!foo)...|^.{0,2})bar(.*)/
        !          1758:     foobar crowbar etc
        !          1759:  0: rowbar etc
        !          1760:  1: rowbar et
        !          1761:  2: rowbar e
        !          1762:  3: rowbar 
        !          1763:  4: rowbar
        !          1764:     barrel
        !          1765:  0: barrel
        !          1766:  1: barre
        !          1767:  2: barr
        !          1768:  3: bar
        !          1769:     2barrel
        !          1770:  0: 2barrel
        !          1771:  1: 2barre
        !          1772:  2: 2barr
        !          1773:  3: 2bar
        !          1774:     A barrel
        !          1775:  0: A barrel
        !          1776:  1: A barre
        !          1777:  2: A barr
        !          1778:  3: A bar
        !          1779: 
        !          1780: /^(\D*)(?=\d)(?!123)/
        !          1781:     abc456
        !          1782:  0: abc
        !          1783:     *** Failers
        !          1784: No match
        !          1785:     abc123
        !          1786: No match
        !          1787: 
        !          1788: /^1234(?# test newlines
        !          1789:   inside)/
        !          1790:     1234
        !          1791:  0: 1234
        !          1792: 
        !          1793: /^1234 #comment in extended re
        !          1794:   /x
        !          1795:     1234
        !          1796:  0: 1234
        !          1797: 
        !          1798: /#rhubarb
        !          1799:   abcd/x
        !          1800:     abcd
        !          1801:  0: abcd
        !          1802: 
        !          1803: /^abcd#rhubarb/x
        !          1804:     abcd
        !          1805:  0: abcd
        !          1806: 
        !          1807: /(?!^)abc/
        !          1808:     the abc
        !          1809:  0: abc
        !          1810:     *** Failers
        !          1811: No match
        !          1812:     abc
        !          1813: No match
        !          1814: 
        !          1815: /(?=^)abc/
        !          1816:     abc
        !          1817:  0: abc
        !          1818:     *** Failers
        !          1819: No match
        !          1820:     the abc
        !          1821: No match
        !          1822: 
        !          1823: /^[ab]{1,3}(ab*|b)/
        !          1824:     aabbbbb
        !          1825:  0: aabbbbb
        !          1826:  1: aabbbb
        !          1827:  2: aabbb
        !          1828:  3: aabb
        !          1829:  4: aab
        !          1830:  5: aa
        !          1831: 
        !          1832: /^[ab]{1,3}?(ab*|b)/
        !          1833:     aabbbbb
        !          1834:  0: aabbbbb
        !          1835:  1: aabbbb
        !          1836:  2: aabbb
        !          1837:  3: aabb
        !          1838:  4: aab
        !          1839:  5: aa
        !          1840: 
        !          1841: /^[ab]{1,3}?(ab*?|b)/
        !          1842:     aabbbbb
        !          1843:  0: aabbbbb
        !          1844:  1: aabbbb
        !          1845:  2: aabbb
        !          1846:  3: aabb
        !          1847:  4: aab
        !          1848:  5: aa
        !          1849: 
        !          1850: /^[ab]{1,3}(ab*?|b)/
        !          1851:     aabbbbb
        !          1852:  0: aabbbbb
        !          1853:  1: aabbbb
        !          1854:  2: aabbb
        !          1855:  3: aabb
        !          1856:  4: aab
        !          1857:  5: aa
        !          1858: 
        !          1859: /  (?: [\040\t] |  \(
        !          1860: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
        !          1861: \)  )*                          # optional leading comment
        !          1862: (?:    (?:
        !          1863: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
        !          1864: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
        !          1865: |
        !          1866: " (?:                      # opening quote...
        !          1867: [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
        !          1868: |                     #    or
        !          1869: \\ [^\x80-\xff]           #   Escaped something (something != CR)
        !          1870: )* "  # closing quote
        !          1871: )                    # initial word
        !          1872: (?:  (?: [\040\t] |  \(
        !          1873: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
        !          1874: \)  )*  \.  (?: [\040\t] |  \(
        !          1875: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
        !          1876: \)  )*   (?:
        !          1877: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
        !          1878: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
        !          1879: |
        !          1880: " (?:                      # opening quote...
        !          1881: [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
        !          1882: |                     #    or
        !          1883: \\ [^\x80-\xff]           #   Escaped something (something != CR)
        !          1884: )* "  # closing quote
        !          1885: )  )* # further okay, if led by a period
        !          1886: (?: [\040\t] |  \(
        !          1887: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
        !          1888: \)  )*  @  (?: [\040\t] |  \(
        !          1889: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
        !          1890: \)  )*    (?:
        !          1891: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
        !          1892: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
        !          1893: |   \[                         # [
        !          1894: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
        !          1895: \]                        #           ]
        !          1896: )                           # initial subdomain
        !          1897: (?:                                  #
        !          1898: (?: [\040\t] |  \(
        !          1899: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
        !          1900: \)  )*  \.                        # if led by a period...
        !          1901: (?: [\040\t] |  \(
        !          1902: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
        !          1903: \)  )*   (?:
        !          1904: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
        !          1905: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
        !          1906: |   \[                         # [
        !          1907: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
        !          1908: \]                        #           ]
        !          1909: )                     #   ...further okay
        !          1910: )*
        !          1911: # address
        !          1912: |                     #  or
        !          1913: (?:
        !          1914: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
        !          1915: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
        !          1916: |
        !          1917: " (?:                      # opening quote...
        !          1918: [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
        !          1919: |                     #    or
        !          1920: \\ [^\x80-\xff]           #   Escaped something (something != CR)
        !          1921: )* "  # closing quote
        !          1922: )             # one word, optionally followed by....
        !          1923: (?:
        !          1924: [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037]  |  # atom and space parts, or...
        !          1925: \(
        !          1926: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
        !          1927: \)       |  # comments, or...
        !          1928: 
        !          1929: " (?:                      # opening quote...
        !          1930: [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
        !          1931: |                     #    or
        !          1932: \\ [^\x80-\xff]           #   Escaped something (something != CR)
        !          1933: )* "  # closing quote
        !          1934: # quoted strings
        !          1935: )*
        !          1936: <  (?: [\040\t] |  \(
        !          1937: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
        !          1938: \)  )*                     # leading <
        !          1939: (?:  @  (?: [\040\t] |  \(
        !          1940: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
        !          1941: \)  )*    (?:
        !          1942: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
        !          1943: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
        !          1944: |   \[                         # [
        !          1945: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
        !          1946: \]                        #           ]
        !          1947: )                           # initial subdomain
        !          1948: (?:                                  #
        !          1949: (?: [\040\t] |  \(
        !          1950: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
        !          1951: \)  )*  \.                        # if led by a period...
        !          1952: (?: [\040\t] |  \(
        !          1953: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
        !          1954: \)  )*   (?:
        !          1955: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
        !          1956: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
        !          1957: |   \[                         # [
        !          1958: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
        !          1959: \]                        #           ]
        !          1960: )                     #   ...further okay
        !          1961: )*
        !          1962: 
        !          1963: (?:  (?: [\040\t] |  \(
        !          1964: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
        !          1965: \)  )*  ,  (?: [\040\t] |  \(
        !          1966: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
        !          1967: \)  )*  @  (?: [\040\t] |  \(
        !          1968: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
        !          1969: \)  )*    (?:
        !          1970: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
        !          1971: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
        !          1972: |   \[                         # [
        !          1973: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
        !          1974: \]                        #           ]
        !          1975: )                           # initial subdomain
        !          1976: (?:                                  #
        !          1977: (?: [\040\t] |  \(
        !          1978: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
        !          1979: \)  )*  \.                        # if led by a period...
        !          1980: (?: [\040\t] |  \(
        !          1981: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
        !          1982: \)  )*   (?:
        !          1983: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
        !          1984: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
        !          1985: |   \[                         # [
        !          1986: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
        !          1987: \]                        #           ]
        !          1988: )                     #   ...further okay
        !          1989: )*
        !          1990: )* # further okay, if led by comma
        !          1991: :                                # closing colon
        !          1992: (?: [\040\t] |  \(
        !          1993: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
        !          1994: \)  )*  )? #       optional route
        !          1995: (?:
        !          1996: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
        !          1997: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
        !          1998: |
        !          1999: " (?:                      # opening quote...
        !          2000: [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
        !          2001: |                     #    or
        !          2002: \\ [^\x80-\xff]           #   Escaped something (something != CR)
        !          2003: )* "  # closing quote
        !          2004: )                    # initial word
        !          2005: (?:  (?: [\040\t] |  \(
        !          2006: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
        !          2007: \)  )*  \.  (?: [\040\t] |  \(
        !          2008: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
        !          2009: \)  )*   (?:
        !          2010: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
        !          2011: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
        !          2012: |
        !          2013: " (?:                      # opening quote...
        !          2014: [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
        !          2015: |                     #    or
        !          2016: \\ [^\x80-\xff]           #   Escaped something (something != CR)
        !          2017: )* "  # closing quote
        !          2018: )  )* # further okay, if led by a period
        !          2019: (?: [\040\t] |  \(
        !          2020: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
        !          2021: \)  )*  @  (?: [\040\t] |  \(
        !          2022: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
        !          2023: \)  )*    (?:
        !          2024: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
        !          2025: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
        !          2026: |   \[                         # [
        !          2027: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
        !          2028: \]                        #           ]
        !          2029: )                           # initial subdomain
        !          2030: (?:                                  #
        !          2031: (?: [\040\t] |  \(
        !          2032: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
        !          2033: \)  )*  \.                        # if led by a period...
        !          2034: (?: [\040\t] |  \(
        !          2035: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
        !          2036: \)  )*   (?:
        !          2037: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
        !          2038: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
        !          2039: |   \[                         # [
        !          2040: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
        !          2041: \]                        #           ]
        !          2042: )                     #   ...further okay
        !          2043: )*
        !          2044: #       address spec
        !          2045: (?: [\040\t] |  \(
        !          2046: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
        !          2047: \)  )*  > #                  trailing >
        !          2048: # name and address
        !          2049: )  (?: [\040\t] |  \(
        !          2050: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
        !          2051: \)  )*                       # optional trailing comment
        !          2052: /x
        !          2053:     Alan Other <user\@dom.ain>
        !          2054:  0: Alan Other <user@dom.ain>
        !          2055:     <user\@dom.ain>
        !          2056:  0: user@dom.ain
        !          2057:  1: user@dom
        !          2058:     user\@dom.ain
        !          2059:  0: user@dom.ain
        !          2060:  1: user@dom
        !          2061:     \"A. Other\" <user.1234\@dom.ain> (a comment)
        !          2062:  0: "A. Other" <user.1234@dom.ain> (a comment)
        !          2063:  1: "A. Other" <user.1234@dom.ain        !          2064:  2: "A. Other" <user.1234@dom.ain>
        !          2065:     A. Other <user.1234\@dom.ain> (a comment)
        !          2066:  0:  Other <user.1234@dom.ain> (a comment)
        !          2067:  1:  Other <user.1234@dom.ain        !          2068:  2:  Other <user.1234@dom.ain>
        !          2069:     \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay
        !          2070:  0: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re.lay
        !          2071:  1: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re
        !          2072:     A missing angle <user\@some.where
        !          2073:  0: user@some.where
        !          2074:  1: user@some
        !          2075:     *** Failers
        !          2076: No match
        !          2077:     The quick brown fox
        !          2078: No match
        !          2079: 
        !          2080: /[\040\t]*                    # Nab whitespace.
        !          2081: (?:
        !          2082: \(                              #  (
        !          2083: [^\\\x80-\xff\n\015()] *                             #     normal*
        !          2084: (?:                                 #       (
        !          2085: (?:  \\ [^\x80-\xff]  |
        !          2086: \(                            #  (
        !          2087: [^\\\x80-\xff\n\015()] *                            #     normal*
        !          2088: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
        !          2089: \)                           #                       )
        !          2090: )    #         special
        !          2091: [^\\\x80-\xff\n\015()] *                         #         normal*
        !          2092: )*                                  #            )*
        !          2093: \)                             #                )
        !          2094: [\040\t]* )*    # If comment found, allow more spaces.
        !          2095: # optional leading comment
        !          2096: (?:
        !          2097: (?:
        !          2098: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
        !          2099: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
        !          2100: # Atom
        !          2101: |                       #  or
        !          2102: "                                     # "
        !          2103: [^\\\x80-\xff\n\015"] *                            #   normal
        !          2104: (?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
        !          2105: "                                     #        "
        !          2106: # Quoted string
        !          2107: )
        !          2108: [\040\t]*                    # Nab whitespace.
        !          2109: (?:
        !          2110: \(                              #  (
        !          2111: [^\\\x80-\xff\n\015()] *                             #     normal*
        !          2112: (?:                                 #       (
        !          2113: (?:  \\ [^\x80-\xff]  |
        !          2114: \(                            #  (
        !          2115: [^\\\x80-\xff\n\015()] *                            #     normal*
        !          2116: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
        !          2117: \)                           #                       )
        !          2118: )    #         special
        !          2119: [^\\\x80-\xff\n\015()] *                         #         normal*
        !          2120: )*                                  #            )*
        !          2121: \)                             #                )
        !          2122: [\040\t]* )*    # If comment found, allow more spaces.
        !          2123: (?:
        !          2124: \.
        !          2125: [\040\t]*                    # Nab whitespace.
        !          2126: (?:
        !          2127: \(                              #  (
        !          2128: [^\\\x80-\xff\n\015()] *                             #     normal*
        !          2129: (?:                                 #       (
        !          2130: (?:  \\ [^\x80-\xff]  |
        !          2131: \(                            #  (
        !          2132: [^\\\x80-\xff\n\015()] *                            #     normal*
        !          2133: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
        !          2134: \)                           #                       )
        !          2135: )    #         special
        !          2136: [^\\\x80-\xff\n\015()] *                         #         normal*
        !          2137: )*                                  #            )*
        !          2138: \)                             #                )
        !          2139: [\040\t]* )*    # If comment found, allow more spaces.
        !          2140: (?:
        !          2141: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
        !          2142: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
        !          2143: # Atom
        !          2144: |                       #  or
        !          2145: "                                     # "
        !          2146: [^\\\x80-\xff\n\015"] *                            #   normal
        !          2147: (?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
        !          2148: "                                     #        "
        !          2149: # Quoted string
        !          2150: )
        !          2151: [\040\t]*                    # Nab whitespace.
        !          2152: (?:
        !          2153: \(                              #  (
        !          2154: [^\\\x80-\xff\n\015()] *                             #     normal*
        !          2155: (?:                                 #       (
        !          2156: (?:  \\ [^\x80-\xff]  |
        !          2157: \(                            #  (
        !          2158: [^\\\x80-\xff\n\015()] *                            #     normal*
        !          2159: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
        !          2160: \)                           #                       )
        !          2161: )    #         special
        !          2162: [^\\\x80-\xff\n\015()] *                         #         normal*
        !          2163: )*                                  #            )*
        !          2164: \)                             #                )
        !          2165: [\040\t]* )*    # If comment found, allow more spaces.
        !          2166: # additional words
        !          2167: )*
        !          2168: @
        !          2169: [\040\t]*                    # Nab whitespace.
        !          2170: (?:
        !          2171: \(                              #  (
        !          2172: [^\\\x80-\xff\n\015()] *                             #     normal*
        !          2173: (?:                                 #       (
        !          2174: (?:  \\ [^\x80-\xff]  |
        !          2175: \(                            #  (
        !          2176: [^\\\x80-\xff\n\015()] *                            #     normal*
        !          2177: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
        !          2178: \)                           #                       )
        !          2179: )    #         special
        !          2180: [^\\\x80-\xff\n\015()] *                         #         normal*
        !          2181: )*                                  #            )*
        !          2182: \)                             #                )
        !          2183: [\040\t]* )*    # If comment found, allow more spaces.
        !          2184: (?:
        !          2185: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
        !          2186: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
        !          2187: |
        !          2188: \[                            # [
        !          2189: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
        !          2190: \]                           #           ]
        !          2191: )
        !          2192: [\040\t]*                    # Nab whitespace.
        !          2193: (?:
        !          2194: \(                              #  (
        !          2195: [^\\\x80-\xff\n\015()] *                             #     normal*
        !          2196: (?:                                 #       (
        !          2197: (?:  \\ [^\x80-\xff]  |
        !          2198: \(                            #  (
        !          2199: [^\\\x80-\xff\n\015()] *                            #     normal*
        !          2200: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
        !          2201: \)                           #                       )
        !          2202: )    #         special
        !          2203: [^\\\x80-\xff\n\015()] *                         #         normal*
        !          2204: )*                                  #            )*
        !          2205: \)                             #                )
        !          2206: [\040\t]* )*    # If comment found, allow more spaces.
        !          2207: # optional trailing comments
        !          2208: (?:
        !          2209: \.
        !          2210: [\040\t]*                    # Nab whitespace.
        !          2211: (?:
        !          2212: \(                              #  (
        !          2213: [^\\\x80-\xff\n\015()] *                             #     normal*
        !          2214: (?:                                 #       (
        !          2215: (?:  \\ [^\x80-\xff]  |
        !          2216: \(                            #  (
        !          2217: [^\\\x80-\xff\n\015()] *                            #     normal*
        !          2218: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
        !          2219: \)                           #                       )
        !          2220: )    #         special
        !          2221: [^\\\x80-\xff\n\015()] *                         #         normal*
        !          2222: )*                                  #            )*
        !          2223: \)                             #                )
        !          2224: [\040\t]* )*    # If comment found, allow more spaces.
        !          2225: (?:
        !          2226: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
        !          2227: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
        !          2228: |
        !          2229: \[                            # [
        !          2230: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
        !          2231: \]                           #           ]
        !          2232: )
        !          2233: [\040\t]*                    # Nab whitespace.
        !          2234: (?:
        !          2235: \(                              #  (
        !          2236: [^\\\x80-\xff\n\015()] *                             #     normal*
        !          2237: (?:                                 #       (
        !          2238: (?:  \\ [^\x80-\xff]  |
        !          2239: \(                            #  (
        !          2240: [^\\\x80-\xff\n\015()] *                            #     normal*
        !          2241: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
        !          2242: \)                           #                       )
        !          2243: )    #         special
        !          2244: [^\\\x80-\xff\n\015()] *                         #         normal*
        !          2245: )*                                  #            )*
        !          2246: \)                             #                )
        !          2247: [\040\t]* )*    # If comment found, allow more spaces.
        !          2248: # optional trailing comments
        !          2249: )*
        !          2250: # address
        !          2251: |                             #  or
        !          2252: (?:
        !          2253: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
        !          2254: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
        !          2255: # Atom
        !          2256: |                       #  or
        !          2257: "                                     # "
        !          2258: [^\\\x80-\xff\n\015"] *                            #   normal
        !          2259: (?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
        !          2260: "                                     #        "
        !          2261: # Quoted string
        !          2262: )
        !          2263: # leading word
        !          2264: [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] *               # "normal" atoms and or spaces
        !          2265: (?:
        !          2266: (?:
        !          2267: \(                              #  (
        !          2268: [^\\\x80-\xff\n\015()] *                             #     normal*
        !          2269: (?:                                 #       (
        !          2270: (?:  \\ [^\x80-\xff]  |
        !          2271: \(                            #  (
        !          2272: [^\\\x80-\xff\n\015()] *                            #     normal*
        !          2273: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
        !          2274: \)                           #                       )
        !          2275: )    #         special
        !          2276: [^\\\x80-\xff\n\015()] *                         #         normal*
        !          2277: )*                                  #            )*
        !          2278: \)                             #                )
        !          2279: |
        !          2280: "                                     # "
        !          2281: [^\\\x80-\xff\n\015"] *                            #   normal
        !          2282: (?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
        !          2283: "                                     #        "
        !          2284: ) # "special" comment or quoted string
        !          2285: [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] *            #  more "normal"
        !          2286: )*
        !          2287: <
        !          2288: [\040\t]*                    # Nab whitespace.
        !          2289: (?:
        !          2290: \(                              #  (
        !          2291: [^\\\x80-\xff\n\015()] *                             #     normal*
        !          2292: (?:                                 #       (
        !          2293: (?:  \\ [^\x80-\xff]  |
        !          2294: \(                            #  (
        !          2295: [^\\\x80-\xff\n\015()] *                            #     normal*
        !          2296: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
        !          2297: \)                           #                       )
        !          2298: )    #         special
        !          2299: [^\\\x80-\xff\n\015()] *                         #         normal*
        !          2300: )*                                  #            )*
        !          2301: \)                             #                )
        !          2302: [\040\t]* )*    # If comment found, allow more spaces.
        !          2303: # <
        !          2304: (?:
        !          2305: @
        !          2306: [\040\t]*                    # Nab whitespace.
        !          2307: (?:
        !          2308: \(                              #  (
        !          2309: [^\\\x80-\xff\n\015()] *                             #     normal*
        !          2310: (?:                                 #       (
        !          2311: (?:  \\ [^\x80-\xff]  |
        !          2312: \(                            #  (
        !          2313: [^\\\x80-\xff\n\015()] *                            #     normal*
        !          2314: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
        !          2315: \)                           #                       )
        !          2316: )    #         special
        !          2317: [^\\\x80-\xff\n\015()] *                         #         normal*
        !          2318: )*                                  #            )*
        !          2319: \)                             #                )
        !          2320: [\040\t]* )*    # If comment found, allow more spaces.
        !          2321: (?:
        !          2322: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
        !          2323: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
        !          2324: |
        !          2325: \[                            # [
        !          2326: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
        !          2327: \]                           #           ]
        !          2328: )
        !          2329: [\040\t]*                    # Nab whitespace.
        !          2330: (?:
        !          2331: \(                              #  (
        !          2332: [^\\\x80-\xff\n\015()] *                             #     normal*
        !          2333: (?:                                 #       (
        !          2334: (?:  \\ [^\x80-\xff]  |
        !          2335: \(                            #  (
        !          2336: [^\\\x80-\xff\n\015()] *                            #     normal*
        !          2337: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
        !          2338: \)                           #                       )
        !          2339: )    #         special
        !          2340: [^\\\x80-\xff\n\015()] *                         #         normal*
        !          2341: )*                                  #            )*
        !          2342: \)                             #                )
        !          2343: [\040\t]* )*    # If comment found, allow more spaces.
        !          2344: # optional trailing comments
        !          2345: (?:
        !          2346: \.
        !          2347: [\040\t]*                    # Nab whitespace.
        !          2348: (?:
        !          2349: \(                              #  (
        !          2350: [^\\\x80-\xff\n\015()] *                             #     normal*
        !          2351: (?:                                 #       (
        !          2352: (?:  \\ [^\x80-\xff]  |
        !          2353: \(                            #  (
        !          2354: [^\\\x80-\xff\n\015()] *                            #     normal*
        !          2355: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
        !          2356: \)                           #                       )
        !          2357: )    #         special
        !          2358: [^\\\x80-\xff\n\015()] *                         #         normal*
        !          2359: )*                                  #            )*
        !          2360: \)                             #                )
        !          2361: [\040\t]* )*    # If comment found, allow more spaces.
        !          2362: (?:
        !          2363: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
        !          2364: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
        !          2365: |
        !          2366: \[                            # [
        !          2367: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
        !          2368: \]                           #           ]
        !          2369: )
        !          2370: [\040\t]*                    # Nab whitespace.
        !          2371: (?:
        !          2372: \(                              #  (
        !          2373: [^\\\x80-\xff\n\015()] *                             #     normal*
        !          2374: (?:                                 #       (
        !          2375: (?:  \\ [^\x80-\xff]  |
        !          2376: \(                            #  (
        !          2377: [^\\\x80-\xff\n\015()] *                            #     normal*
        !          2378: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
        !          2379: \)                           #                       )
        !          2380: )    #         special
        !          2381: [^\\\x80-\xff\n\015()] *                         #         normal*
        !          2382: )*                                  #            )*
        !          2383: \)                             #                )
        !          2384: [\040\t]* )*    # If comment found, allow more spaces.
        !          2385: # optional trailing comments
        !          2386: )*
        !          2387: (?: ,
        !          2388: [\040\t]*                    # Nab whitespace.
        !          2389: (?:
        !          2390: \(                              #  (
        !          2391: [^\\\x80-\xff\n\015()] *                             #     normal*
        !          2392: (?:                                 #       (
        !          2393: (?:  \\ [^\x80-\xff]  |
        !          2394: \(                            #  (
        !          2395: [^\\\x80-\xff\n\015()] *                            #     normal*
        !          2396: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
        !          2397: \)                           #                       )
        !          2398: )    #         special
        !          2399: [^\\\x80-\xff\n\015()] *                         #         normal*
        !          2400: )*                                  #            )*
        !          2401: \)                             #                )
        !          2402: [\040\t]* )*    # If comment found, allow more spaces.
        !          2403: @
        !          2404: [\040\t]*                    # Nab whitespace.
        !          2405: (?:
        !          2406: \(                              #  (
        !          2407: [^\\\x80-\xff\n\015()] *                             #     normal*
        !          2408: (?:                                 #       (
        !          2409: (?:  \\ [^\x80-\xff]  |
        !          2410: \(                            #  (
        !          2411: [^\\\x80-\xff\n\015()] *                            #     normal*
        !          2412: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
        !          2413: \)                           #                       )
        !          2414: )    #         special
        !          2415: [^\\\x80-\xff\n\015()] *                         #         normal*
        !          2416: )*                                  #            )*
        !          2417: \)                             #                )
        !          2418: [\040\t]* )*    # If comment found, allow more spaces.
        !          2419: (?:
        !          2420: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
        !          2421: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
        !          2422: |
        !          2423: \[                            # [
        !          2424: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
        !          2425: \]                           #           ]
        !          2426: )
        !          2427: [\040\t]*                    # Nab whitespace.
        !          2428: (?:
        !          2429: \(                              #  (
        !          2430: [^\\\x80-\xff\n\015()] *                             #     normal*
        !          2431: (?:                                 #       (
        !          2432: (?:  \\ [^\x80-\xff]  |
        !          2433: \(                            #  (
        !          2434: [^\\\x80-\xff\n\015()] *                            #     normal*
        !          2435: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
        !          2436: \)                           #                       )
        !          2437: )    #         special
        !          2438: [^\\\x80-\xff\n\015()] *                         #         normal*
        !          2439: )*                                  #            )*
        !          2440: \)                             #                )
        !          2441: [\040\t]* )*    # If comment found, allow more spaces.
        !          2442: # optional trailing comments
        !          2443: (?:
        !          2444: \.
        !          2445: [\040\t]*                    # Nab whitespace.
        !          2446: (?:
        !          2447: \(                              #  (
        !          2448: [^\\\x80-\xff\n\015()] *                             #     normal*
        !          2449: (?:                                 #       (
        !          2450: (?:  \\ [^\x80-\xff]  |
        !          2451: \(                            #  (
        !          2452: [^\\\x80-\xff\n\015()] *                            #     normal*
        !          2453: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
        !          2454: \)                           #                       )
        !          2455: )    #         special
        !          2456: [^\\\x80-\xff\n\015()] *                         #         normal*
        !          2457: )*                                  #            )*
        !          2458: \)                             #                )
        !          2459: [\040\t]* )*    # If comment found, allow more spaces.
        !          2460: (?:
        !          2461: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
        !          2462: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
        !          2463: |
        !          2464: \[                            # [
        !          2465: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
        !          2466: \]                           #           ]
        !          2467: )
        !          2468: [\040\t]*                    # Nab whitespace.
        !          2469: (?:
        !          2470: \(                              #  (
        !          2471: [^\\\x80-\xff\n\015()] *                             #     normal*
        !          2472: (?:                                 #       (
        !          2473: (?:  \\ [^\x80-\xff]  |
        !          2474: \(                            #  (
        !          2475: [^\\\x80-\xff\n\015()] *                            #     normal*
        !          2476: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
        !          2477: \)                           #                       )
        !          2478: )    #         special
        !          2479: [^\\\x80-\xff\n\015()] *                         #         normal*
        !          2480: )*                                  #            )*
        !          2481: \)                             #                )
        !          2482: [\040\t]* )*    # If comment found, allow more spaces.
        !          2483: # optional trailing comments
        !          2484: )*
        !          2485: )*  # additional domains
        !          2486: :
        !          2487: [\040\t]*                    # Nab whitespace.
        !          2488: (?:
        !          2489: \(                              #  (
        !          2490: [^\\\x80-\xff\n\015()] *                             #     normal*
        !          2491: (?:                                 #       (
        !          2492: (?:  \\ [^\x80-\xff]  |
        !          2493: \(                            #  (
        !          2494: [^\\\x80-\xff\n\015()] *                            #     normal*
        !          2495: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
        !          2496: \)                           #                       )
        !          2497: )    #         special
        !          2498: [^\\\x80-\xff\n\015()] *                         #         normal*
        !          2499: )*                                  #            )*
        !          2500: \)                             #                )
        !          2501: [\040\t]* )*    # If comment found, allow more spaces.
        !          2502: # optional trailing comments
        !          2503: )?     #       optional route
        !          2504: (?:
        !          2505: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
        !          2506: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
        !          2507: # Atom
        !          2508: |                       #  or
        !          2509: "                                     # "
        !          2510: [^\\\x80-\xff\n\015"] *                            #   normal
        !          2511: (?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
        !          2512: "                                     #        "
        !          2513: # Quoted string
        !          2514: )
        !          2515: [\040\t]*                    # Nab whitespace.
        !          2516: (?:
        !          2517: \(                              #  (
        !          2518: [^\\\x80-\xff\n\015()] *                             #     normal*
        !          2519: (?:                                 #       (
        !          2520: (?:  \\ [^\x80-\xff]  |
        !          2521: \(                            #  (
        !          2522: [^\\\x80-\xff\n\015()] *                            #     normal*
        !          2523: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
        !          2524: \)                           #                       )
        !          2525: )    #         special
        !          2526: [^\\\x80-\xff\n\015()] *                         #         normal*
        !          2527: )*                                  #            )*
        !          2528: \)                             #                )
        !          2529: [\040\t]* )*    # If comment found, allow more spaces.
        !          2530: (?:
        !          2531: \.
        !          2532: [\040\t]*                    # Nab whitespace.
        !          2533: (?:
        !          2534: \(                              #  (
        !          2535: [^\\\x80-\xff\n\015()] *                             #     normal*
        !          2536: (?:                                 #       (
        !          2537: (?:  \\ [^\x80-\xff]  |
        !          2538: \(                            #  (
        !          2539: [^\\\x80-\xff\n\015()] *                            #     normal*
        !          2540: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
        !          2541: \)                           #                       )
        !          2542: )    #         special
        !          2543: [^\\\x80-\xff\n\015()] *                         #         normal*
        !          2544: )*                                  #            )*
        !          2545: \)                             #                )
        !          2546: [\040\t]* )*    # If comment found, allow more spaces.
        !          2547: (?:
        !          2548: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
        !          2549: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
        !          2550: # Atom
        !          2551: |                       #  or
        !          2552: "                                     # "
        !          2553: [^\\\x80-\xff\n\015"] *                            #   normal
        !          2554: (?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
        !          2555: "                                     #        "
        !          2556: # Quoted string
        !          2557: )
        !          2558: [\040\t]*                    # Nab whitespace.
        !          2559: (?:
        !          2560: \(                              #  (
        !          2561: [^\\\x80-\xff\n\015()] *                             #     normal*
        !          2562: (?:                                 #       (
        !          2563: (?:  \\ [^\x80-\xff]  |
        !          2564: \(                            #  (
        !          2565: [^\\\x80-\xff\n\015()] *                            #     normal*
        !          2566: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
        !          2567: \)                           #                       )
        !          2568: )    #         special
        !          2569: [^\\\x80-\xff\n\015()] *                         #         normal*
        !          2570: )*                                  #            )*
        !          2571: \)                             #                )
        !          2572: [\040\t]* )*    # If comment found, allow more spaces.
        !          2573: # additional words
        !          2574: )*
        !          2575: @
        !          2576: [\040\t]*                    # Nab whitespace.
        !          2577: (?:
        !          2578: \(                              #  (
        !          2579: [^\\\x80-\xff\n\015()] *                             #     normal*
        !          2580: (?:                                 #       (
        !          2581: (?:  \\ [^\x80-\xff]  |
        !          2582: \(                            #  (
        !          2583: [^\\\x80-\xff\n\015()] *                            #     normal*
        !          2584: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
        !          2585: \)                           #                       )
        !          2586: )    #         special
        !          2587: [^\\\x80-\xff\n\015()] *                         #         normal*
        !          2588: )*                                  #            )*
        !          2589: \)                             #                )
        !          2590: [\040\t]* )*    # If comment found, allow more spaces.
        !          2591: (?:
        !          2592: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
        !          2593: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
        !          2594: |
        !          2595: \[                            # [
        !          2596: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
        !          2597: \]                           #           ]
        !          2598: )
        !          2599: [\040\t]*                    # Nab whitespace.
        !          2600: (?:
        !          2601: \(                              #  (
        !          2602: [^\\\x80-\xff\n\015()] *                             #     normal*
        !          2603: (?:                                 #       (
        !          2604: (?:  \\ [^\x80-\xff]  |
        !          2605: \(                            #  (
        !          2606: [^\\\x80-\xff\n\015()] *                            #     normal*
        !          2607: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
        !          2608: \)                           #                       )
        !          2609: )    #         special
        !          2610: [^\\\x80-\xff\n\015()] *                         #         normal*
        !          2611: )*                                  #            )*
        !          2612: \)                             #                )
        !          2613: [\040\t]* )*    # If comment found, allow more spaces.
        !          2614: # optional trailing comments
        !          2615: (?:
        !          2616: \.
        !          2617: [\040\t]*                    # Nab whitespace.
        !          2618: (?:
        !          2619: \(                              #  (
        !          2620: [^\\\x80-\xff\n\015()] *                             #     normal*
        !          2621: (?:                                 #       (
        !          2622: (?:  \\ [^\x80-\xff]  |
        !          2623: \(                            #  (
        !          2624: [^\\\x80-\xff\n\015()] *                            #     normal*
        !          2625: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
        !          2626: \)                           #                       )
        !          2627: )    #         special
        !          2628: [^\\\x80-\xff\n\015()] *                         #         normal*
        !          2629: )*                                  #            )*
        !          2630: \)                             #                )
        !          2631: [\040\t]* )*    # If comment found, allow more spaces.
        !          2632: (?:
        !          2633: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
        !          2634: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
        !          2635: |
        !          2636: \[                            # [
        !          2637: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
        !          2638: \]                           #           ]
        !          2639: )
        !          2640: [\040\t]*                    # Nab whitespace.
        !          2641: (?:
        !          2642: \(                              #  (
        !          2643: [^\\\x80-\xff\n\015()] *                             #     normal*
        !          2644: (?:                                 #       (
        !          2645: (?:  \\ [^\x80-\xff]  |
        !          2646: \(                            #  (
        !          2647: [^\\\x80-\xff\n\015()] *                            #     normal*
        !          2648: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
        !          2649: \)                           #                       )
        !          2650: )    #         special
        !          2651: [^\\\x80-\xff\n\015()] *                         #         normal*
        !          2652: )*                                  #            )*
        !          2653: \)                             #                )
        !          2654: [\040\t]* )*    # If comment found, allow more spaces.
        !          2655: # optional trailing comments
        !          2656: )*
        !          2657: #       address spec
        !          2658: >                    #                 >
        !          2659: # name and address
        !          2660: )
        !          2661: /x
        !          2662:     Alan Other <user\@dom.ain>
        !          2663:  0: Alan Other <user@dom.ain>
        !          2664:     <user\@dom.ain>
        !          2665:  0: user@dom.ain
        !          2666:  1: user@dom
        !          2667:     user\@dom.ain
        !          2668:  0: user@dom.ain
        !          2669:  1: user@dom
        !          2670:     \"A. Other\" <user.1234\@dom.ain> (a comment)
        !          2671:  0: "A. Other" <user.1234@dom.ain>
        !          2672:     A. Other <user.1234\@dom.ain> (a comment)
        !          2673:  0:  Other <user.1234@dom.ain>
        !          2674:     \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay
        !          2675:  0: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re.lay
        !          2676:  1: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re
        !          2677:     A missing angle <user\@some.where
        !          2678:  0: user@some.where
        !          2679:  1: user@some
        !          2680:     *** Failers
        !          2681: No match
        !          2682:     The quick brown fox
        !          2683: No match
        !          2684: 
        !          2685: /abc\0def\00pqr\000xyz\0000AB/
        !          2686:     abc\0def\00pqr\000xyz\0000AB
        !          2687:  0: abc\x00def\x00pqr\x00xyz\x000AB
        !          2688:     abc456 abc\0def\00pqr\000xyz\0000ABCDE
        !          2689:  0: abc\x00def\x00pqr\x00xyz\x000AB
        !          2690: 
        !          2691: /abc\x0def\x00pqr\x000xyz\x0000AB/
        !          2692:     abc\x0def\x00pqr\x000xyz\x0000AB
        !          2693:  0: abc\x0def\x00pqr\x000xyz\x0000AB
        !          2694:     abc456 abc\x0def\x00pqr\x000xyz\x0000ABCDE
        !          2695:  0: abc\x0def\x00pqr\x000xyz\x0000AB
        !          2696: 
        !          2697: /^[\000-\037]/
        !          2698:     \0A
        !          2699:  0: \x00
        !          2700:     \01B
        !          2701:  0: \x01
        !          2702:     \037C
        !          2703:  0: \x1f
        !          2704: 
        !          2705: /\0*/
        !          2706:     \0\0\0\0
        !          2707:  0: \x00\x00\x00\x00
        !          2708:  1: \x00\x00\x00
        !          2709:  2: \x00\x00
        !          2710:  3: \x00
        !          2711:  4: 
        !          2712: 
        !          2713: /A\x0{2,3}Z/
        !          2714:     The A\x0\x0Z
        !          2715:  0: A\x00\x00Z
        !          2716:     An A\0\x0\0Z
        !          2717:  0: A\x00\x00\x00Z
        !          2718:     *** Failers
        !          2719: No match
        !          2720:     A\0Z
        !          2721: No match
        !          2722:     A\0\x0\0\x0Z
        !          2723: No match
        !          2724: 
        !          2725: /^\s/
        !          2726:     \040abc
        !          2727:  0:  
        !          2728:     \x0cabc
        !          2729:  0: \x0c
        !          2730:     \nabc
        !          2731:  0: \x0a
        !          2732:     \rabc
        !          2733:  0: \x0d
        !          2734:     \tabc
        !          2735:  0: \x09
        !          2736:     *** Failers
        !          2737: No match
        !          2738:     abc
        !          2739: No match
        !          2740: 
        !          2741: /^a    b
        !          2742:       c/x
        !          2743:     abc
        !          2744:  0: abc
        !          2745: 
        !          2746: /ab{1,3}bc/
        !          2747:     abbbbc
        !          2748:  0: abbbbc
        !          2749:     abbbc
        !          2750:  0: abbbc
        !          2751:     abbc
        !          2752:  0: abbc
        !          2753:     *** Failers
        !          2754: No match
        !          2755:     abc
        !          2756: No match
        !          2757:     abbbbbc
        !          2758: No match
        !          2759: 
        !          2760: /([^.]*)\.([^:]*):[T ]+(.*)/
        !          2761:     track1.title:TBlah blah blah
        !          2762:  0: track1.title:TBlah blah blah
        !          2763:  1: track1.title:TBlah blah bla
        !          2764:  2: track1.title:TBlah blah bl
        !          2765:  3: track1.title:TBlah blah b
        !          2766:  4: track1.title:TBlah blah 
        !          2767:  5: track1.title:TBlah blah
        !          2768:  6: track1.title:TBlah bla
        !          2769:  7: track1.title:TBlah bl
        !          2770:  8: track1.title:TBlah b
        !          2771:  9: track1.title:TBlah 
        !          2772: 10: track1.title:TBlah
        !          2773: 11: track1.title:TBla
        !          2774: 12: track1.title:TBl
        !          2775: 13: track1.title:TB
        !          2776: 14: track1.title:T
        !          2777: 
        !          2778: /([^.]*)\.([^:]*):[T ]+(.*)/i
        !          2779:     track1.title:TBlah blah blah
        !          2780:  0: track1.title:TBlah blah blah
        !          2781:  1: track1.title:TBlah blah bla
        !          2782:  2: track1.title:TBlah blah bl
        !          2783:  3: track1.title:TBlah blah b
        !          2784:  4: track1.title:TBlah blah 
        !          2785:  5: track1.title:TBlah blah
        !          2786:  6: track1.title:TBlah bla
        !          2787:  7: track1.title:TBlah bl
        !          2788:  8: track1.title:TBlah b
        !          2789:  9: track1.title:TBlah 
        !          2790: 10: track1.title:TBlah
        !          2791: 11: track1.title:TBla
        !          2792: 12: track1.title:TBl
        !          2793: 13: track1.title:TB
        !          2794: 14: track1.title:T
        !          2795: 
        !          2796: /([^.]*)\.([^:]*):[t ]+(.*)/i
        !          2797:     track1.title:TBlah blah blah
        !          2798:  0: track1.title:TBlah blah blah
        !          2799:  1: track1.title:TBlah blah bla
        !          2800:  2: track1.title:TBlah blah bl
        !          2801:  3: track1.title:TBlah blah b
        !          2802:  4: track1.title:TBlah blah 
        !          2803:  5: track1.title:TBlah blah
        !          2804:  6: track1.title:TBlah bla
        !          2805:  7: track1.title:TBlah bl
        !          2806:  8: track1.title:TBlah b
        !          2807:  9: track1.title:TBlah 
        !          2808: 10: track1.title:TBlah
        !          2809: 11: track1.title:TBla
        !          2810: 12: track1.title:TBl
        !          2811: 13: track1.title:TB
        !          2812: 14: track1.title:T
        !          2813: 
        !          2814: /^[W-c]+$/
        !          2815:     WXY_^abc
        !          2816:  0: WXY_^abc
        !          2817:     *** Failers
        !          2818: No match
        !          2819:     wxy
        !          2820: No match
        !          2821: 
        !          2822: /^[W-c]+$/i
        !          2823:     WXY_^abc
        !          2824:  0: WXY_^abc
        !          2825:     wxy_^ABC
        !          2826:  0: wxy_^ABC
        !          2827: 
        !          2828: /^[\x3f-\x5F]+$/i
        !          2829:     WXY_^abc
        !          2830:  0: WXY_^abc
        !          2831:     wxy_^ABC
        !          2832:  0: wxy_^ABC
        !          2833: 
        !          2834: /^abc$/m
        !          2835:     abc
        !          2836:  0: abc
        !          2837:     qqq\nabc
        !          2838:  0: abc
        !          2839:     abc\nzzz
        !          2840:  0: abc
        !          2841:     qqq\nabc\nzzz
        !          2842:  0: abc
        !          2843: 
        !          2844: /^abc$/
        !          2845:     abc
        !          2846:  0: abc
        !          2847:     *** Failers
        !          2848: No match
        !          2849:     qqq\nabc
        !          2850: No match
        !          2851:     abc\nzzz
        !          2852: No match
        !          2853:     qqq\nabc\nzzz
        !          2854: No match
        !          2855: 
        !          2856: /\Aabc\Z/m
        !          2857:     abc
        !          2858:  0: abc
        !          2859:     abc\n 
        !          2860:  0: abc
        !          2861:     *** Failers
        !          2862: No match
        !          2863:     qqq\nabc
        !          2864: No match
        !          2865:     abc\nzzz
        !          2866: No match
        !          2867:     qqq\nabc\nzzz
        !          2868: No match
        !          2869:     
        !          2870: /\A(.)*\Z/s
        !          2871:     abc\ndef
        !          2872:  0: abc\x0adef
        !          2873: 
        !          2874: /\A(.)*\Z/m
        !          2875:     *** Failers
        !          2876:  0: *** Failers
        !          2877:     abc\ndef
        !          2878: No match
        !          2879: 
        !          2880: /(?:b)|(?::+)/
        !          2881:     b::c
        !          2882:  0: b
        !          2883:     c::b
        !          2884:  0: ::
        !          2885:  1: :
        !          2886: 
        !          2887: /[-az]+/
        !          2888:     az-
        !          2889:  0: az-
        !          2890:  1: az
        !          2891:  2: a
        !          2892:     *** Failers
        !          2893:  0: a
        !          2894:     b
        !          2895: No match
        !          2896: 
        !          2897: /[az-]+/
        !          2898:     za-
        !          2899:  0: za-
        !          2900:  1: za
        !          2901:  2: z
        !          2902:     *** Failers
        !          2903:  0: a
        !          2904:     b
        !          2905: No match
        !          2906: 
        !          2907: /[a\-z]+/
        !          2908:     a-z
        !          2909:  0: a-z
        !          2910:  1: a-
        !          2911:  2: a
        !          2912:     *** Failers
        !          2913:  0: a
        !          2914:     b
        !          2915: No match
        !          2916: 
        !          2917: /[a-z]+/
        !          2918:     abcdxyz
        !          2919:  0: abcdxyz
        !          2920:  1: abcdxy
        !          2921:  2: abcdx
        !          2922:  3: abcd
        !          2923:  4: abc
        !          2924:  5: ab
        !          2925:  6: a
        !          2926: 
        !          2927: /[\d-]+/
        !          2928:     12-34
        !          2929:  0: 12-34
        !          2930:  1: 12-3
        !          2931:  2: 12-
        !          2932:  3: 12
        !          2933:  4: 1
        !          2934:     *** Failers
        !          2935: No match
        !          2936:     aaa
        !          2937: No match
        !          2938: 
        !          2939: /[\d-z]+/
        !          2940:     12-34z
        !          2941:  0: 12-34z
        !          2942:  1: 12-34
        !          2943:  2: 12-3
        !          2944:  3: 12-
        !          2945:  4: 12
        !          2946:  5: 1
        !          2947:     *** Failers
        !          2948: No match
        !          2949:     aaa
        !          2950: No match
        !          2951: 
        !          2952: /\x5c/
        !          2953:     \\
        !          2954:  0: \
        !          2955: 
        !          2956: /\x20Z/
        !          2957:     the Zoo
        !          2958:  0:  Z
        !          2959:     *** Failers
        !          2960: No match
        !          2961:     Zulu
        !          2962: No match
        !          2963: 
        !          2964: /ab{3cd/
        !          2965:     ab{3cd
        !          2966:  0: ab{3cd
        !          2967: 
        !          2968: /ab{3,cd/
        !          2969:     ab{3,cd
        !          2970:  0: ab{3,cd
        !          2971: 
        !          2972: /ab{3,4a}cd/
        !          2973:     ab{3,4a}cd
        !          2974:  0: ab{3,4a}cd
        !          2975: 
        !          2976: /{4,5a}bc/
        !          2977:     {4,5a}bc
        !          2978:  0: {4,5a}bc
        !          2979: 
        !          2980: /^a.b/<lf>
        !          2981:     a\rb
        !          2982:  0: a\x0db
        !          2983:     *** Failers
        !          2984: No match
        !          2985:     a\nb
        !          2986: No match
        !          2987: 
        !          2988: /abc$/
        !          2989:     abc
        !          2990:  0: abc
        !          2991:     abc\n
        !          2992:  0: abc
        !          2993:     *** Failers
        !          2994: No match
        !          2995:     abc\ndef
        !          2996: No match
        !          2997: 
        !          2998: /(abc)\123/
        !          2999:     abc\x53
        !          3000:  0: abcS
        !          3001: 
        !          3002: /(abc)\223/
        !          3003:     abc\x93
        !          3004:  0: abc\x93
        !          3005: 
        !          3006: /(abc)\323/
        !          3007:     abc\xd3
        !          3008:  0: abc\xd3
        !          3009: 
        !          3010: /(abc)\100/
        !          3011:     abc\x40
        !          3012:  0: abc@
        !          3013:     abc\100
        !          3014:  0: abc@
        !          3015: 
        !          3016: /(abc)\1000/
        !          3017:     abc\x400
        !          3018:  0: abc@0
        !          3019:     abc\x40\x30
        !          3020:  0: abc@0
        !          3021:     abc\1000
        !          3022:  0: abc@0
        !          3023:     abc\100\x30
        !          3024:  0: abc@0
        !          3025:     abc\100\060
        !          3026:  0: abc@0
        !          3027:     abc\100\60
        !          3028:  0: abc@0
        !          3029: 
        !          3030: /abc\81/
        !          3031:     abc\081
        !          3032:  0: abc\x0081
        !          3033:     abc\0\x38\x31
        !          3034:  0: abc\x0081
        !          3035: 
        !          3036: /abc\91/
        !          3037:     abc\091
        !          3038:  0: abc\x0091
        !          3039:     abc\0\x39\x31
        !          3040:  0: abc\x0091
        !          3041: 
        !          3042: /(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\12\123/
        !          3043:     abcdefghijk\12S
        !          3044:  0: abcdefghijk\x0aS
        !          3045: 
        !          3046: /ab\idef/
        !          3047:     abidef
        !          3048:  0: abidef
        !          3049: 
        !          3050: /a{0}bc/
        !          3051:     bc
        !          3052:  0: bc
        !          3053: 
        !          3054: /(a|(bc)){0,0}?xyz/
        !          3055:     xyz
        !          3056:  0: xyz
        !          3057: 
        !          3058: /abc[\10]de/
        !          3059:     abc\010de
        !          3060:  0: abc\x08de
        !          3061: 
        !          3062: /abc[\1]de/
        !          3063:     abc\1de
        !          3064:  0: abc\x01de
        !          3065: 
        !          3066: /(abc)[\1]de/
        !          3067:     abc\1de
        !          3068:  0: abc\x01de
        !          3069: 
        !          3070: /(?s)a.b/
        !          3071:     a\nb
        !          3072:  0: a\x0ab
        !          3073: 
        !          3074: /^([^a])([^\b])([^c]*)([^d]{3,4})/
        !          3075:     baNOTccccd
        !          3076:  0: baNOTcccc
        !          3077:  1: baNOTccc
        !          3078:  2: baNOTcc
        !          3079:  3: baNOTc
        !          3080:  4: baNOT
        !          3081:     baNOTcccd
        !          3082:  0: baNOTccc
        !          3083:  1: baNOTcc
        !          3084:  2: baNOTc
        !          3085:  3: baNOT
        !          3086:     baNOTccd
        !          3087:  0: baNOTcc
        !          3088:  1: baNOTc
        !          3089:  2: baNOT
        !          3090:     bacccd
        !          3091:  0: baccc
        !          3092:     *** Failers
        !          3093:  0: *** Failers
        !          3094:  1: *** Failer
        !          3095:  2: *** Faile
        !          3096:  3: *** Fail
        !          3097:  4: *** Fai
        !          3098:  5: *** Fa
        !          3099:  6: *** F
        !          3100:     anything
        !          3101: No match
        !          3102:     b\bc   
        !          3103: No match
        !          3104:     baccd
        !          3105: No match
        !          3106: 
        !          3107: /[^a]/
        !          3108:     Abc
        !          3109:  0: A
        !          3110:   
        !          3111: /[^a]/i
        !          3112:     Abc 
        !          3113:  0: b
        !          3114: 
        !          3115: /[^a]+/
        !          3116:     AAAaAbc
        !          3117:  0: AAA
        !          3118:  1: AA
        !          3119:  2: A
        !          3120:   
        !          3121: /[^a]+/i
        !          3122:     AAAaAbc 
        !          3123:  0: bc
        !          3124:  1: b
        !          3125: 
        !          3126: /[^a]+/
        !          3127:     bbb\nccc
        !          3128:  0: bbb\x0accc
        !          3129:  1: bbb\x0acc
        !          3130:  2: bbb\x0ac
        !          3131:  3: bbb\x0a
        !          3132:  4: bbb
        !          3133:  5: bb
        !          3134:  6: b
        !          3135:    
        !          3136: /[^k]$/
        !          3137:     abc
        !          3138:  0: c
        !          3139:     *** Failers
        !          3140:  0: s
        !          3141:     abk   
        !          3142: No match
        !          3143:    
        !          3144: /[^k]{2,3}$/
        !          3145:     abc
        !          3146:  0: abc
        !          3147:     kbc
        !          3148:  0: bc
        !          3149:     kabc 
        !          3150:  0: abc
        !          3151:     *** Failers
        !          3152:  0: ers
        !          3153:     abk
        !          3154: No match
        !          3155:     akb
        !          3156: No match
        !          3157:     akk 
        !          3158: No match
        !          3159: 
        !          3160: /^\d{8,}\@.+[^k]$/
        !          3161:     12345678\@a.b.c.d
        !          3162:  0: 12345678@a.b.c.d
        !          3163:     123456789\@x.y.z
        !          3164:  0: 123456789@x.y.z
        !          3165:     *** Failers
        !          3166: No match
        !          3167:     12345678\@x.y.uk
        !          3168: No match
        !          3169:     1234567\@a.b.c.d       
        !          3170: No match
        !          3171: 
        !          3172: /[^a]/
        !          3173:     aaaabcd
        !          3174:  0: b
        !          3175:     aaAabcd 
        !          3176:  0: A
        !          3177: 
        !          3178: /[^a]/i
        !          3179:     aaaabcd
        !          3180:  0: b
        !          3181:     aaAabcd 
        !          3182:  0: b
        !          3183: 
        !          3184: /[^az]/
        !          3185:     aaaabcd
        !          3186:  0: b
        !          3187:     aaAabcd 
        !          3188:  0: A
        !          3189: 
        !          3190: /[^az]/i
        !          3191:     aaaabcd
        !          3192:  0: b
        !          3193:     aaAabcd 
        !          3194:  0: b
        !          3195: 
        !          3196: /\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377/
        !          3197:  \000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377
        !          3198:  0: \x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff
        !          3199: 
        !          3200: /P[^*]TAIRE[^*]{1,6}?LL/
        !          3201:     xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
        !          3202:  0: PSTAIREISLL
        !          3203: 
        !          3204: /P[^*]TAIRE[^*]{1,}?LL/
        !          3205:     xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
        !          3206:  0: PSTAIREISLL
        !          3207: 
        !          3208: /(\.\d\d[1-9]?)\d+/
        !          3209:     1.230003938
        !          3210:  0: .230003938
        !          3211:  1: .23000393
        !          3212:  2: .2300039
        !          3213:  3: .230003
        !          3214:  4: .23000
        !          3215:  5: .2300
        !          3216:  6: .230
        !          3217:     1.875000282   
        !          3218:  0: .875000282
        !          3219:  1: .87500028
        !          3220:  2: .8750002
        !          3221:  3: .875000
        !          3222:  4: .87500
        !          3223:  5: .8750
        !          3224:  6: .875
        !          3225:     1.235  
        !          3226:  0: .235
        !          3227:                   
        !          3228: /(\.\d\d((?=0)|\d(?=\d)))/
        !          3229:     1.230003938      
        !          3230:  0: .230
        !          3231:  1: .23
        !          3232:     1.875000282
        !          3233:  0: .875
        !          3234:     *** Failers 
        !          3235: No match
        !          3236:     1.235 
        !          3237: No match
        !          3238:     
        !          3239: /a(?)b/
        !          3240:     ab 
        !          3241:  0: ab
        !          3242:  
        !          3243: /\b(foo)\s+(\w+)/i
        !          3244:     Food is on the foo table
        !          3245:  0: foo table
        !          3246:  1: foo tabl
        !          3247:  2: foo tab
        !          3248:  3: foo ta
        !          3249:  4: foo t
        !          3250:     
        !          3251: /foo(.*)bar/
        !          3252:     The food is under the bar in the barn.
        !          3253:  0: food is under the bar in the bar
        !          3254:  1: food is under the bar
        !          3255:     
        !          3256: /foo(.*?)bar/  
        !          3257:     The food is under the bar in the barn.
        !          3258:  0: food is under the bar in the bar
        !          3259:  1: food is under the bar
        !          3260: 
        !          3261: /(.*)(\d*)/
        !          3262:     I have 2 numbers: 53147
        !          3263: Matched, but too many subsidiary matches
        !          3264:  0: I have 2 numbers: 53147
        !          3265:  1: I have 2 numbers: 5314
        !          3266:  2: I have 2 numbers: 531
        !          3267:  3: I have 2 numbers: 53
        !          3268:  4: I have 2 numbers: 5
        !          3269:  5: I have 2 numbers: 
        !          3270:  6: I have 2 numbers:
        !          3271:  7: I have 2 numbers
        !          3272:  8: I have 2 number
        !          3273:  9: I have 2 numbe
        !          3274: 10: I have 2 numb
        !          3275: 11: I have 2 num
        !          3276: 12: I have 2 nu
        !          3277: 13: I have 2 n
        !          3278: 14: I have 2 
        !          3279: 15: I have 2
        !          3280: 16: I have 
        !          3281: 17: I have
        !          3282: 18: I hav
        !          3283: 19: I ha
        !          3284: 20: I h
        !          3285: 21: I 
        !          3286:     
        !          3287: /(.*)(\d+)/
        !          3288:     I have 2 numbers: 53147
        !          3289:  0: I have 2 numbers: 53147
        !          3290:  1: I have 2 numbers: 5314
        !          3291:  2: I have 2 numbers: 531
        !          3292:  3: I have 2 numbers: 53
        !          3293:  4: I have 2 numbers: 5
        !          3294:  5: I have 2
        !          3295:  
        !          3296: /(.*?)(\d*)/
        !          3297:     I have 2 numbers: 53147
        !          3298: Matched, but too many subsidiary matches
        !          3299:  0: I have 2 numbers: 53147
        !          3300:  1: I have 2 numbers: 5314
        !          3301:  2: I have 2 numbers: 531
        !          3302:  3: I have 2 numbers: 53
        !          3303:  4: I have 2 numbers: 5
        !          3304:  5: I have 2 numbers: 
        !          3305:  6: I have 2 numbers:
        !          3306:  7: I have 2 numbers
        !          3307:  8: I have 2 number
        !          3308:  9: I have 2 numbe
        !          3309: 10: I have 2 numb
        !          3310: 11: I have 2 num
        !          3311: 12: I have 2 nu
        !          3312: 13: I have 2 n
        !          3313: 14: I have 2 
        !          3314: 15: I have 2
        !          3315: 16: I have 
        !          3316: 17: I have
        !          3317: 18: I hav
        !          3318: 19: I ha
        !          3319: 20: I h
        !          3320: 21: I 
        !          3321: 
        !          3322: /(.*?)(\d+)/
        !          3323:     I have 2 numbers: 53147
        !          3324:  0: I have 2 numbers: 53147
        !          3325:  1: I have 2 numbers: 5314
        !          3326:  2: I have 2 numbers: 531
        !          3327:  3: I have 2 numbers: 53
        !          3328:  4: I have 2 numbers: 5
        !          3329:  5: I have 2
        !          3330: 
        !          3331: /(.*)(\d+)$/
        !          3332:     I have 2 numbers: 53147
        !          3333:  0: I have 2 numbers: 53147
        !          3334: 
        !          3335: /(.*?)(\d+)$/
        !          3336:     I have 2 numbers: 53147
        !          3337:  0: I have 2 numbers: 53147
        !          3338: 
        !          3339: /(.*)\b(\d+)$/
        !          3340:     I have 2 numbers: 53147
        !          3341:  0: I have 2 numbers: 53147
        !          3342: 
        !          3343: /(.*\D)(\d+)$/
        !          3344:     I have 2 numbers: 53147
        !          3345:  0: I have 2 numbers: 53147
        !          3346: 
        !          3347: /^\D*(?!123)/
        !          3348:     ABC123
        !          3349:  0: AB
        !          3350:  1: A
        !          3351:  2: 
        !          3352:      
        !          3353: /^(\D*)(?=\d)(?!123)/
        !          3354:     ABC445
        !          3355:  0: ABC
        !          3356:     *** Failers
        !          3357: No match
        !          3358:     ABC123
        !          3359: No match
        !          3360:     
        !          3361: /^[W-]46]/
        !          3362:     W46]789 
        !          3363:  0: W46]
        !          3364:     -46]789
        !          3365:  0: -46]
        !          3366:     *** Failers
        !          3367: No match
        !          3368:     Wall
        !          3369: No match
        !          3370:     Zebra
        !          3371: No match
        !          3372:     42
        !          3373: No match
        !          3374:     [abcd] 
        !          3375: No match
        !          3376:     ]abcd[
        !          3377: No match
        !          3378:        
        !          3379: /^[W-\]46]/
        !          3380:     W46]789 
        !          3381:  0: W
        !          3382:     Wall
        !          3383:  0: W
        !          3384:     Zebra
        !          3385:  0: Z
        !          3386:     Xylophone  
        !          3387:  0: X
        !          3388:     42
        !          3389:  0: 4
        !          3390:     [abcd] 
        !          3391:  0: [
        !          3392:     ]abcd[
        !          3393:  0: ]
        !          3394:     \\backslash 
        !          3395:  0: \
        !          3396:     *** Failers
        !          3397: No match
        !          3398:     -46]789
        !          3399: No match
        !          3400:     well
        !          3401: No match
        !          3402:     
        !          3403: /\d\d\/\d\d\/\d\d\d\d/
        !          3404:     01/01/2000
        !          3405:  0: 01/01/2000
        !          3406: 
        !          3407: /word (?:[a-zA-Z0-9]+ ){0,10}otherword/
        !          3408:   word cat dog elephant mussel cow horse canary baboon snake shark otherword
        !          3409:  0: word cat dog elephant mussel cow horse canary baboon snake shark otherword
        !          3410:   word cat dog elephant mussel cow horse canary baboon snake shark
        !          3411: No match
        !          3412: 
        !          3413: /word (?:[a-zA-Z0-9]+ ){0,300}otherword/
        !          3414:   word cat dog elephant mussel cow horse canary baboon snake shark the quick brown fox and the lazy dog and several other words getting close to thirty by now I hope
        !          3415: No match
        !          3416: 
        !          3417: /^(a){0,0}/
        !          3418:     bcd
        !          3419:  0: 
        !          3420:     abc
        !          3421:  0: 
        !          3422:     aab     
        !          3423:  0: 
        !          3424: 
        !          3425: /^(a){0,1}/
        !          3426:     bcd
        !          3427:  0: 
        !          3428:     abc
        !          3429:  0: a
        !          3430:  1: 
        !          3431:     aab  
        !          3432:  0: a
        !          3433:  1: 
        !          3434: 
        !          3435: /^(a){0,2}/
        !          3436:     bcd
        !          3437:  0: 
        !          3438:     abc
        !          3439:  0: a
        !          3440:  1: 
        !          3441:     aab  
        !          3442:  0: aa
        !          3443:  1: a
        !          3444:  2: 
        !          3445: 
        !          3446: /^(a){0,3}/
        !          3447:     bcd
        !          3448:  0: 
        !          3449:     abc
        !          3450:  0: a
        !          3451:  1: 
        !          3452:     aab
        !          3453:  0: aa
        !          3454:  1: a
        !          3455:  2: 
        !          3456:     aaa   
        !          3457:  0: aaa
        !          3458:  1: aa
        !          3459:  2: a
        !          3460:  3: 
        !          3461: 
        !          3462: /^(a){0,}/
        !          3463:     bcd
        !          3464:  0: 
        !          3465:     abc
        !          3466:  0: a
        !          3467:  1: 
        !          3468:     aab
        !          3469:  0: aa
        !          3470:  1: a
        !          3471:  2: 
        !          3472:     aaa
        !          3473:  0: aaa
        !          3474:  1: aa
        !          3475:  2: a
        !          3476:  3: 
        !          3477:     aaaaaaaa    
        !          3478:  0: aaaaaaaa
        !          3479:  1: aaaaaaa
        !          3480:  2: aaaaaa
        !          3481:  3: aaaaa
        !          3482:  4: aaaa
        !          3483:  5: aaa
        !          3484:  6: aa
        !          3485:  7: a
        !          3486:  8: 
        !          3487: 
        !          3488: /^(a){1,1}/
        !          3489:     bcd
        !          3490: No match
        !          3491:     abc
        !          3492:  0: a
        !          3493:     aab  
        !          3494:  0: a
        !          3495: 
        !          3496: /^(a){1,2}/
        !          3497:     bcd
        !          3498: No match
        !          3499:     abc
        !          3500:  0: a
        !          3501:     aab  
        !          3502:  0: aa
        !          3503:  1: a
        !          3504: 
        !          3505: /^(a){1,3}/
        !          3506:     bcd
        !          3507: No match
        !          3508:     abc
        !          3509:  0: a
        !          3510:     aab
        !          3511:  0: aa
        !          3512:  1: a
        !          3513:     aaa   
        !          3514:  0: aaa
        !          3515:  1: aa
        !          3516:  2: a
        !          3517: 
        !          3518: /^(a){1,}/
        !          3519:     bcd
        !          3520: No match
        !          3521:     abc
        !          3522:  0: a
        !          3523:     aab
        !          3524:  0: aa
        !          3525:  1: a
        !          3526:     aaa
        !          3527:  0: aaa
        !          3528:  1: aa
        !          3529:  2: a
        !          3530:     aaaaaaaa    
        !          3531:  0: aaaaaaaa
        !          3532:  1: aaaaaaa
        !          3533:  2: aaaaaa
        !          3534:  3: aaaaa
        !          3535:  4: aaaa
        !          3536:  5: aaa
        !          3537:  6: aa
        !          3538:  7: a
        !          3539: 
        !          3540: /.*\.gif/
        !          3541:     borfle\nbib.gif\nno
        !          3542:  0: bib.gif
        !          3543: 
        !          3544: /.{0,}\.gif/
        !          3545:     borfle\nbib.gif\nno
        !          3546:  0: bib.gif
        !          3547: 
        !          3548: /.*\.gif/m
        !          3549:     borfle\nbib.gif\nno
        !          3550:  0: bib.gif
        !          3551: 
        !          3552: /.*\.gif/s
        !          3553:     borfle\nbib.gif\nno
        !          3554:  0: borfle\x0abib.gif
        !          3555: 
        !          3556: /.*\.gif/ms
        !          3557:     borfle\nbib.gif\nno
        !          3558:  0: borfle\x0abib.gif
        !          3559:     
        !          3560: /.*$/
        !          3561:     borfle\nbib.gif\nno
        !          3562:  0: no
        !          3563: 
        !          3564: /.*$/m
        !          3565:     borfle\nbib.gif\nno
        !          3566:  0: borfle
        !          3567: 
        !          3568: /.*$/s
        !          3569:     borfle\nbib.gif\nno
        !          3570:  0: borfle\x0abib.gif\x0ano
        !          3571: 
        !          3572: /.*$/ms
        !          3573:     borfle\nbib.gif\nno
        !          3574:  0: borfle\x0abib.gif\x0ano
        !          3575:  1: borfle\x0abib.gif
        !          3576:  2: borfle
        !          3577:     
        !          3578: /.*$/
        !          3579:     borfle\nbib.gif\nno\n
        !          3580:  0: no
        !          3581: 
        !          3582: /.*$/m
        !          3583:     borfle\nbib.gif\nno\n
        !          3584:  0: borfle
        !          3585: 
        !          3586: /.*$/s
        !          3587:     borfle\nbib.gif\nno\n
        !          3588:  0: borfle\x0abib.gif\x0ano\x0a
        !          3589:  1: borfle\x0abib.gif\x0ano
        !          3590: 
        !          3591: /.*$/ms
        !          3592:     borfle\nbib.gif\nno\n
        !          3593:  0: borfle\x0abib.gif\x0ano\x0a
        !          3594:  1: borfle\x0abib.gif\x0ano
        !          3595:  2: borfle\x0abib.gif
        !          3596:  3: borfle
        !          3597:     
        !          3598: /(.*X|^B)/
        !          3599:     abcde\n1234Xyz
        !          3600:  0: 1234X
        !          3601:     BarFoo 
        !          3602:  0: B
        !          3603:     *** Failers
        !          3604: No match
        !          3605:     abcde\nBar  
        !          3606: No match
        !          3607: 
        !          3608: /(.*X|^B)/m
        !          3609:     abcde\n1234Xyz
        !          3610:  0: 1234X
        !          3611:     BarFoo 
        !          3612:  0: B
        !          3613:     abcde\nBar  
        !          3614:  0: B
        !          3615: 
        !          3616: /(.*X|^B)/s
        !          3617:     abcde\n1234Xyz
        !          3618:  0: abcde\x0a1234X
        !          3619:     BarFoo 
        !          3620:  0: B
        !          3621:     *** Failers
        !          3622: No match
        !          3623:     abcde\nBar  
        !          3624: No match
        !          3625: 
        !          3626: /(.*X|^B)/ms
        !          3627:     abcde\n1234Xyz
        !          3628:  0: abcde\x0a1234X
        !          3629:     BarFoo 
        !          3630:  0: B
        !          3631:     abcde\nBar  
        !          3632:  0: B
        !          3633: 
        !          3634: /(?s)(.*X|^B)/
        !          3635:     abcde\n1234Xyz
        !          3636:  0: abcde\x0a1234X
        !          3637:     BarFoo 
        !          3638:  0: B
        !          3639:     *** Failers 
        !          3640: No match
        !          3641:     abcde\nBar  
        !          3642: No match
        !          3643: 
        !          3644: /(?s:.*X|^B)/
        !          3645:     abcde\n1234Xyz
        !          3646:  0: abcde\x0a1234X
        !          3647:     BarFoo 
        !          3648:  0: B
        !          3649:     *** Failers 
        !          3650: No match
        !          3651:     abcde\nBar  
        !          3652: No match
        !          3653: 
        !          3654: /^.*B/
        !          3655:     **** Failers
        !          3656: No match
        !          3657:     abc\nB
        !          3658: No match
        !          3659:      
        !          3660: /(?s)^.*B/
        !          3661:     abc\nB
        !          3662:  0: abc\x0aB
        !          3663: 
        !          3664: /(?m)^.*B/
        !          3665:     abc\nB
        !          3666:  0: B
        !          3667:      
        !          3668: /(?ms)^.*B/
        !          3669:     abc\nB
        !          3670:  0: abc\x0aB
        !          3671: 
        !          3672: /(?ms)^B/
        !          3673:     abc\nB
        !          3674:  0: B
        !          3675: 
        !          3676: /(?s)B$/
        !          3677:     B\n
        !          3678:  0: B
        !          3679: 
        !          3680: /^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/
        !          3681:     123456654321
        !          3682:  0: 123456654321
        !          3683:   
        !          3684: /^\d\d\d\d\d\d\d\d\d\d\d\d/
        !          3685:     123456654321 
        !          3686:  0: 123456654321
        !          3687: 
        !          3688: /^[\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d]/
        !          3689:     123456654321
        !          3690:  0: 123456654321
        !          3691:   
        !          3692: /^[abc]{12}/
        !          3693:     abcabcabcabc
        !          3694:  0: abcabcabcabc
        !          3695:     
        !          3696: /^[a-c]{12}/
        !          3697:     abcabcabcabc
        !          3698:  0: abcabcabcabc
        !          3699:     
        !          3700: /^(a|b|c){12}/
        !          3701:     abcabcabcabc 
        !          3702:  0: abcabcabcabc
        !          3703: 
        !          3704: /^[abcdefghijklmnopqrstuvwxy0123456789]/
        !          3705:     n
        !          3706:  0: n
        !          3707:     *** Failers 
        !          3708: No match
        !          3709:     z 
        !          3710: No match
        !          3711: 
        !          3712: /abcde{0,0}/
        !          3713:     abcd
        !          3714:  0: abcd
        !          3715:     *** Failers
        !          3716: No match
        !          3717:     abce  
        !          3718: No match
        !          3719: 
        !          3720: /ab[cd]{0,0}e/
        !          3721:     abe
        !          3722:  0: abe
        !          3723:     *** Failers
        !          3724: No match
        !          3725:     abcde 
        !          3726: No match
        !          3727:     
        !          3728: /ab(c){0,0}d/
        !          3729:     abd
        !          3730:  0: abd
        !          3731:     *** Failers
        !          3732: No match
        !          3733:     abcd   
        !          3734: No match
        !          3735: 
        !          3736: /a(b*)/
        !          3737:     a
        !          3738:  0: a
        !          3739:     ab
        !          3740:  0: ab
        !          3741:  1: a
        !          3742:     abbbb
        !          3743:  0: abbbb
        !          3744:  1: abbb
        !          3745:  2: abb
        !          3746:  3: ab
        !          3747:  4: a
        !          3748:     *** Failers
        !          3749:  0: a
        !          3750:     bbbbb    
        !          3751: No match
        !          3752:     
        !          3753: /ab\d{0}e/
        !          3754:     abe
        !          3755:  0: abe
        !          3756:     *** Failers
        !          3757: No match
        !          3758:     ab1e   
        !          3759: No match
        !          3760:     
        !          3761: /"([^\\"]+|\\.)*"/
        !          3762:     the \"quick\" brown fox
        !          3763:  0: "quick"
        !          3764:     \"the \\\"quick\\\" brown fox\" 
        !          3765:  0: "the \"quick\" brown fox"
        !          3766: 
        !          3767: /.*?/g+
        !          3768:     abc
        !          3769:  0: abc
        !          3770:  0+ 
        !          3771:  1: ab
        !          3772:  2: a
        !          3773:  3: 
        !          3774:  0: 
        !          3775:  0+ 
        !          3776:   
        !          3777: /\b/g+
        !          3778:     abc 
        !          3779:  0: 
        !          3780:  0+ abc
        !          3781:  0: 
        !          3782:  0+ 
        !          3783: 
        !          3784: /\b/+g
        !          3785:     abc 
        !          3786:  0: 
        !          3787:  0+ abc
        !          3788:  0: 
        !          3789:  0+ 
        !          3790: 
        !          3791: //g
        !          3792:     abc
        !          3793:  0: 
        !          3794:  0: 
        !          3795:  0: 
        !          3796:  0: 
        !          3797: 
        !          3798: /<tr([\w\W\s\d][^<>]{0,})><TD([\w\W\s\d][^<>]{0,})>([\d]{0,}\.)(.*)((<BR>([\w\W\s\d][^<>]{0,})|[\s]{0,}))<\/a><\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><\/TR>/is
        !          3799:   <TR BGCOLOR='#DBE9E9'><TD align=left valign=top>43.<a href='joblist.cfm?JobID=94 6735&Keyword='>Word Processor<BR>(N-1286)</a></TD><TD align=left valign=top>Lega lstaff.com</TD><TD align=left valign=top>CA - Statewide</TD></TR>
        !          3800:  0: <TR BGCOLOR='#DBE9E9'><TD align=left valign=top>43.<a href='joblist.cfm?JobID=94 6735&Keyword='>Word Processor<BR>(N-1286)</a></TD><TD align=left valign=top>Lega lstaff.com</TD><TD align=left valign=top>CA - Statewide</TD></TR>
        !          3801: 
        !          3802: /a[^a]b/
        !          3803:     acb
        !          3804:  0: acb
        !          3805:     a\nb
        !          3806:  0: a\x0ab
        !          3807:     
        !          3808: /a.b/
        !          3809:     acb
        !          3810:  0: acb
        !          3811:     *** Failers 
        !          3812: No match
        !          3813:     a\nb   
        !          3814: No match
        !          3815:     
        !          3816: /a[^a]b/s
        !          3817:     acb
        !          3818:  0: acb
        !          3819:     a\nb  
        !          3820:  0: a\x0ab
        !          3821:     
        !          3822: /a.b/s
        !          3823:     acb
        !          3824:  0: acb
        !          3825:     a\nb  
        !          3826:  0: a\x0ab
        !          3827: 
        !          3828: /^(b+?|a){1,2}?c/
        !          3829:     bac
        !          3830:  0: bac
        !          3831:     bbac
        !          3832:  0: bbac
        !          3833:     bbbac
        !          3834:  0: bbbac
        !          3835:     bbbbac
        !          3836:  0: bbbbac
        !          3837:     bbbbbac 
        !          3838:  0: bbbbbac
        !          3839: 
        !          3840: /^(b+|a){1,2}?c/
        !          3841:     bac
        !          3842:  0: bac
        !          3843:     bbac
        !          3844:  0: bbac
        !          3845:     bbbac
        !          3846:  0: bbbac
        !          3847:     bbbbac
        !          3848:  0: bbbbac
        !          3849:     bbbbbac 
        !          3850:  0: bbbbbac
        !          3851:     
        !          3852: /(?!\A)x/m
        !          3853:     x\nb\n
        !          3854: No match
        !          3855:     a\bx\n  
        !          3856:  0: x
        !          3857:     
        !          3858: /\x0{ab}/
        !          3859:     \0{ab} 
        !          3860:  0: \x00{ab}
        !          3861: 
        !          3862: /(A|B)*?CD/
        !          3863:     CD 
        !          3864:  0: CD
        !          3865:     
        !          3866: /(A|B)*CD/
        !          3867:     CD 
        !          3868:  0: CD
        !          3869: 
        !          3870: /(?<!bar)foo/
        !          3871:     foo
        !          3872:  0: foo
        !          3873:     catfood
        !          3874:  0: foo
        !          3875:     arfootle
        !          3876:  0: foo
        !          3877:     rfoosh
        !          3878:  0: foo
        !          3879:     *** Failers
        !          3880: No match
        !          3881:     barfoo
        !          3882: No match
        !          3883:     towbarfoo
        !          3884: No match
        !          3885: 
        !          3886: /\w{3}(?<!bar)foo/
        !          3887:     catfood
        !          3888:  0: catfoo
        !          3889:     *** Failers
        !          3890: No match
        !          3891:     foo
        !          3892: No match
        !          3893:     barfoo
        !          3894: No match
        !          3895:     towbarfoo
        !          3896: No match
        !          3897: 
        !          3898: /(?<=(foo)a)bar/
        !          3899:     fooabar
        !          3900:  0: bar
        !          3901:     *** Failers
        !          3902: No match
        !          3903:     bar
        !          3904: No match
        !          3905:     foobbar
        !          3906: No match
        !          3907:       
        !          3908: /\Aabc\z/m
        !          3909:     abc
        !          3910:  0: abc
        !          3911:     *** Failers
        !          3912: No match
        !          3913:     abc\n   
        !          3914: No match
        !          3915:     qqq\nabc
        !          3916: No match
        !          3917:     abc\nzzz
        !          3918: No match
        !          3919:     qqq\nabc\nzzz
        !          3920: No match
        !          3921: 
        !          3922: "(?>.*/)foo"
        !          3923:     /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/it/you/see/
        !          3924: No match
        !          3925: 
        !          3926: "(?>.*/)foo"
        !          3927:     /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo
        !          3928:  0: /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo
        !          3929: 
        !          3930: /(?>(\.\d\d[1-9]?))\d+/
        !          3931:     1.230003938
        !          3932:  0: .230003938
        !          3933:  1: .23000393
        !          3934:  2: .2300039
        !          3935:  3: .230003
        !          3936:  4: .23000
        !          3937:  5: .2300
        !          3938:  6: .230
        !          3939:     1.875000282
        !          3940:  0: .875000282
        !          3941:  1: .87500028
        !          3942:  2: .8750002
        !          3943:  3: .875000
        !          3944:  4: .87500
        !          3945:  5: .8750
        !          3946:     *** Failers 
        !          3947: No match
        !          3948:     1.235 
        !          3949: No match
        !          3950: 
        !          3951: /^((?>\w+)|(?>\s+))*$/
        !          3952:     now is the time for all good men to come to the aid of the party
        !          3953:  0: now is the time for all good men to come to the aid of the party
        !          3954:     *** Failers
        !          3955: No match
        !          3956:     this is not a line with only words and spaces!
        !          3957: No match
        !          3958:     
        !          3959: /(\d+)(\w)/
        !          3960:     12345a
        !          3961:  0: 12345a
        !          3962:  1: 12345
        !          3963:  2: 1234
        !          3964:  3: 123
        !          3965:  4: 12
        !          3966:     12345+ 
        !          3967:  0: 12345
        !          3968:  1: 1234
        !          3969:  2: 123
        !          3970:  3: 12
        !          3971: 
        !          3972: /((?>\d+))(\w)/
        !          3973:     12345a
        !          3974:  0: 12345a
        !          3975:     *** Failers
        !          3976: No match
        !          3977:     12345+ 
        !          3978: No match
        !          3979: 
        !          3980: /(?>a+)b/
        !          3981:     aaab
        !          3982:  0: aaab
        !          3983: 
        !          3984: /((?>a+)b)/
        !          3985:     aaab
        !          3986:  0: aaab
        !          3987: 
        !          3988: /(?>(a+))b/
        !          3989:     aaab
        !          3990:  0: aaab
        !          3991: 
        !          3992: /(?>b)+/
        !          3993:     aaabbbccc
        !          3994:  0: bbb
        !          3995:  1: bb
        !          3996:  2: b
        !          3997: 
        !          3998: /(?>a+|b+|c+)*c/
        !          3999:     aaabbbbccccd
        !          4000:  0: aaabbbbcccc
        !          4001:  1: aaabbbbc
        !          4002:     
        !          4003: /(a+|b+|c+)*c/
        !          4004:     aaabbbbccccd
        !          4005:  0: aaabbbbcccc
        !          4006:  1: aaabbbbccc
        !          4007:  2: aaabbbbcc
        !          4008:  3: aaabbbbc
        !          4009: 
        !          4010: /((?>[^()]+)|\([^()]*\))+/
        !          4011:     ((abc(ade)ufh()()x
        !          4012:  0: abc(ade)ufh()()x
        !          4013:  1: abc(ade)ufh()()
        !          4014:  2: abc(ade)ufh()
        !          4015:  3: abc(ade)ufh
        !          4016:  4: abc(ade)
        !          4017:  5: abc
        !          4018:     
        !          4019: /\(((?>[^()]+)|\([^()]+\))+\)/ 
        !          4020:     (abc)
        !          4021:  0: (abc)
        !          4022:     (abc(def)xyz)
        !          4023:  0: (abc(def)xyz)
        !          4024:     *** Failers
        !          4025: No match
        !          4026:     ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   
        !          4027: No match
        !          4028: 
        !          4029: /a(?-i)b/i
        !          4030:     ab
        !          4031:  0: ab
        !          4032:     Ab
        !          4033:  0: Ab
        !          4034:     *** Failers 
        !          4035: No match
        !          4036:     aB
        !          4037: No match
        !          4038:     AB
        !          4039: No match
        !          4040:         
        !          4041: /(a (?x)b c)d e/
        !          4042:     a bcd e
        !          4043:  0: a bcd e
        !          4044:     *** Failers
        !          4045: No match
        !          4046:     a b cd e
        !          4047: No match
        !          4048:     abcd e   
        !          4049: No match
        !          4050:     a bcde 
        !          4051: No match
        !          4052:  
        !          4053: /(a b(?x)c d (?-x)e f)/
        !          4054:     a bcde f
        !          4055:  0: a bcde f
        !          4056:     *** Failers
        !          4057: No match
        !          4058:     abcdef  
        !          4059: No match
        !          4060: 
        !          4061: /(a(?i)b)c/
        !          4062:     abc
        !          4063:  0: abc
        !          4064:     aBc
        !          4065:  0: aBc
        !          4066:     *** Failers
        !          4067: No match
        !          4068:     abC
        !          4069: No match
        !          4070:     aBC  
        !          4071: No match
        !          4072:     Abc
        !          4073: No match
        !          4074:     ABc
        !          4075: No match
        !          4076:     ABC
        !          4077: No match
        !          4078:     AbC
        !          4079: No match
        !          4080:     
        !          4081: /a(?i:b)c/
        !          4082:     abc
        !          4083:  0: abc
        !          4084:     aBc
        !          4085:  0: aBc
        !          4086:     *** Failers 
        !          4087: No match
        !          4088:     ABC
        !          4089: No match
        !          4090:     abC
        !          4091: No match
        !          4092:     aBC
        !          4093: No match
        !          4094:     
        !          4095: /a(?i:b)*c/
        !          4096:     aBc
        !          4097:  0: aBc
        !          4098:     aBBc
        !          4099:  0: aBBc
        !          4100:     *** Failers 
        !          4101: No match
        !          4102:     aBC
        !          4103: No match
        !          4104:     aBBC
        !          4105: No match
        !          4106:     
        !          4107: /a(?=b(?i)c)\w\wd/
        !          4108:     abcd
        !          4109:  0: abcd
        !          4110:     abCd
        !          4111:  0: abCd
        !          4112:     *** Failers
        !          4113: No match
        !          4114:     aBCd
        !          4115: No match
        !          4116:     abcD     
        !          4117: No match
        !          4118:     
        !          4119: /(?s-i:more.*than).*million/i
        !          4120:     more than million
        !          4121:  0: more than million
        !          4122:     more than MILLION
        !          4123:  0: more than MILLION
        !          4124:     more \n than Million 
        !          4125:  0: more \x0a than Million
        !          4126:     *** Failers
        !          4127: No match
        !          4128:     MORE THAN MILLION    
        !          4129: No match
        !          4130:     more \n than \n million 
        !          4131: No match
        !          4132: 
        !          4133: /(?:(?s-i)more.*than).*million/i
        !          4134:     more than million
        !          4135:  0: more than million
        !          4136:     more than MILLION
        !          4137:  0: more than MILLION
        !          4138:     more \n than Million 
        !          4139:  0: more \x0a than Million
        !          4140:     *** Failers
        !          4141: No match
        !          4142:     MORE THAN MILLION    
        !          4143: No match
        !          4144:     more \n than \n million 
        !          4145: No match
        !          4146:     
        !          4147: /(?>a(?i)b+)+c/ 
        !          4148:     abc
        !          4149:  0: abc
        !          4150:     aBbc
        !          4151:  0: aBbc
        !          4152:     aBBc 
        !          4153:  0: aBBc
        !          4154:     *** Failers
        !          4155: No match
        !          4156:     Abc
        !          4157: No match
        !          4158:     abAb    
        !          4159: No match
        !          4160:     abbC 
        !          4161: No match
        !          4162:     
        !          4163: /(?=a(?i)b)\w\wc/
        !          4164:     abc
        !          4165:  0: abc
        !          4166:     aBc
        !          4167:  0: aBc
        !          4168:     *** Failers
        !          4169: No match
        !          4170:     Ab 
        !          4171: No match
        !          4172:     abC
        !          4173: No match
        !          4174:     aBC     
        !          4175: No match
        !          4176:     
        !          4177: /(?<=a(?i)b)(\w\w)c/
        !          4178:     abxxc
        !          4179:  0: xxc
        !          4180:     aBxxc
        !          4181:  0: xxc
        !          4182:     *** Failers
        !          4183: No match
        !          4184:     Abxxc
        !          4185: No match
        !          4186:     ABxxc
        !          4187: No match
        !          4188:     abxxC      
        !          4189: No match
        !          4190: 
        !          4191: /^(?(?=abc)\w{3}:|\d\d)$/
        !          4192:     abc:
        !          4193:  0: abc:
        !          4194:     12
        !          4195:  0: 12
        !          4196:     *** Failers
        !          4197: No match
        !          4198:     123
        !          4199: No match
        !          4200:     xyz    
        !          4201: No match
        !          4202: 
        !          4203: /^(?(?!abc)\d\d|\w{3}:)$/
        !          4204:     abc:
        !          4205:  0: abc:
        !          4206:     12
        !          4207:  0: 12
        !          4208:     *** Failers
        !          4209: No match
        !          4210:     123
        !          4211: No match
        !          4212:     xyz    
        !          4213: No match
        !          4214:     
        !          4215: /(?(?<=foo)bar|cat)/
        !          4216:     foobar
        !          4217:  0: bar
        !          4218:     cat
        !          4219:  0: cat
        !          4220:     fcat
        !          4221:  0: cat
        !          4222:     focat   
        !          4223:  0: cat
        !          4224:     *** Failers
        !          4225: No match
        !          4226:     foocat  
        !          4227: No match
        !          4228: 
        !          4229: /(?(?<!foo)cat|bar)/
        !          4230:     foobar
        !          4231:  0: bar
        !          4232:     cat
        !          4233:  0: cat
        !          4234:     fcat
        !          4235:  0: cat
        !          4236:     focat   
        !          4237:  0: cat
        !          4238:     *** Failers
        !          4239: No match
        !          4240:     foocat  
        !          4241: No match
        !          4242: 
        !          4243: /(?>a*)*/
        !          4244:     a
        !          4245:  0: a
        !          4246:  1: 
        !          4247:     aa
        !          4248:  0: aa
        !          4249:  1: 
        !          4250:     aaaa
        !          4251:  0: aaaa
        !          4252:  1: 
        !          4253:     
        !          4254: /(abc|)+/
        !          4255:     abc
        !          4256:  0: abc
        !          4257:  1: 
        !          4258:     abcabc
        !          4259:  0: abcabc
        !          4260:  1: abc
        !          4261:  2: 
        !          4262:     abcabcabc
        !          4263:  0: abcabcabc
        !          4264:  1: abcabc
        !          4265:  2: abc
        !          4266:  3: 
        !          4267:     xyz      
        !          4268:  0: 
        !          4269: 
        !          4270: /([a]*)*/
        !          4271:     a
        !          4272:  0: a
        !          4273:  1: 
        !          4274:     aaaaa 
        !          4275:  0: aaaaa
        !          4276:  1: aaaa
        !          4277:  2: aaa
        !          4278:  3: aa
        !          4279:  4: a
        !          4280:  5: 
        !          4281:  
        !          4282: /([ab]*)*/
        !          4283:     a
        !          4284:  0: a
        !          4285:  1: 
        !          4286:     b
        !          4287:  0: b
        !          4288:  1: 
        !          4289:     ababab
        !          4290:  0: ababab
        !          4291:  1: ababa
        !          4292:  2: abab
        !          4293:  3: aba
        !          4294:  4: ab
        !          4295:  5: a
        !          4296:  6: 
        !          4297:     aaaabcde
        !          4298:  0: aaaab
        !          4299:  1: aaaa
        !          4300:  2: aaa
        !          4301:  3: aa
        !          4302:  4: a
        !          4303:  5: 
        !          4304:     bbbb    
        !          4305:  0: bbbb
        !          4306:  1: bbb
        !          4307:  2: bb
        !          4308:  3: b
        !          4309:  4: 
        !          4310:  
        !          4311: /([^a]*)*/
        !          4312:     b
        !          4313:  0: b
        !          4314:  1: 
        !          4315:     bbbb
        !          4316:  0: bbbb
        !          4317:  1: bbb
        !          4318:  2: bb
        !          4319:  3: b
        !          4320:  4: 
        !          4321:     aaa   
        !          4322:  0: 
        !          4323:  
        !          4324: /([^ab]*)*/
        !          4325:     cccc
        !          4326:  0: cccc
        !          4327:  1: ccc
        !          4328:  2: cc
        !          4329:  3: c
        !          4330:  4: 
        !          4331:     abab  
        !          4332:  0: 
        !          4333:  
        !          4334: /([a]*?)*/
        !          4335:     a
        !          4336:  0: a
        !          4337:  1: 
        !          4338:     aaaa 
        !          4339:  0: aaaa
        !          4340:  1: aaa
        !          4341:  2: aa
        !          4342:  3: a
        !          4343:  4: 
        !          4344:  
        !          4345: /([ab]*?)*/
        !          4346:     a
        !          4347:  0: a
        !          4348:  1: 
        !          4349:     b
        !          4350:  0: b
        !          4351:  1: 
        !          4352:     abab
        !          4353:  0: abab
        !          4354:  1: aba
        !          4355:  2: ab
        !          4356:  3: a
        !          4357:  4: 
        !          4358:     baba   
        !          4359:  0: baba
        !          4360:  1: bab
        !          4361:  2: ba
        !          4362:  3: b
        !          4363:  4: 
        !          4364:  
        !          4365: /([^a]*?)*/
        !          4366:     b
        !          4367:  0: b
        !          4368:  1: 
        !          4369:     bbbb
        !          4370:  0: bbbb
        !          4371:  1: bbb
        !          4372:  2: bb
        !          4373:  3: b
        !          4374:  4: 
        !          4375:     aaa   
        !          4376:  0: 
        !          4377:  
        !          4378: /([^ab]*?)*/
        !          4379:     c
        !          4380:  0: c
        !          4381:  1: 
        !          4382:     cccc
        !          4383:  0: cccc
        !          4384:  1: ccc
        !          4385:  2: cc
        !          4386:  3: c
        !          4387:  4: 
        !          4388:     baba   
        !          4389:  0: 
        !          4390:  
        !          4391: /(?>a*)*/
        !          4392:     a
        !          4393:  0: a
        !          4394:  1: 
        !          4395:     aaabcde 
        !          4396:  0: aaa
        !          4397:  1: 
        !          4398:  
        !          4399: /((?>a*))*/
        !          4400:     aaaaa
        !          4401:  0: aaaaa
        !          4402:  1: 
        !          4403:     aabbaa 
        !          4404:  0: aa
        !          4405:  1: 
        !          4406:  
        !          4407: /((?>a*?))*/
        !          4408:     aaaaa
        !          4409:  0: aaaaa
        !          4410:  1: 
        !          4411:     aabbaa 
        !          4412:  0: aa
        !          4413:  1: 
        !          4414: 
        !          4415: /(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /x
        !          4416:     12-sep-98
        !          4417:  0: 12-sep-98
        !          4418:     12-09-98
        !          4419:  0: 12-09-98
        !          4420:     *** Failers
        !          4421: No match
        !          4422:     sep-12-98
        !          4423: No match
        !          4424:         
        !          4425: /(?i:saturday|sunday)/
        !          4426:     saturday
        !          4427:  0: saturday
        !          4428:     sunday
        !          4429:  0: sunday
        !          4430:     Saturday
        !          4431:  0: Saturday
        !          4432:     Sunday
        !          4433:  0: Sunday
        !          4434:     SATURDAY
        !          4435:  0: SATURDAY
        !          4436:     SUNDAY
        !          4437:  0: SUNDAY
        !          4438:     SunDay
        !          4439:  0: SunDay
        !          4440:     
        !          4441: /(a(?i)bc|BB)x/
        !          4442:     abcx
        !          4443:  0: abcx
        !          4444:     aBCx
        !          4445:  0: aBCx
        !          4446:     bbx
        !          4447:  0: bbx
        !          4448:     BBx
        !          4449:  0: BBx
        !          4450:     *** Failers
        !          4451: No match
        !          4452:     abcX
        !          4453: No match
        !          4454:     aBCX
        !          4455: No match
        !          4456:     bbX
        !          4457: No match
        !          4458:     BBX               
        !          4459: No match
        !          4460: 
        !          4461: /^([ab](?i)[cd]|[ef])/
        !          4462:     ac
        !          4463:  0: ac
        !          4464:     aC
        !          4465:  0: aC
        !          4466:     bD
        !          4467:  0: bD
        !          4468:     elephant
        !          4469:  0: e
        !          4470:     Europe 
        !          4471:  0: E
        !          4472:     frog
        !          4473:  0: f
        !          4474:     France
        !          4475:  0: F
        !          4476:     *** Failers
        !          4477: No match
        !          4478:     Africa     
        !          4479: No match
        !          4480: 
        !          4481: /^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)/
        !          4482:     ab
        !          4483:  0: ab
        !          4484:     aBd
        !          4485:  0: aBd
        !          4486:     xy
        !          4487:  0: xy
        !          4488:     xY
        !          4489:  0: xY
        !          4490:     zebra
        !          4491:  0: z
        !          4492:     Zambesi
        !          4493:  0: Z
        !          4494:     *** Failers
        !          4495: No match
        !          4496:     aCD  
        !          4497: No match
        !          4498:     XY  
        !          4499: No match
        !          4500: 
        !          4501: /(?<=foo\n)^bar/m
        !          4502:     foo\nbar
        !          4503:  0: bar
        !          4504:     *** Failers
        !          4505: No match
        !          4506:     bar
        !          4507: No match
        !          4508:     baz\nbar   
        !          4509: No match
        !          4510: 
        !          4511: /(?<=(?<!foo)bar)baz/
        !          4512:     barbaz
        !          4513:  0: baz
        !          4514:     barbarbaz 
        !          4515:  0: baz
        !          4516:     koobarbaz 
        !          4517:  0: baz
        !          4518:     *** Failers
        !          4519: No match
        !          4520:     baz
        !          4521: No match
        !          4522:     foobarbaz 
        !          4523: No match
        !          4524: 
        !          4525: /The following tests are taken from the Perl 5.005 test suite; some of them/
        !          4526: /are compatible with 5.004, but I'd rather not have to sort them out./
        !          4527: No match
        !          4528: 
        !          4529: /abc/
        !          4530:     abc
        !          4531:  0: abc
        !          4532:     xabcy
        !          4533:  0: abc
        !          4534:     ababc
        !          4535:  0: abc
        !          4536:     *** Failers
        !          4537: No match
        !          4538:     xbc
        !          4539: No match
        !          4540:     axc
        !          4541: No match
        !          4542:     abx
        !          4543: No match
        !          4544: 
        !          4545: /ab*c/
        !          4546:     abc
        !          4547:  0: abc
        !          4548: 
        !          4549: /ab*bc/
        !          4550:     abc
        !          4551:  0: abc
        !          4552:     abbc
        !          4553:  0: abbc
        !          4554:     abbbbc
        !          4555:  0: abbbbc
        !          4556: 
        !          4557: /.{1}/
        !          4558:     abbbbc
        !          4559:  0: a
        !          4560: 
        !          4561: /.{3,4}/
        !          4562:     abbbbc
        !          4563:  0: abbb
        !          4564:  1: abb
        !          4565: 
        !          4566: /ab{0,}bc/
        !          4567:     abbbbc
        !          4568:  0: abbbbc
        !          4569: 
        !          4570: /ab+bc/
        !          4571:     abbc
        !          4572:  0: abbc
        !          4573:     *** Failers
        !          4574: No match
        !          4575:     abc
        !          4576: No match
        !          4577:     abq
        !          4578: No match
        !          4579: 
        !          4580: /ab+bc/
        !          4581:     abbbbc
        !          4582:  0: abbbbc
        !          4583: 
        !          4584: /ab{1,}bc/
        !          4585:     abbbbc
        !          4586:  0: abbbbc
        !          4587: 
        !          4588: /ab{1,3}bc/
        !          4589:     abbbbc
        !          4590:  0: abbbbc
        !          4591: 
        !          4592: /ab{3,4}bc/
        !          4593:     abbbbc
        !          4594:  0: abbbbc
        !          4595: 
        !          4596: /ab{4,5}bc/
        !          4597:     *** Failers
        !          4598: No match
        !          4599:     abq
        !          4600: No match
        !          4601:     abbbbc
        !          4602: No match
        !          4603: 
        !          4604: /ab?bc/
        !          4605:     abbc
        !          4606:  0: abbc
        !          4607:     abc
        !          4608:  0: abc
        !          4609: 
        !          4610: /ab{0,1}bc/
        !          4611:     abc
        !          4612:  0: abc
        !          4613: 
        !          4614: /ab?bc/
        !          4615: 
        !          4616: /ab?c/
        !          4617:     abc
        !          4618:  0: abc
        !          4619: 
        !          4620: /ab{0,1}c/
        !          4621:     abc
        !          4622:  0: abc
        !          4623: 
        !          4624: /^abc$/
        !          4625:     abc
        !          4626:  0: abc
        !          4627:     *** Failers
        !          4628: No match
        !          4629:     abbbbc
        !          4630: No match
        !          4631:     abcc
        !          4632: No match
        !          4633: 
        !          4634: /^abc/
        !          4635:     abcc
        !          4636:  0: abc
        !          4637: 
        !          4638: /^abc$/
        !          4639: 
        !          4640: /abc$/
        !          4641:     aabc
        !          4642:  0: abc
        !          4643:     *** Failers
        !          4644: No match
        !          4645:     aabc
        !          4646:  0: abc
        !          4647:     aabcd
        !          4648: No match
        !          4649: 
        !          4650: /^/
        !          4651:     abc
        !          4652:  0: 
        !          4653: 
        !          4654: /$/
        !          4655:     abc
        !          4656:  0: 
        !          4657: 
        !          4658: /a.c/
        !          4659:     abc
        !          4660:  0: abc
        !          4661:     axc
        !          4662:  0: axc
        !          4663: 
        !          4664: /a.*c/
        !          4665:     axyzc
        !          4666:  0: axyzc
        !          4667: 
        !          4668: /a[bc]d/
        !          4669:     abd
        !          4670:  0: abd
        !          4671:     *** Failers
        !          4672: No match
        !          4673:     axyzd
        !          4674: No match
        !          4675:     abc
        !          4676: No match
        !          4677: 
        !          4678: /a[b-d]e/
        !          4679:     ace
        !          4680:  0: ace
        !          4681: 
        !          4682: /a[b-d]/
        !          4683:     aac
        !          4684:  0: ac
        !          4685: 
        !          4686: /a[-b]/
        !          4687:     a-
        !          4688:  0: a-
        !          4689: 
        !          4690: /a[b-]/
        !          4691:     a-
        !          4692:  0: a-
        !          4693: 
        !          4694: /a]/
        !          4695:     a]
        !          4696:  0: a]
        !          4697: 
        !          4698: /a[]]b/
        !          4699:     a]b
        !          4700:  0: a]b
        !          4701: 
        !          4702: /a[^bc]d/
        !          4703:     aed
        !          4704:  0: aed
        !          4705:     *** Failers
        !          4706: No match
        !          4707:     abd
        !          4708: No match
        !          4709:     abd
        !          4710: No match
        !          4711: 
        !          4712: /a[^-b]c/
        !          4713:     adc
        !          4714:  0: adc
        !          4715: 
        !          4716: /a[^]b]c/
        !          4717:     adc
        !          4718:  0: adc
        !          4719:     *** Failers
        !          4720: No match
        !          4721:     a-c
        !          4722:  0: a-c
        !          4723:     a]c
        !          4724: No match
        !          4725: 
        !          4726: /\ba\b/
        !          4727:     a-
        !          4728:  0: a
        !          4729:     -a
        !          4730:  0: a
        !          4731:     -a-
        !          4732:  0: a
        !          4733: 
        !          4734: /\by\b/
        !          4735:     *** Failers
        !          4736: No match
        !          4737:     xy
        !          4738: No match
        !          4739:     yz
        !          4740: No match
        !          4741:     xyz
        !          4742: No match
        !          4743: 
        !          4744: /\Ba\B/
        !          4745:     *** Failers
        !          4746:  0: a
        !          4747:     a-
        !          4748: No match
        !          4749:     -a
        !          4750: No match
        !          4751:     -a-
        !          4752: No match
        !          4753: 
        !          4754: /\By\b/
        !          4755:     xy
        !          4756:  0: y
        !          4757: 
        !          4758: /\by\B/
        !          4759:     yz
        !          4760:  0: y
        !          4761: 
        !          4762: /\By\B/
        !          4763:     xyz
        !          4764:  0: y
        !          4765: 
        !          4766: /\w/
        !          4767:     a
        !          4768:  0: a
        !          4769: 
        !          4770: /\W/
        !          4771:     -
        !          4772:  0: -
        !          4773:     *** Failers
        !          4774:  0: *
        !          4775:     -
        !          4776:  0: -
        !          4777:     a
        !          4778: No match
        !          4779: 
        !          4780: /a\sb/
        !          4781:     a b
        !          4782:  0: a b
        !          4783: 
        !          4784: /a\Sb/
        !          4785:     a-b
        !          4786:  0: a-b
        !          4787:     *** Failers
        !          4788: No match
        !          4789:     a-b
        !          4790:  0: a-b
        !          4791:     a b
        !          4792: No match
        !          4793: 
        !          4794: /\d/
        !          4795:     1
        !          4796:  0: 1
        !          4797: 
        !          4798: /\D/
        !          4799:     -
        !          4800:  0: -
        !          4801:     *** Failers
        !          4802:  0: *
        !          4803:     -
        !          4804:  0: -
        !          4805:     1
        !          4806: No match
        !          4807: 
        !          4808: /[\w]/
        !          4809:     a
        !          4810:  0: a
        !          4811: 
        !          4812: /[\W]/
        !          4813:     -
        !          4814:  0: -
        !          4815:     *** Failers
        !          4816:  0: *
        !          4817:     -
        !          4818:  0: -
        !          4819:     a
        !          4820: No match
        !          4821: 
        !          4822: /a[\s]b/
        !          4823:     a b
        !          4824:  0: a b
        !          4825: 
        !          4826: /a[\S]b/
        !          4827:     a-b
        !          4828:  0: a-b
        !          4829:     *** Failers
        !          4830: No match
        !          4831:     a-b
        !          4832:  0: a-b
        !          4833:     a b
        !          4834: No match
        !          4835: 
        !          4836: /[\d]/
        !          4837:     1
        !          4838:  0: 1
        !          4839: 
        !          4840: /[\D]/
        !          4841:     -
        !          4842:  0: -
        !          4843:     *** Failers
        !          4844:  0: *
        !          4845:     -
        !          4846:  0: -
        !          4847:     1
        !          4848: No match
        !          4849: 
        !          4850: /ab|cd/
        !          4851:     abc
        !          4852:  0: ab
        !          4853:     abcd
        !          4854:  0: ab
        !          4855: 
        !          4856: /()ef/
        !          4857:     def
        !          4858:  0: ef
        !          4859: 
        !          4860: /$b/
        !          4861: 
        !          4862: /a\(b/
        !          4863:     a(b
        !          4864:  0: a(b
        !          4865: 
        !          4866: /a\(*b/
        !          4867:     ab
        !          4868:  0: ab
        !          4869:     a((b
        !          4870:  0: a((b
        !          4871: 
        !          4872: /a\\b/
        !          4873:     a\b
        !          4874: No match
        !          4875: 
        !          4876: /((a))/
        !          4877:     abc
        !          4878:  0: a
        !          4879: 
        !          4880: /(a)b(c)/
        !          4881:     abc
        !          4882:  0: abc
        !          4883: 
        !          4884: /a+b+c/
        !          4885:     aabbabc
        !          4886:  0: abc
        !          4887: 
        !          4888: /a{1,}b{1,}c/
        !          4889:     aabbabc
        !          4890:  0: abc
        !          4891: 
        !          4892: /a.+?c/
        !          4893:     abcabc
        !          4894:  0: abcabc
        !          4895:  1: abc
        !          4896: 
        !          4897: /(a+|b)*/
        !          4898:     ab
        !          4899:  0: ab
        !          4900:  1: a
        !          4901:  2: 
        !          4902: 
        !          4903: /(a+|b){0,}/
        !          4904:     ab
        !          4905:  0: ab
        !          4906:  1: a
        !          4907:  2: 
        !          4908: 
        !          4909: /(a+|b)+/
        !          4910:     ab
        !          4911:  0: ab
        !          4912:  1: a
        !          4913: 
        !          4914: /(a+|b){1,}/
        !          4915:     ab
        !          4916:  0: ab
        !          4917:  1: a
        !          4918: 
        !          4919: /(a+|b)?/
        !          4920:     ab
        !          4921:  0: a
        !          4922:  1: 
        !          4923: 
        !          4924: /(a+|b){0,1}/
        !          4925:     ab
        !          4926:  0: a
        !          4927:  1: 
        !          4928: 
        !          4929: /[^ab]*/
        !          4930:     cde
        !          4931:  0: cde
        !          4932:  1: cd
        !          4933:  2: c
        !          4934:  3: 
        !          4935: 
        !          4936: /abc/
        !          4937:     *** Failers
        !          4938: No match
        !          4939:     b
        !          4940: No match
        !          4941:     
        !          4942: 
        !          4943: /a*/
        !          4944:     
        !          4945: 
        !          4946: /([abc])*d/
        !          4947:     abbbcd
        !          4948:  0: abbbcd
        !          4949: 
        !          4950: /([abc])*bcd/
        !          4951:     abcd
        !          4952:  0: abcd
        !          4953: 
        !          4954: /a|b|c|d|e/
        !          4955:     e
        !          4956:  0: e
        !          4957: 
        !          4958: /(a|b|c|d|e)f/
        !          4959:     ef
        !          4960:  0: ef
        !          4961: 
        !          4962: /abcd*efg/
        !          4963:     abcdefg
        !          4964:  0: abcdefg
        !          4965: 
        !          4966: /ab*/
        !          4967:     xabyabbbz
        !          4968:  0: ab
        !          4969:  1: a
        !          4970:     xayabbbz
        !          4971:  0: a
        !          4972: 
        !          4973: /(ab|cd)e/
        !          4974:     abcde
        !          4975:  0: cde
        !          4976: 
        !          4977: /[abhgefdc]ij/
        !          4978:     hij
        !          4979:  0: hij
        !          4980: 
        !          4981: /^(ab|cd)e/
        !          4982: 
        !          4983: /(abc|)ef/
        !          4984:     abcdef
        !          4985:  0: ef
        !          4986: 
        !          4987: /(a|b)c*d/
        !          4988:     abcd
        !          4989:  0: bcd
        !          4990: 
        !          4991: /(ab|ab*)bc/
        !          4992:     abc
        !          4993:  0: abc
        !          4994: 
        !          4995: /a([bc]*)c*/
        !          4996:     abc
        !          4997:  0: abc
        !          4998:  1: ab
        !          4999:  2: a
        !          5000: 
        !          5001: /a([bc]*)(c*d)/
        !          5002:     abcd
        !          5003:  0: abcd
        !          5004: 
        !          5005: /a([bc]+)(c*d)/
        !          5006:     abcd
        !          5007:  0: abcd
        !          5008: 
        !          5009: /a([bc]*)(c+d)/
        !          5010:     abcd
        !          5011:  0: abcd
        !          5012: 
        !          5013: /a[bcd]*dcdcde/
        !          5014:     adcdcde
        !          5015:  0: adcdcde
        !          5016: 
        !          5017: /a[bcd]+dcdcde/
        !          5018:     *** Failers
        !          5019: No match
        !          5020:     abcde
        !          5021: No match
        !          5022:     adcdcde
        !          5023: No match
        !          5024: 
        !          5025: /(ab|a)b*c/
        !          5026:     abc
        !          5027:  0: abc
        !          5028: 
        !          5029: /((a)(b)c)(d)/
        !          5030:     abcd
        !          5031:  0: abcd
        !          5032: 
        !          5033: /[a-zA-Z_][a-zA-Z0-9_]*/
        !          5034:     alpha
        !          5035:  0: alpha
        !          5036:  1: alph
        !          5037:  2: alp
        !          5038:  3: al
        !          5039:  4: a
        !          5040: 
        !          5041: /^a(bc+|b[eh])g|.h$/
        !          5042:     abh
        !          5043:  0: bh
        !          5044: 
        !          5045: /(bc+d$|ef*g.|h?i(j|k))/
        !          5046:     effgz
        !          5047:  0: effgz
        !          5048:     ij
        !          5049:  0: ij
        !          5050:     reffgz
        !          5051:  0: effgz
        !          5052:     *** Failers
        !          5053: No match
        !          5054:     effg
        !          5055: No match
        !          5056:     bcdd
        !          5057: No match
        !          5058: 
        !          5059: /((((((((((a))))))))))/
        !          5060:     a
        !          5061:  0: a
        !          5062: 
        !          5063: /(((((((((a)))))))))/
        !          5064:     a
        !          5065:  0: a
        !          5066: 
        !          5067: /multiple words of text/
        !          5068:     *** Failers
        !          5069: No match
        !          5070:     aa
        !          5071: No match
        !          5072:     uh-uh
        !          5073: No match
        !          5074: 
        !          5075: /multiple words/
        !          5076:     multiple words, yeah
        !          5077:  0: multiple words
        !          5078: 
        !          5079: /(.*)c(.*)/
        !          5080:     abcde
        !          5081:  0: abcde
        !          5082:  1: abcd
        !          5083:  2: abc
        !          5084: 
        !          5085: /\((.*), (.*)\)/
        !          5086:     (a, b)
        !          5087:  0: (a, b)
        !          5088: 
        !          5089: /[k]/
        !          5090: 
        !          5091: /abcd/
        !          5092:     abcd
        !          5093:  0: abcd
        !          5094: 
        !          5095: /a(bc)d/
        !          5096:     abcd
        !          5097:  0: abcd
        !          5098: 
        !          5099: /a[-]?c/
        !          5100:     ac
        !          5101:  0: ac
        !          5102: 
        !          5103: /abc/i
        !          5104:     ABC
        !          5105:  0: ABC
        !          5106:     XABCY
        !          5107:  0: ABC
        !          5108:     ABABC
        !          5109:  0: ABC
        !          5110:     *** Failers
        !          5111: No match
        !          5112:     aaxabxbaxbbx
        !          5113: No match
        !          5114:     XBC
        !          5115: No match
        !          5116:     AXC
        !          5117: No match
        !          5118:     ABX
        !          5119: No match
        !          5120: 
        !          5121: /ab*c/i
        !          5122:     ABC
        !          5123:  0: ABC
        !          5124: 
        !          5125: /ab*bc/i
        !          5126:     ABC
        !          5127:  0: ABC
        !          5128:     ABBC
        !          5129:  0: ABBC
        !          5130: 
        !          5131: /ab*?bc/i
        !          5132:     ABBBBC
        !          5133:  0: ABBBBC
        !          5134: 
        !          5135: /ab{0,}?bc/i
        !          5136:     ABBBBC
        !          5137:  0: ABBBBC
        !          5138: 
        !          5139: /ab+?bc/i
        !          5140:     ABBC
        !          5141:  0: ABBC
        !          5142: 
        !          5143: /ab+bc/i
        !          5144:     *** Failers
        !          5145: No match
        !          5146:     ABC
        !          5147: No match
        !          5148:     ABQ
        !          5149: No match
        !          5150: 
        !          5151: /ab{1,}bc/i
        !          5152: 
        !          5153: /ab+bc/i
        !          5154:     ABBBBC
        !          5155:  0: ABBBBC
        !          5156: 
        !          5157: /ab{1,}?bc/i
        !          5158:     ABBBBC
        !          5159:  0: ABBBBC
        !          5160: 
        !          5161: /ab{1,3}?bc/i
        !          5162:     ABBBBC
        !          5163:  0: ABBBBC
        !          5164: 
        !          5165: /ab{3,4}?bc/i
        !          5166:     ABBBBC
        !          5167:  0: ABBBBC
        !          5168: 
        !          5169: /ab{4,5}?bc/i
        !          5170:     *** Failers
        !          5171: No match
        !          5172:     ABQ
        !          5173: No match
        !          5174:     ABBBBC
        !          5175: No match
        !          5176: 
        !          5177: /ab??bc/i
        !          5178:     ABBC
        !          5179:  0: ABBC
        !          5180:     ABC
        !          5181:  0: ABC
        !          5182: 
        !          5183: /ab{0,1}?bc/i
        !          5184:     ABC
        !          5185:  0: ABC
        !          5186: 
        !          5187: /ab??bc/i
        !          5188: 
        !          5189: /ab??c/i
        !          5190:     ABC
        !          5191:  0: ABC
        !          5192: 
        !          5193: /ab{0,1}?c/i
        !          5194:     ABC
        !          5195:  0: ABC
        !          5196: 
        !          5197: /^abc$/i
        !          5198:     ABC
        !          5199:  0: ABC
        !          5200:     *** Failers
        !          5201: No match
        !          5202:     ABBBBC
        !          5203: No match
        !          5204:     ABCC
        !          5205: No match
        !          5206: 
        !          5207: /^abc/i
        !          5208:     ABCC
        !          5209:  0: ABC
        !          5210: 
        !          5211: /^abc$/i
        !          5212: 
        !          5213: /abc$/i
        !          5214:     AABC
        !          5215:  0: ABC
        !          5216: 
        !          5217: /^/i
        !          5218:     ABC
        !          5219:  0: 
        !          5220: 
        !          5221: /$/i
        !          5222:     ABC
        !          5223:  0: 
        !          5224: 
        !          5225: /a.c/i
        !          5226:     ABC
        !          5227:  0: ABC
        !          5228:     AXC
        !          5229:  0: AXC
        !          5230: 
        !          5231: /a.*?c/i
        !          5232:     AXYZC
        !          5233:  0: AXYZC
        !          5234: 
        !          5235: /a.*c/i
        !          5236:     *** Failers
        !          5237: No match
        !          5238:     AABC
        !          5239:  0: AABC
        !          5240:     AXYZD
        !          5241: No match
        !          5242: 
        !          5243: /a[bc]d/i
        !          5244:     ABD
        !          5245:  0: ABD
        !          5246: 
        !          5247: /a[b-d]e/i
        !          5248:     ACE
        !          5249:  0: ACE
        !          5250:     *** Failers
        !          5251: No match
        !          5252:     ABC
        !          5253: No match
        !          5254:     ABD
        !          5255: No match
        !          5256: 
        !          5257: /a[b-d]/i
        !          5258:     AAC
        !          5259:  0: AC
        !          5260: 
        !          5261: /a[-b]/i
        !          5262:     A-
        !          5263:  0: A-
        !          5264: 
        !          5265: /a[b-]/i
        !          5266:     A-
        !          5267:  0: A-
        !          5268: 
        !          5269: /a]/i
        !          5270:     A]
        !          5271:  0: A]
        !          5272: 
        !          5273: /a[]]b/i
        !          5274:     A]B
        !          5275:  0: A]B
        !          5276: 
        !          5277: /a[^bc]d/i
        !          5278:     AED
        !          5279:  0: AED
        !          5280: 
        !          5281: /a[^-b]c/i
        !          5282:     ADC
        !          5283:  0: ADC
        !          5284:     *** Failers
        !          5285: No match
        !          5286:     ABD
        !          5287: No match
        !          5288:     A-C
        !          5289: No match
        !          5290: 
        !          5291: /a[^]b]c/i
        !          5292:     ADC
        !          5293:  0: ADC
        !          5294: 
        !          5295: /ab|cd/i
        !          5296:     ABC
        !          5297:  0: AB
        !          5298:     ABCD
        !          5299:  0: AB
        !          5300: 
        !          5301: /()ef/i
        !          5302:     DEF
        !          5303:  0: EF
        !          5304: 
        !          5305: /$b/i
        !          5306:     *** Failers
        !          5307: No match
        !          5308:     A]C
        !          5309: No match
        !          5310:     B
        !          5311: No match
        !          5312: 
        !          5313: /a\(b/i
        !          5314:     A(B
        !          5315:  0: A(B
        !          5316: 
        !          5317: /a\(*b/i
        !          5318:     AB
        !          5319:  0: AB
        !          5320:     A((B
        !          5321:  0: A((B
        !          5322: 
        !          5323: /a\\b/i
        !          5324:     A\B
        !          5325: No match
        !          5326: 
        !          5327: /((a))/i
        !          5328:     ABC
        !          5329:  0: A
        !          5330: 
        !          5331: /(a)b(c)/i
        !          5332:     ABC
        !          5333:  0: ABC
        !          5334: 
        !          5335: /a+b+c/i
        !          5336:     AABBABC
        !          5337:  0: ABC
        !          5338: 
        !          5339: /a{1,}b{1,}c/i
        !          5340:     AABBABC
        !          5341:  0: ABC
        !          5342: 
        !          5343: /a.+?c/i
        !          5344:     ABCABC
        !          5345:  0: ABCABC
        !          5346:  1: ABC
        !          5347: 
        !          5348: /a.*?c/i
        !          5349:     ABCABC
        !          5350:  0: ABCABC
        !          5351:  1: ABC
        !          5352: 
        !          5353: /a.{0,5}?c/i
        !          5354:     ABCABC
        !          5355:  0: ABCABC
        !          5356:  1: ABC
        !          5357: 
        !          5358: /(a+|b)*/i
        !          5359:     AB
        !          5360:  0: AB
        !          5361:  1: A
        !          5362:  2: 
        !          5363: 
        !          5364: /(a+|b){0,}/i
        !          5365:     AB
        !          5366:  0: AB
        !          5367:  1: A
        !          5368:  2: 
        !          5369: 
        !          5370: /(a+|b)+/i
        !          5371:     AB
        !          5372:  0: AB
        !          5373:  1: A
        !          5374: 
        !          5375: /(a+|b){1,}/i
        !          5376:     AB
        !          5377:  0: AB
        !          5378:  1: A
        !          5379: 
        !          5380: /(a+|b)?/i
        !          5381:     AB
        !          5382:  0: A
        !          5383:  1: 
        !          5384: 
        !          5385: /(a+|b){0,1}/i
        !          5386:     AB
        !          5387:  0: A
        !          5388:  1: 
        !          5389: 
        !          5390: /(a+|b){0,1}?/i
        !          5391:     AB
        !          5392:  0: A
        !          5393:  1: 
        !          5394: 
        !          5395: /[^ab]*/i
        !          5396:     CDE
        !          5397:  0: CDE
        !          5398:  1: CD
        !          5399:  2: C
        !          5400:  3: 
        !          5401: 
        !          5402: /abc/i
        !          5403: 
        !          5404: /a*/i
        !          5405:     
        !          5406: 
        !          5407: /([abc])*d/i
        !          5408:     ABBBCD
        !          5409:  0: ABBBCD
        !          5410: 
        !          5411: /([abc])*bcd/i
        !          5412:     ABCD
        !          5413:  0: ABCD
        !          5414: 
        !          5415: /a|b|c|d|e/i
        !          5416:     E
        !          5417:  0: E
        !          5418: 
        !          5419: /(a|b|c|d|e)f/i
        !          5420:     EF
        !          5421:  0: EF
        !          5422: 
        !          5423: /abcd*efg/i
        !          5424:     ABCDEFG
        !          5425:  0: ABCDEFG
        !          5426: 
        !          5427: /ab*/i
        !          5428:     XABYABBBZ
        !          5429:  0: AB
        !          5430:  1: A
        !          5431:     XAYABBBZ
        !          5432:  0: A
        !          5433: 
        !          5434: /(ab|cd)e/i
        !          5435:     ABCDE
        !          5436:  0: CDE
        !          5437: 
        !          5438: /[abhgefdc]ij/i
        !          5439:     HIJ
        !          5440:  0: HIJ
        !          5441: 
        !          5442: /^(ab|cd)e/i
        !          5443:     ABCDE
        !          5444: No match
        !          5445: 
        !          5446: /(abc|)ef/i
        !          5447:     ABCDEF
        !          5448:  0: EF
        !          5449: 
        !          5450: /(a|b)c*d/i
        !          5451:     ABCD
        !          5452:  0: BCD
        !          5453: 
        !          5454: /(ab|ab*)bc/i
        !          5455:     ABC
        !          5456:  0: ABC
        !          5457: 
        !          5458: /a([bc]*)c*/i
        !          5459:     ABC
        !          5460:  0: ABC
        !          5461:  1: AB
        !          5462:  2: A
        !          5463: 
        !          5464: /a([bc]*)(c*d)/i
        !          5465:     ABCD
        !          5466:  0: ABCD
        !          5467: 
        !          5468: /a([bc]+)(c*d)/i
        !          5469:     ABCD
        !          5470:  0: ABCD
        !          5471: 
        !          5472: /a([bc]*)(c+d)/i
        !          5473:     ABCD
        !          5474:  0: ABCD
        !          5475: 
        !          5476: /a[bcd]*dcdcde/i
        !          5477:     ADCDCDE
        !          5478:  0: ADCDCDE
        !          5479: 
        !          5480: /a[bcd]+dcdcde/i
        !          5481: 
        !          5482: /(ab|a)b*c/i
        !          5483:     ABC
        !          5484:  0: ABC
        !          5485: 
        !          5486: /((a)(b)c)(d)/i
        !          5487:     ABCD
        !          5488:  0: ABCD
        !          5489: 
        !          5490: /[a-zA-Z_][a-zA-Z0-9_]*/i
        !          5491:     ALPHA
        !          5492:  0: ALPHA
        !          5493:  1: ALPH
        !          5494:  2: ALP
        !          5495:  3: AL
        !          5496:  4: A
        !          5497: 
        !          5498: /^a(bc+|b[eh])g|.h$/i
        !          5499:     ABH
        !          5500:  0: BH
        !          5501: 
        !          5502: /(bc+d$|ef*g.|h?i(j|k))/i
        !          5503:     EFFGZ
        !          5504:  0: EFFGZ
        !          5505:     IJ
        !          5506:  0: IJ
        !          5507:     REFFGZ
        !          5508:  0: EFFGZ
        !          5509:     *** Failers
        !          5510: No match
        !          5511:     ADCDCDE
        !          5512: No match
        !          5513:     EFFG
        !          5514: No match
        !          5515:     BCDD
        !          5516: No match
        !          5517: 
        !          5518: /((((((((((a))))))))))/i
        !          5519:     A
        !          5520:  0: A
        !          5521: 
        !          5522: /(((((((((a)))))))))/i
        !          5523:     A
        !          5524:  0: A
        !          5525: 
        !          5526: /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))/i
        !          5527:     A
        !          5528:  0: A
        !          5529: 
        !          5530: /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/i
        !          5531:     C
        !          5532:  0: C
        !          5533: 
        !          5534: /multiple words of text/i
        !          5535:     *** Failers
        !          5536: No match
        !          5537:     AA
        !          5538: No match
        !          5539:     UH-UH
        !          5540: No match
        !          5541: 
        !          5542: /multiple words/i
        !          5543:     MULTIPLE WORDS, YEAH
        !          5544:  0: MULTIPLE WORDS
        !          5545: 
        !          5546: /(.*)c(.*)/i
        !          5547:     ABCDE
        !          5548:  0: ABCDE
        !          5549:  1: ABCD
        !          5550:  2: ABC
        !          5551: 
        !          5552: /\((.*), (.*)\)/i
        !          5553:     (A, B)
        !          5554:  0: (A, B)
        !          5555: 
        !          5556: /[k]/i
        !          5557: 
        !          5558: /abcd/i
        !          5559:     ABCD
        !          5560:  0: ABCD
        !          5561: 
        !          5562: /a(bc)d/i
        !          5563:     ABCD
        !          5564:  0: ABCD
        !          5565: 
        !          5566: /a[-]?c/i
        !          5567:     AC
        !          5568:  0: AC
        !          5569: 
        !          5570: /a(?!b)./
        !          5571:     abad
        !          5572:  0: ad
        !          5573: 
        !          5574: /a(?=d)./
        !          5575:     abad
        !          5576:  0: ad
        !          5577: 
        !          5578: /a(?=c|d)./
        !          5579:     abad
        !          5580:  0: ad
        !          5581: 
        !          5582: /a(?:b|c|d)(.)/
        !          5583:     ace
        !          5584:  0: ace
        !          5585: 
        !          5586: /a(?:b|c|d)*(.)/
        !          5587:     ace
        !          5588:  0: ace
        !          5589:  1: ac
        !          5590: 
        !          5591: /a(?:b|c|d)+?(.)/
        !          5592:     ace
        !          5593:  0: ace
        !          5594:     acdbcdbe
        !          5595:  0: acdbcdbe
        !          5596:  1: acdbcdb
        !          5597:  2: acdbcd
        !          5598:  3: acdbc
        !          5599:  4: acdb
        !          5600:  5: acd
        !          5601: 
        !          5602: /a(?:b|c|d)+(.)/
        !          5603:     acdbcdbe
        !          5604:  0: acdbcdbe
        !          5605:  1: acdbcdb
        !          5606:  2: acdbcd
        !          5607:  3: acdbc
        !          5608:  4: acdb
        !          5609:  5: acd
        !          5610: 
        !          5611: /a(?:b|c|d){2}(.)/
        !          5612:     acdbcdbe
        !          5613:  0: acdb
        !          5614: 
        !          5615: /a(?:b|c|d){4,5}(.)/
        !          5616:     acdbcdbe
        !          5617:  0: acdbcdb
        !          5618:  1: acdbcd
        !          5619: 
        !          5620: /a(?:b|c|d){4,5}?(.)/
        !          5621:     acdbcdbe
        !          5622:  0: acdbcdb
        !          5623:  1: acdbcd
        !          5624: 
        !          5625: /((foo)|(bar))*/
        !          5626:     foobar
        !          5627:  0: foobar
        !          5628:  1: foo
        !          5629:  2: 
        !          5630: 
        !          5631: /a(?:b|c|d){6,7}(.)/
        !          5632:     acdbcdbe
        !          5633:  0: acdbcdbe
        !          5634: 
        !          5635: /a(?:b|c|d){6,7}?(.)/
        !          5636:     acdbcdbe
        !          5637:  0: acdbcdbe
        !          5638: 
        !          5639: /a(?:b|c|d){5,6}(.)/
        !          5640:     acdbcdbe
        !          5641:  0: acdbcdbe
        !          5642:  1: acdbcdb
        !          5643: 
        !          5644: /a(?:b|c|d){5,6}?(.)/
        !          5645:     acdbcdbe
        !          5646:  0: acdbcdbe
        !          5647:  1: acdbcdb
        !          5648: 
        !          5649: /a(?:b|c|d){5,7}(.)/
        !          5650:     acdbcdbe
        !          5651:  0: acdbcdbe
        !          5652:  1: acdbcdb
        !          5653: 
        !          5654: /a(?:b|c|d){5,7}?(.)/
        !          5655:     acdbcdbe
        !          5656:  0: acdbcdbe
        !          5657:  1: acdbcdb
        !          5658: 
        !          5659: /a(?:b|(c|e){1,2}?|d)+?(.)/
        !          5660:     ace
        !          5661:  0: ace
        !          5662: 
        !          5663: /^(.+)?B/
        !          5664:     AB
        !          5665:  0: AB
        !          5666: 
        !          5667: /^([^a-z])|(\^)$/
        !          5668:     .
        !          5669:  0: .
        !          5670: 
        !          5671: /^[<>]&/
        !          5672:     <&OUT
        !          5673:  0: <&
        !          5674: 
        !          5675: /(?:(f)(o)(o)|(b)(a)(r))*/
        !          5676:     foobar
        !          5677:  0: foobar
        !          5678:  1: foo
        !          5679:  2: 
        !          5680: 
        !          5681: /(?<=a)b/
        !          5682:     ab
        !          5683:  0: b
        !          5684:     *** Failers
        !          5685: No match
        !          5686:     cb
        !          5687: No match
        !          5688:     b
        !          5689: No match
        !          5690: 
        !          5691: /(?<!c)b/
        !          5692:     ab
        !          5693:  0: b
        !          5694:     b
        !          5695:  0: b
        !          5696:     b
        !          5697:  0: b
        !          5698: 
        !          5699: /(?:..)*a/
        !          5700:     aba
        !          5701:  0: aba
        !          5702:  1: a
        !          5703: 
        !          5704: /(?:..)*?a/
        !          5705:     aba
        !          5706:  0: aba
        !          5707:  1: a
        !          5708: 
        !          5709: /^(){3,5}/
        !          5710:     abc
        !          5711:  0: 
        !          5712: 
        !          5713: /^(a+)*ax/
        !          5714:     aax
        !          5715:  0: aax
        !          5716: 
        !          5717: /^((a|b)+)*ax/
        !          5718:     aax
        !          5719:  0: aax
        !          5720: 
        !          5721: /^((a|bc)+)*ax/
        !          5722:     aax
        !          5723:  0: aax
        !          5724: 
        !          5725: /(a|x)*ab/
        !          5726:     cab
        !          5727:  0: ab
        !          5728: 
        !          5729: /(a)*ab/
        !          5730:     cab
        !          5731:  0: ab
        !          5732: 
        !          5733: /(?:(?i)a)b/
        !          5734:     ab
        !          5735:  0: ab
        !          5736: 
        !          5737: /((?i)a)b/
        !          5738:     ab
        !          5739:  0: ab
        !          5740: 
        !          5741: /(?:(?i)a)b/
        !          5742:     Ab
        !          5743:  0: Ab
        !          5744: 
        !          5745: /((?i)a)b/
        !          5746:     Ab
        !          5747:  0: Ab
        !          5748: 
        !          5749: /(?:(?i)a)b/
        !          5750:     *** Failers
        !          5751: No match
        !          5752:     cb
        !          5753: No match
        !          5754:     aB
        !          5755: No match
        !          5756: 
        !          5757: /((?i)a)b/
        !          5758: 
        !          5759: /(?i:a)b/
        !          5760:     ab
        !          5761:  0: ab
        !          5762: 
        !          5763: /((?i:a))b/
        !          5764:     ab
        !          5765:  0: ab
        !          5766: 
        !          5767: /(?i:a)b/
        !          5768:     Ab
        !          5769:  0: Ab
        !          5770: 
        !          5771: /((?i:a))b/
        !          5772:     Ab
        !          5773:  0: Ab
        !          5774: 
        !          5775: /(?i:a)b/
        !          5776:     *** Failers
        !          5777: No match
        !          5778:     aB
        !          5779: No match
        !          5780:     aB
        !          5781: No match
        !          5782: 
        !          5783: /((?i:a))b/
        !          5784: 
        !          5785: /(?:(?-i)a)b/i
        !          5786:     ab
        !          5787:  0: ab
        !          5788: 
        !          5789: /((?-i)a)b/i
        !          5790:     ab
        !          5791:  0: ab
        !          5792: 
        !          5793: /(?:(?-i)a)b/i
        !          5794:     aB
        !          5795:  0: aB
        !          5796: 
        !          5797: /((?-i)a)b/i
        !          5798:     aB
        !          5799:  0: aB
        !          5800: 
        !          5801: /(?:(?-i)a)b/i
        !          5802:     *** Failers
        !          5803: No match
        !          5804:     aB
        !          5805:  0: aB
        !          5806:     Ab
        !          5807: No match
        !          5808: 
        !          5809: /((?-i)a)b/i
        !          5810: 
        !          5811: /(?:(?-i)a)b/i
        !          5812:     aB
        !          5813:  0: aB
        !          5814: 
        !          5815: /((?-i)a)b/i
        !          5816:     aB
        !          5817:  0: aB
        !          5818: 
        !          5819: /(?:(?-i)a)b/i
        !          5820:     *** Failers
        !          5821: No match
        !          5822:     Ab
        !          5823: No match
        !          5824:     AB
        !          5825: No match
        !          5826: 
        !          5827: /((?-i)a)b/i
        !          5828: 
        !          5829: /(?-i:a)b/i
        !          5830:     ab
        !          5831:  0: ab
        !          5832: 
        !          5833: /((?-i:a))b/i
        !          5834:     ab
        !          5835:  0: ab
        !          5836: 
        !          5837: /(?-i:a)b/i
        !          5838:     aB
        !          5839:  0: aB
        !          5840: 
        !          5841: /((?-i:a))b/i
        !          5842:     aB
        !          5843:  0: aB
        !          5844: 
        !          5845: /(?-i:a)b/i
        !          5846:     *** Failers
        !          5847: No match
        !          5848:     AB
        !          5849: No match
        !          5850:     Ab
        !          5851: No match
        !          5852: 
        !          5853: /((?-i:a))b/i
        !          5854: 
        !          5855: /(?-i:a)b/i
        !          5856:     aB
        !          5857:  0: aB
        !          5858: 
        !          5859: /((?-i:a))b/i
        !          5860:     aB
        !          5861:  0: aB
        !          5862: 
        !          5863: /(?-i:a)b/i
        !          5864:     *** Failers
        !          5865: No match
        !          5866:     Ab
        !          5867: No match
        !          5868:     AB
        !          5869: No match
        !          5870: 
        !          5871: /((?-i:a))b/i
        !          5872: 
        !          5873: /((?-i:a.))b/i
        !          5874:     *** Failers
        !          5875: No match
        !          5876:     AB
        !          5877: No match
        !          5878:     a\nB
        !          5879: No match
        !          5880: 
        !          5881: /((?s-i:a.))b/i
        !          5882:     a\nB
        !          5883:  0: a\x0aB
        !          5884: 
        !          5885: /(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))/
        !          5886:     cabbbb
        !          5887:  0: cabbbb
        !          5888: 
        !          5889: /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/
        !          5890:     caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
        !          5891:  0: caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
        !          5892: 
        !          5893: /foo\w*\d{4}baz/
        !          5894:     foobar1234baz
        !          5895:  0: foobar1234baz
        !          5896: 
        !          5897: /x(~~)*(?:(?:F)?)?/
        !          5898:     x~~
        !          5899:  0: x~~
        !          5900:  1: x
        !          5901: 
        !          5902: /^a(?#xxx){3}c/
        !          5903:     aaac
        !          5904:  0: aaac
        !          5905: 
        !          5906: /^a (?#xxx) (?#yyy) {3}c/x
        !          5907:     aaac
        !          5908:  0: aaac
        !          5909: 
        !          5910: /(?<![cd])b/
        !          5911:     *** Failers
        !          5912: No match
        !          5913:     B\nB
        !          5914: No match
        !          5915:     dbcb
        !          5916: No match
        !          5917: 
        !          5918: /(?<![cd])[ab]/
        !          5919:     dbaacb
        !          5920:  0: a
        !          5921: 
        !          5922: /(?<!(c|d))b/
        !          5923: 
        !          5924: /(?<!(c|d))[ab]/
        !          5925:     dbaacb
        !          5926:  0: a
        !          5927: 
        !          5928: /(?<!cd)[ab]/
        !          5929:     cdaccb
        !          5930:  0: b
        !          5931: 
        !          5932: /^(?:a?b?)*$/
        !          5933:     *** Failers
        !          5934: No match
        !          5935:     dbcb
        !          5936: No match
        !          5937:     a--
        !          5938: No match
        !          5939: 
        !          5940: /((?s)^a(.))((?m)^b$)/
        !          5941:     a\nb\nc\n
        !          5942:  0: a\x0ab
        !          5943: 
        !          5944: /((?m)^b$)/
        !          5945:     a\nb\nc\n
        !          5946:  0: b
        !          5947: 
        !          5948: /(?m)^b/
        !          5949:     a\nb\n
        !          5950:  0: b
        !          5951: 
        !          5952: /(?m)^(b)/
        !          5953:     a\nb\n
        !          5954:  0: b
        !          5955: 
        !          5956: /((?m)^b)/
        !          5957:     a\nb\n
        !          5958:  0: b
        !          5959: 
        !          5960: /\n((?m)^b)/
        !          5961:     a\nb\n
        !          5962:  0: \x0ab
        !          5963: 
        !          5964: /((?s).)c(?!.)/
        !          5965:     a\nb\nc\n
        !          5966:  0: \x0ac
        !          5967:     a\nb\nc\n
        !          5968:  0: \x0ac
        !          5969: 
        !          5970: /((?s)b.)c(?!.)/
        !          5971:     a\nb\nc\n
        !          5972:  0: b\x0ac
        !          5973:     a\nb\nc\n
        !          5974:  0: b\x0ac
        !          5975: 
        !          5976: /^b/
        !          5977: 
        !          5978: /()^b/
        !          5979:     *** Failers
        !          5980: No match
        !          5981:     a\nb\nc\n
        !          5982: No match
        !          5983:     a\nb\nc\n
        !          5984: No match
        !          5985: 
        !          5986: /((?m)^b)/
        !          5987:     a\nb\nc\n
        !          5988:  0: b
        !          5989: 
        !          5990: /(?(?!a)a|b)/
        !          5991: 
        !          5992: /(?(?!a)b|a)/
        !          5993:     a
        !          5994:  0: a
        !          5995: 
        !          5996: /(?(?=a)b|a)/
        !          5997:     *** Failers
        !          5998: No match
        !          5999:     a
        !          6000: No match
        !          6001:     a
        !          6002: No match
        !          6003: 
        !          6004: /(?(?=a)a|b)/
        !          6005:     a
        !          6006:  0: a
        !          6007: 
        !          6008: /(\w+:)+/
        !          6009:     one:
        !          6010:  0: one:
        !          6011: 
        !          6012: /$(?<=^(a))/
        !          6013:     a
        !          6014:  0: 
        !          6015: 
        !          6016: /([\w:]+::)?(\w+)$/
        !          6017:     abcd
        !          6018:  0: abcd
        !          6019:     xy:z:::abcd
        !          6020:  0: xy:z:::abcd
        !          6021: 
        !          6022: /^[^bcd]*(c+)/
        !          6023:     aexycd
        !          6024:  0: aexyc
        !          6025: 
        !          6026: /(a*)b+/
        !          6027:     caab
        !          6028:  0: aab
        !          6029: 
        !          6030: /([\w:]+::)?(\w+)$/
        !          6031:     abcd
        !          6032:  0: abcd
        !          6033:     xy:z:::abcd
        !          6034:  0: xy:z:::abcd
        !          6035:     *** Failers
        !          6036:  0: Failers
        !          6037:     abcd:
        !          6038: No match
        !          6039:     abcd:
        !          6040: No match
        !          6041: 
        !          6042: /^[^bcd]*(c+)/
        !          6043:     aexycd
        !          6044:  0: aexyc
        !          6045: 
        !          6046: /(>a+)ab/
        !          6047: 
        !          6048: /(?>a+)b/
        !          6049:     aaab
        !          6050:  0: aaab
        !          6051: 
        !          6052: /([[:]+)/
        !          6053:     a:[b]:
        !          6054:  0: :[
        !          6055:  1: :
        !          6056: 
        !          6057: /([[=]+)/
        !          6058:     a=[b]=
        !          6059:  0: =[
        !          6060:  1: =
        !          6061: 
        !          6062: /([[.]+)/
        !          6063:     a.[b].
        !          6064:  0: .[
        !          6065:  1: .
        !          6066: 
        !          6067: /((?>a+)b)/
        !          6068:     aaab
        !          6069:  0: aaab
        !          6070: 
        !          6071: /(?>(a+))b/
        !          6072:     aaab
        !          6073:  0: aaab
        !          6074: 
        !          6075: /((?>[^()]+)|\([^()]*\))+/
        !          6076:     ((abc(ade)ufh()()x
        !          6077:  0: abc(ade)ufh()()x
        !          6078:  1: abc(ade)ufh()()
        !          6079:  2: abc(ade)ufh()
        !          6080:  3: abc(ade)ufh
        !          6081:  4: abc(ade)
        !          6082:  5: abc
        !          6083: 
        !          6084: /a\Z/
        !          6085:     *** Failers
        !          6086: No match
        !          6087:     aaab
        !          6088: No match
        !          6089:     a\nb\n
        !          6090: No match
        !          6091: 
        !          6092: /b\Z/
        !          6093:     a\nb\n
        !          6094:  0: b
        !          6095: 
        !          6096: /b\z/
        !          6097: 
        !          6098: /b\Z/
        !          6099:     a\nb
        !          6100:  0: b
        !          6101: 
        !          6102: /b\z/
        !          6103:     a\nb
        !          6104:  0: b
        !          6105:     *** Failers
        !          6106: No match
        !          6107:     
        !          6108: /(?>.*)(?<=(abcd|wxyz))/
        !          6109:     alphabetabcd
        !          6110:  0: alphabetabcd
        !          6111:     endingwxyz
        !          6112:  0: endingwxyz
        !          6113:     *** Failers
        !          6114: No match
        !          6115:     a rather long string that doesn't end with one of them
        !          6116: No match
        !          6117: 
        !          6118: /word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword/
        !          6119:     word cat dog elephant mussel cow horse canary baboon snake shark otherword
        !          6120:  0: word cat dog elephant mussel cow horse canary baboon snake shark otherword
        !          6121:     word cat dog elephant mussel cow horse canary baboon snake shark
        !          6122: No match
        !          6123:   
        !          6124: /word (?>[a-zA-Z0-9]+ ){0,30}otherword/
        !          6125:     word cat dog elephant mussel cow horse canary baboon snake shark the quick brown fox and the lazy dog and several other words getting close to thirty by now I hope
        !          6126: No match
        !          6127: 
        !          6128: /(?<=\d{3}(?!999))foo/
        !          6129:     999foo
        !          6130:  0: foo
        !          6131:     123999foo 
        !          6132:  0: foo
        !          6133:     *** Failers
        !          6134: No match
        !          6135:     123abcfoo
        !          6136: No match
        !          6137:     
        !          6138: /(?<=(?!...999)\d{3})foo/
        !          6139:     999foo
        !          6140:  0: foo
        !          6141:     123999foo 
        !          6142:  0: foo
        !          6143:     *** Failers
        !          6144: No match
        !          6145:     123abcfoo
        !          6146: No match
        !          6147: 
        !          6148: /(?<=\d{3}(?!999)...)foo/
        !          6149:     123abcfoo
        !          6150:  0: foo
        !          6151:     123456foo 
        !          6152:  0: foo
        !          6153:     *** Failers
        !          6154: No match
        !          6155:     123999foo  
        !          6156: No match
        !          6157:     
        !          6158: /(?<=\d{3}...)(?<!999)foo/
        !          6159:     123abcfoo   
        !          6160:  0: foo
        !          6161:     123456foo 
        !          6162:  0: foo
        !          6163:     *** Failers
        !          6164: No match
        !          6165:     123999foo  
        !          6166: No match
        !          6167: 
        !          6168: /((Z)+|A)*/
        !          6169:     ZABCDEFG
        !          6170:  0: ZA
        !          6171:  1: Z
        !          6172:  2: 
        !          6173: 
        !          6174: /(Z()|A)*/
        !          6175:     ZABCDEFG
        !          6176:  0: ZA
        !          6177:  1: Z
        !          6178:  2: 
        !          6179: 
        !          6180: /(Z(())|A)*/
        !          6181:     ZABCDEFG
        !          6182:  0: ZA
        !          6183:  1: Z
        !          6184:  2: 
        !          6185: 
        !          6186: /((?>Z)+|A)*/
        !          6187:     ZABCDEFG
        !          6188:  0: ZA
        !          6189:  1: Z
        !          6190:  2: 
        !          6191: 
        !          6192: /((?>)+|A)*/
        !          6193:     ZABCDEFG
        !          6194:  0: 
        !          6195: 
        !          6196: /a*/g
        !          6197:     abbab
        !          6198:  0: a
        !          6199:  1: 
        !          6200:  0: 
        !          6201:  0: 
        !          6202:  0: a
        !          6203:  1: 
        !          6204:  0: 
        !          6205:  0: 
        !          6206: 
        !          6207: /^[a-\d]/
        !          6208:     abcde
        !          6209:  0: a
        !          6210:     -things
        !          6211:  0: -
        !          6212:     0digit
        !          6213:  0: 0
        !          6214:     *** Failers
        !          6215: No match
        !          6216:     bcdef    
        !          6217: No match
        !          6218: 
        !          6219: /^[\d-a]/
        !          6220:     abcde
        !          6221:  0: a
        !          6222:     -things
        !          6223:  0: -
        !          6224:     0digit
        !          6225:  0: 0
        !          6226:     *** Failers
        !          6227: No match
        !          6228:     bcdef    
        !          6229: No match
        !          6230:     
        !          6231: /[[:space:]]+/
        !          6232:     > \x09\x0a\x0c\x0d\x0b<
        !          6233:  0:  \x09\x0a\x0c\x0d\x0b
        !          6234:  1:  \x09\x0a\x0c\x0d
        !          6235:  2:  \x09\x0a\x0c
        !          6236:  3:  \x09\x0a
        !          6237:  4:  \x09
        !          6238:  5:  
        !          6239:      
        !          6240: /[[:blank:]]+/
        !          6241:     > \x09\x0a\x0c\x0d\x0b<
        !          6242:  0:  \x09
        !          6243:  1:  
        !          6244:      
        !          6245: /[\s]+/
        !          6246:     > \x09\x0a\x0c\x0d\x0b<
        !          6247:  0:  \x09\x0a\x0c\x0d
        !          6248:  1:  \x09\x0a\x0c
        !          6249:  2:  \x09\x0a
        !          6250:  3:  \x09
        !          6251:  4:  
        !          6252:      
        !          6253: /\s+/
        !          6254:     > \x09\x0a\x0c\x0d\x0b<
        !          6255:  0:  \x09\x0a\x0c\x0d
        !          6256:  1:  \x09\x0a\x0c
        !          6257:  2:  \x09\x0a
        !          6258:  3:  \x09
        !          6259:  4:  
        !          6260:      
        !          6261: /ab/x
        !          6262:     ab
        !          6263: No match
        !          6264: 
        !          6265: /(?!\A)x/m
        !          6266:   a\nxb\n
        !          6267:  0: x
        !          6268: 
        !          6269: /(?!^)x/m
        !          6270:   a\nxb\n
        !          6271: No match
        !          6272: 
        !          6273: /abc\Qabc\Eabc/
        !          6274:     abcabcabc
        !          6275:  0: abcabcabc
        !          6276:     
        !          6277: /abc\Q(*+|\Eabc/
        !          6278:     abc(*+|abc 
        !          6279:  0: abc(*+|abc
        !          6280: 
        !          6281: /   abc\Q abc\Eabc/x
        !          6282:     abc abcabc
        !          6283:  0: abc abcabc
        !          6284:     *** Failers
        !          6285: No match
        !          6286:     abcabcabc  
        !          6287: No match
        !          6288:     
        !          6289: /abc#comment
        !          6290:     \Q#not comment
        !          6291:     literal\E/x
        !          6292:     abc#not comment\n    literal     
        !          6293:  0: abc#not comment\x0a    literal
        !          6294: 
        !          6295: /abc#comment
        !          6296:     \Q#not comment
        !          6297:     literal/x
        !          6298:     abc#not comment\n    literal     
        !          6299:  0: abc#not comment\x0a    literal
        !          6300: 
        !          6301: /abc#comment
        !          6302:     \Q#not comment
        !          6303:     literal\E #more comment
        !          6304:     /x
        !          6305:     abc#not comment\n    literal     
        !          6306:  0: abc#not comment\x0a    literal
        !          6307: 
        !          6308: /abc#comment
        !          6309:     \Q#not comment
        !          6310:     literal\E #more comment/x
        !          6311:     abc#not comment\n    literal     
        !          6312:  0: abc#not comment\x0a    literal
        !          6313: 
        !          6314: /\Qabc\$xyz\E/
        !          6315:     abc\\\$xyz
        !          6316:  0: abc\$xyz
        !          6317: 
        !          6318: /\Qabc\E\$\Qxyz\E/
        !          6319:     abc\$xyz
        !          6320:  0: abc$xyz
        !          6321: 
        !          6322: /\Gabc/
        !          6323:     abc
        !          6324:  0: abc
        !          6325:     *** Failers
        !          6326: No match
        !          6327:     xyzabc  
        !          6328: No match
        !          6329: 
        !          6330: /\Gabc./g
        !          6331:     abc1abc2xyzabc3
        !          6332:  0: abc1
        !          6333:  0: abc2
        !          6334: 
        !          6335: /abc./g
        !          6336:     abc1abc2xyzabc3 
        !          6337:  0: abc1
        !          6338:  0: abc2
        !          6339:  0: abc3
        !          6340: 
        !          6341: /a(?x: b c )d/
        !          6342:     XabcdY
        !          6343:  0: abcd
        !          6344:     *** Failers 
        !          6345: No match
        !          6346:     Xa b c d Y 
        !          6347: No match
        !          6348: 
        !          6349: /((?x)x y z | a b c)/
        !          6350:     XabcY
        !          6351:  0: abc
        !          6352:     AxyzB 
        !          6353:  0: xyz
        !          6354: 
        !          6355: /(?i)AB(?-i)C/
        !          6356:     XabCY
        !          6357:  0: abC
        !          6358:     *** Failers
        !          6359: No match
        !          6360:     XabcY  
        !          6361: No match
        !          6362: 
        !          6363: /((?i)AB(?-i)C|D)E/
        !          6364:     abCE
        !          6365:  0: abCE
        !          6366:     DE
        !          6367:  0: DE
        !          6368:     *** Failers
        !          6369: No match
        !          6370:     abcE
        !          6371: No match
        !          6372:     abCe  
        !          6373: No match
        !          6374:     dE
        !          6375: No match
        !          6376:     De    
        !          6377: No match
        !          6378: 
        !          6379: /[z\Qa-d]\E]/
        !          6380:     z
        !          6381:  0: z
        !          6382:     a
        !          6383:  0: a
        !          6384:     -
        !          6385:  0: -
        !          6386:     d
        !          6387:  0: d
        !          6388:     ] 
        !          6389:  0: ]
        !          6390:     *** Failers
        !          6391:  0: a
        !          6392:     b     
        !          6393: No match
        !          6394: 
        !          6395: /[\z\C]/
        !          6396:     z
        !          6397:  0: z
        !          6398:     C 
        !          6399:  0: C
        !          6400:     
        !          6401: /\M/
        !          6402:     M 
        !          6403:  0: M
        !          6404:     
        !          6405: /(a+)*b/
        !          6406:     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
        !          6407: No match
        !          6408:     
        !          6409: /(?i)reg(?:ul(?:[aä]|ae)r|ex)/
        !          6410:     REGular
        !          6411:  0: REGular
        !          6412:     regulaer
        !          6413:  0: regulaer
        !          6414:     Regex  
        !          6415:  0: Regex
        !          6416:     regulär 
        !          6417:  0: regul\xe4r
        !          6418: 
        !          6419: /Åæåä[à-ÿÀ-ß]+/
        !          6420:     Åæåäà
        !          6421:  0: \xc5\xe6\xe5\xe4\xe0
        !          6422:     Åæåäÿ
        !          6423:  0: \xc5\xe6\xe5\xe4\xff
        !          6424:     ÅæåäÀ
        !          6425:  0: \xc5\xe6\xe5\xe4\xc0
        !          6426:     Åæåäß
        !          6427:  0: \xc5\xe6\xe5\xe4\xdf
        !          6428: 
        !          6429: /(?<=Z)X./
        !          6430:     \x84XAZXB
        !          6431:  0: XB
        !          6432: 
        !          6433: /^(?(2)a|(1)(2))+$/
        !          6434:     123a
        !          6435: Error -17 (backreference condition or recursion test not supported for DFA matching)
        !          6436: 
        !          6437: /(?<=a|bbbb)c/
        !          6438:     ac
        !          6439:  0: c
        !          6440:     bbbbc
        !          6441:  0: c
        !          6442: 
        !          6443: /abc/SS>testsavedregex
        !          6444: Compiled pattern written to testsavedregex
        !          6445: <testsavedregex
        !          6446: Compiled pattern loaded from testsavedregex
        !          6447: No study data
        !          6448:     abc
        !          6449:  0: abc
        !          6450:     *** Failers
        !          6451: No match
        !          6452:     bca
        !          6453: No match
        !          6454:     
        !          6455: /abc/FSS>testsavedregex
        !          6456: Compiled pattern written to testsavedregex
        !          6457: <testsavedregex
        !          6458: Compiled pattern (byte-inverted) loaded from testsavedregex
        !          6459: No study data
        !          6460:     abc
        !          6461:  0: abc
        !          6462:     *** Failers
        !          6463: No match
        !          6464:     bca
        !          6465: No match
        !          6466: 
        !          6467: /(a|b)/S>testsavedregex
        !          6468: Compiled pattern written to testsavedregex
        !          6469: Study data written to testsavedregex
        !          6470: <testsavedregex
        !          6471: Compiled pattern loaded from testsavedregex
        !          6472: Study data loaded from testsavedregex
        !          6473:     abc
        !          6474:  0: a
        !          6475:     *** Failers
        !          6476:  0: a
        !          6477:     def  
        !          6478: No match
        !          6479:     
        !          6480: /(a|b)/SF>testsavedregex
        !          6481: Compiled pattern written to testsavedregex
        !          6482: Study data written to testsavedregex
        !          6483: <testsavedregex
        !          6484: Compiled pattern (byte-inverted) loaded from testsavedregex
        !          6485: Study data loaded from testsavedregex
        !          6486:     abc
        !          6487:  0: a
        !          6488:     *** Failers
        !          6489:  0: a
        !          6490:     def  
        !          6491: No match
        !          6492:     
        !          6493: /line\nbreak/
        !          6494:     this is a line\nbreak
        !          6495:  0: line\x0abreak
        !          6496:     line one\nthis is a line\nbreak in the second line 
        !          6497:  0: line\x0abreak
        !          6498: 
        !          6499: /line\nbreak/f
        !          6500:     this is a line\nbreak
        !          6501:  0: line\x0abreak
        !          6502:     ** Failers 
        !          6503: No match
        !          6504:     line one\nthis is a line\nbreak in the second line 
        !          6505: No match
        !          6506: 
        !          6507: /line\nbreak/mf
        !          6508:     this is a line\nbreak
        !          6509:  0: line\x0abreak
        !          6510:     ** Failers 
        !          6511: No match
        !          6512:     line one\nthis is a line\nbreak in the second line 
        !          6513: No match
        !          6514: 
        !          6515: /1234/
        !          6516:     123\P
        !          6517: Partial match: 123
        !          6518:     a4\P\R
        !          6519: No match
        !          6520: 
        !          6521: /1234/
        !          6522:     123\P
        !          6523: Partial match: 123
        !          6524:     4\P\R
        !          6525:  0: 4
        !          6526: 
        !          6527: /^/mg
        !          6528:     a\nb\nc\n
        !          6529:  0: 
        !          6530:  0: 
        !          6531:  0: 
        !          6532:     \ 
        !          6533:  0: 
        !          6534:     
        !          6535: /(?<=C\n)^/mg
        !          6536:     A\nC\nC\n 
        !          6537:  0: 
        !          6538: 
        !          6539: /(?s)A?B/
        !          6540:     AB
        !          6541:  0: AB
        !          6542:     aB  
        !          6543:  0: B
        !          6544: 
        !          6545: /(?s)A*B/
        !          6546:     AB
        !          6547:  0: AB
        !          6548:     aB  
        !          6549:  0: B
        !          6550: 
        !          6551: /(?m)A?B/
        !          6552:     AB
        !          6553:  0: AB
        !          6554:     aB  
        !          6555:  0: B
        !          6556: 
        !          6557: /(?m)A*B/
        !          6558:     AB
        !          6559:  0: AB
        !          6560:     aB  
        !          6561:  0: B
        !          6562: 
        !          6563: /Content-Type\x3A[^\r\n]{6,}/
        !          6564:     Content-Type:xxxxxyyy 
        !          6565:  0: Content-Type:xxxxxyyy
        !          6566:  1: Content-Type:xxxxxyy
        !          6567:  2: Content-Type:xxxxxy
        !          6568: 
        !          6569: /Content-Type\x3A[^\r\n]{6,}z/
        !          6570:     Content-Type:xxxxxyyyz
        !          6571:  0: Content-Type:xxxxxyyyz
        !          6572: 
        !          6573: /Content-Type\x3A[^a]{6,}/
        !          6574:     Content-Type:xxxyyy 
        !          6575:  0: Content-Type:xxxyyy
        !          6576: 
        !          6577: /Content-Type\x3A[^a]{6,}z/
        !          6578:     Content-Type:xxxyyyz
        !          6579:  0: Content-Type:xxxyyyz
        !          6580: 
        !          6581: /^abc/m
        !          6582:     xyz\nabc
        !          6583:  0: abc
        !          6584:     xyz\nabc\<lf>
        !          6585:  0: abc
        !          6586:     xyz\r\nabc\<lf>
        !          6587:  0: abc
        !          6588:     xyz\rabc\<cr>
        !          6589:  0: abc
        !          6590:     xyz\r\nabc\<crlf>
        !          6591:  0: abc
        !          6592:     ** Failers 
        !          6593: No match
        !          6594:     xyz\nabc\<cr>
        !          6595: No match
        !          6596:     xyz\r\nabc\<cr>
        !          6597: No match
        !          6598:     xyz\nabc\<crlf>
        !          6599: No match
        !          6600:     xyz\rabc\<crlf>
        !          6601: No match
        !          6602:     xyz\rabc\<lf>
        !          6603: No match
        !          6604:     
        !          6605: /abc$/m<lf>
        !          6606:     xyzabc
        !          6607:  0: abc
        !          6608:     xyzabc\n 
        !          6609:  0: abc
        !          6610:     xyzabc\npqr 
        !          6611:  0: abc
        !          6612:     xyzabc\r\<cr> 
        !          6613:  0: abc
        !          6614:     xyzabc\rpqr\<cr> 
        !          6615:  0: abc
        !          6616:     xyzabc\r\n\<crlf> 
        !          6617:  0: abc
        !          6618:     xyzabc\r\npqr\<crlf> 
        !          6619:  0: abc
        !          6620:     ** Failers
        !          6621: No match
        !          6622:     xyzabc\r 
        !          6623: No match
        !          6624:     xyzabc\rpqr 
        !          6625: No match
        !          6626:     xyzabc\r\n 
        !          6627: No match
        !          6628:     xyzabc\r\npqr 
        !          6629: No match
        !          6630:     
        !          6631: /^abc/m<cr>
        !          6632:     xyz\rabcdef
        !          6633:  0: abc
        !          6634:     xyz\nabcdef\<lf>
        !          6635:  0: abc
        !          6636:     ** Failers  
        !          6637: No match
        !          6638:     xyz\nabcdef
        !          6639: No match
        !          6640:        
        !          6641: /^abc/m<lf>
        !          6642:     xyz\nabcdef
        !          6643:  0: abc
        !          6644:     xyz\rabcdef\<cr>
        !          6645:  0: abc
        !          6646:     ** Failers  
        !          6647: No match
        !          6648:     xyz\rabcdef
        !          6649: No match
        !          6650:        
        !          6651: /^abc/m<crlf>
        !          6652:     xyz\r\nabcdef
        !          6653:  0: abc
        !          6654:     xyz\rabcdef\<cr>
        !          6655:  0: abc
        !          6656:     ** Failers  
        !          6657: No match
        !          6658:     xyz\rabcdef
        !          6659: No match
        !          6660:     
        !          6661: /.*/<lf>
        !          6662:     abc\ndef
        !          6663:  0: abc
        !          6664:  1: ab
        !          6665:  2: a
        !          6666:  3: 
        !          6667:     abc\rdef
        !          6668:  0: abc\x0ddef
        !          6669:  1: abc\x0dde
        !          6670:  2: abc\x0dd
        !          6671:  3: abc\x0d
        !          6672:  4: abc
        !          6673:  5: ab
        !          6674:  6: a
        !          6675:  7: 
        !          6676:     abc\r\ndef
        !          6677:  0: abc\x0d
        !          6678:  1: abc
        !          6679:  2: ab
        !          6680:  3: a
        !          6681:  4: 
        !          6682:     \<cr>abc\ndef
        !          6683:  0: abc\x0adef
        !          6684:  1: abc\x0ade
        !          6685:  2: abc\x0ad
        !          6686:  3: abc\x0a
        !          6687:  4: abc
        !          6688:  5: ab
        !          6689:  6: a
        !          6690:  7: 
        !          6691:     \<cr>abc\rdef
        !          6692:  0: abc
        !          6693:  1: ab
        !          6694:  2: a
        !          6695:  3: 
        !          6696:     \<cr>abc\r\ndef
        !          6697:  0: abc
        !          6698:  1: ab
        !          6699:  2: a
        !          6700:  3: 
        !          6701:     \<crlf>abc\ndef
        !          6702:  0: abc\x0adef
        !          6703:  1: abc\x0ade
        !          6704:  2: abc\x0ad
        !          6705:  3: abc\x0a
        !          6706:  4: abc
        !          6707:  5: ab
        !          6708:  6: a
        !          6709:  7: 
        !          6710:     \<crlf>abc\rdef
        !          6711:  0: abc\x0ddef
        !          6712:  1: abc\x0dde
        !          6713:  2: abc\x0dd
        !          6714:  3: abc\x0d
        !          6715:  4: abc
        !          6716:  5: ab
        !          6717:  6: a
        !          6718:  7: 
        !          6719:     \<crlf>abc\r\ndef
        !          6720:  0: abc
        !          6721:  1: ab
        !          6722:  2: a
        !          6723:  3: 
        !          6724: 
        !          6725: /\w+(.)(.)?def/s
        !          6726:     abc\ndef
        !          6727:  0: abc\x0adef
        !          6728:     abc\rdef
        !          6729:  0: abc\x0ddef
        !          6730:     abc\r\ndef
        !          6731:  0: abc\x0d\x0adef
        !          6732: 
        !          6733: /^\w+=.*(\\\n.*)*/
        !          6734:     abc=xyz\\\npqr
        !          6735:  0: abc=xyz\\x0apqr
        !          6736:  1: abc=xyz\\x0apq
        !          6737:  2: abc=xyz\\x0ap
        !          6738:  3: abc=xyz\\x0a
        !          6739:  4: abc=xyz\
        !          6740:  5: abc=xyz
        !          6741:  6: abc=xy
        !          6742:  7: abc=x
        !          6743:  8: abc=
        !          6744: 
        !          6745: /^(a()*)*/
        !          6746:     aaaa
        !          6747:  0: aaaa
        !          6748:  1: aaa
        !          6749:  2: aa
        !          6750:  3: a
        !          6751:  4: 
        !          6752: 
        !          6753: /^(?:a(?:(?:))*)*/
        !          6754:     aaaa
        !          6755:  0: aaaa
        !          6756:  1: aaa
        !          6757:  2: aa
        !          6758:  3: a
        !          6759:  4: 
        !          6760: 
        !          6761: /^(a()+)+/
        !          6762:     aaaa
        !          6763:  0: aaaa
        !          6764:  1: aaa
        !          6765:  2: aa
        !          6766:  3: a
        !          6767: 
        !          6768: /^(?:a(?:(?:))+)+/
        !          6769:     aaaa
        !          6770:  0: aaaa
        !          6771:  1: aaa
        !          6772:  2: aa
        !          6773:  3: a
        !          6774: 
        !          6775: /(a|)*\d/
        !          6776:   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
        !          6777: No match
        !          6778:   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
        !          6779:  0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
        !          6780: 
        !          6781: /(?>a|)*\d/
        !          6782:   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
        !          6783: No match
        !          6784:   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
        !          6785:  0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
        !          6786: 
        !          6787: /(?:a|)*\d/
        !          6788:   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
        !          6789: No match
        !          6790:   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
        !          6791:  0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
        !          6792: 
        !          6793: /^a.b/<lf>
        !          6794:     a\rb
        !          6795:  0: a\x0db
        !          6796:     a\nb\<cr> 
        !          6797:  0: a\x0ab
        !          6798:     ** Failers
        !          6799: No match
        !          6800:     a\nb
        !          6801: No match
        !          6802:     a\nb\<any>
        !          6803: No match
        !          6804:     a\rb\<cr>   
        !          6805: No match
        !          6806:     a\rb\<any>   
        !          6807: No match
        !          6808: 
        !          6809: /^abc./mgx<any>
        !          6810:     abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
        !          6811:  0: abc1
        !          6812:  0: abc2
        !          6813:  0: abc3
        !          6814:  0: abc4
        !          6815:  0: abc5
        !          6816:  0: abc6
        !          6817:  0: abc7
        !          6818: 
        !          6819: /abc.$/mgx<any>
        !          6820:     abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9
        !          6821:  0: abc1
        !          6822:  0: abc2
        !          6823:  0: abc3
        !          6824:  0: abc4
        !          6825:  0: abc5
        !          6826:  0: abc6
        !          6827:  0: abc9
        !          6828: 
        !          6829: /^a\Rb/<bsr_unicode>
        !          6830:     a\nb
        !          6831:  0: a\x0ab
        !          6832:     a\rb
        !          6833:  0: a\x0db
        !          6834:     a\r\nb
        !          6835:  0: a\x0d\x0ab
        !          6836:     a\x0bb
        !          6837:  0: a\x0bb
        !          6838:     a\x0cb
        !          6839:  0: a\x0cb
        !          6840:     a\x85b   
        !          6841:  0: a\x85b
        !          6842:     ** Failers
        !          6843: No match
        !          6844:     a\n\rb    
        !          6845: No match
        !          6846: 
        !          6847: /^a\R*b/<bsr_unicode>
        !          6848:     ab
        !          6849:  0: ab
        !          6850:     a\nb
        !          6851:  0: a\x0ab
        !          6852:     a\rb
        !          6853:  0: a\x0db
        !          6854:     a\r\nb
        !          6855:  0: a\x0d\x0ab
        !          6856:     a\x0bb
        !          6857:  0: a\x0bb
        !          6858:     a\x0cb
        !          6859:  0: a\x0cb
        !          6860:     a\x85b   
        !          6861:  0: a\x85b
        !          6862:     a\n\rb    
        !          6863:  0: a\x0a\x0db
        !          6864:     a\n\r\x85\x0cb 
        !          6865:  0: a\x0a\x0d\x85\x0cb
        !          6866: 
        !          6867: /^a\R+b/<bsr_unicode>
        !          6868:     a\nb
        !          6869:  0: a\x0ab
        !          6870:     a\rb
        !          6871:  0: a\x0db
        !          6872:     a\r\nb
        !          6873:  0: a\x0d\x0ab
        !          6874:     a\x0bb
        !          6875:  0: a\x0bb
        !          6876:     a\x0cb
        !          6877:  0: a\x0cb
        !          6878:     a\x85b   
        !          6879:  0: a\x85b
        !          6880:     a\n\rb    
        !          6881:  0: a\x0a\x0db
        !          6882:     a\n\r\x85\x0cb 
        !          6883:  0: a\x0a\x0d\x85\x0cb
        !          6884:     ** Failers
        !          6885: No match
        !          6886:     ab  
        !          6887: No match
        !          6888:     
        !          6889: /^a\R{1,3}b/<bsr_unicode>
        !          6890:     a\nb
        !          6891:  0: a\x0ab
        !          6892:     a\n\rb
        !          6893:  0: a\x0a\x0db
        !          6894:     a\n\r\x85b
        !          6895:  0: a\x0a\x0d\x85b
        !          6896:     a\r\n\r\nb 
        !          6897:  0: a\x0d\x0a\x0d\x0ab
        !          6898:     a\r\n\r\n\r\nb 
        !          6899:  0: a\x0d\x0a\x0d\x0a\x0d\x0ab
        !          6900:     a\n\r\n\rb
        !          6901:  0: a\x0a\x0d\x0a\x0db
        !          6902:     a\n\n\r\nb 
        !          6903:  0: a\x0a\x0a\x0d\x0ab
        !          6904:     ** Failers
        !          6905: No match
        !          6906:     a\n\n\n\rb
        !          6907: No match
        !          6908:     a\r
        !          6909: No match
        !          6910: 
        !          6911: /^a[\R]b/<bsr_unicode>
        !          6912:     aRb
        !          6913:  0: aRb
        !          6914:     ** Failers
        !          6915: No match
        !          6916:     a\nb  
        !          6917: No match
        !          6918: 
        !          6919: /.+foo/
        !          6920:     afoo
        !          6921:  0: afoo
        !          6922:     ** Failers 
        !          6923: No match
        !          6924:     \r\nfoo 
        !          6925: No match
        !          6926:     \nfoo 
        !          6927: No match
        !          6928: 
        !          6929: /.+foo/<crlf>
        !          6930:     afoo
        !          6931:  0: afoo
        !          6932:     \nfoo 
        !          6933:  0: \x0afoo
        !          6934:     ** Failers 
        !          6935: No match
        !          6936:     \r\nfoo 
        !          6937: No match
        !          6938: 
        !          6939: /.+foo/<any>
        !          6940:     afoo
        !          6941:  0: afoo
        !          6942:     ** Failers 
        !          6943: No match
        !          6944:     \nfoo 
        !          6945: No match
        !          6946:     \r\nfoo 
        !          6947: No match
        !          6948: 
        !          6949: /.+foo/s
        !          6950:     afoo
        !          6951:  0: afoo
        !          6952:     \r\nfoo 
        !          6953:  0: \x0d\x0afoo
        !          6954:     \nfoo 
        !          6955:  0: \x0afoo
        !          6956: 
        !          6957: /^$/mg<any>
        !          6958:     abc\r\rxyz
        !          6959:  0: 
        !          6960:     abc\n\rxyz  
        !          6961:  0: 
        !          6962:     ** Failers 
        !          6963: No match
        !          6964:     abc\r\nxyz
        !          6965: No match
        !          6966: 
        !          6967: /^X/m
        !          6968:     XABC
        !          6969:  0: X
        !          6970:     ** Failers 
        !          6971: No match
        !          6972:     XABC\B
        !          6973: No match
        !          6974: 
        !          6975: /(?m)^$/<any>g+
        !          6976:     abc\r\n\r\n
        !          6977:  0: 
        !          6978:  0+ \x0d\x0a
        !          6979: 
        !          6980: /(?m)^$|^\r\n/<any>g+ 
        !          6981:     abc\r\n\r\n
        !          6982:  0: \x0d\x0a
        !          6983:  0+ 
        !          6984:  1: 
        !          6985:     
        !          6986: /(?m)$/<any>g+ 
        !          6987:     abc\r\n\r\n
        !          6988:  0: 
        !          6989:  0+ \x0d\x0a\x0d\x0a
        !          6990:  0: 
        !          6991:  0+ \x0d\x0a
        !          6992:  0: 
        !          6993:  0+ 
        !          6994: 
        !          6995: /(?|(abc)|(xyz))/
        !          6996:    >abc<
        !          6997:  0: abc
        !          6998:    >xyz< 
        !          6999:  0: xyz
        !          7000: 
        !          7001: /(x)(?|(abc)|(xyz))(x)/
        !          7002:     xabcx
        !          7003:  0: xabcx
        !          7004:     xxyzx 
        !          7005:  0: xxyzx
        !          7006: 
        !          7007: /(x)(?|(abc)(pqr)|(xyz))(x)/
        !          7008:     xabcpqrx
        !          7009:  0: xabcpqrx
        !          7010:     xxyzx 
        !          7011:  0: xxyzx
        !          7012: 
        !          7013: /(?|(abc)|(xyz))(?1)/
        !          7014:     abcabc
        !          7015:  0: abcabc
        !          7016:     xyzabc 
        !          7017:  0: xyzabc
        !          7018:     ** Failers 
        !          7019: No match
        !          7020:     xyzxyz 
        !          7021: No match
        !          7022:  
        !          7023: /\H\h\V\v/
        !          7024:     X X\x0a
        !          7025:  0: X X\x0a
        !          7026:     X\x09X\x0b
        !          7027:  0: X\x09X\x0b
        !          7028:     ** Failers
        !          7029: No match
        !          7030:     \xa0 X\x0a   
        !          7031: No match
        !          7032:     
        !          7033: /\H*\h+\V?\v{3,4}/ 
        !          7034:     \x09\x20\xa0X\x0a\x0b\x0c\x0d\x0a
        !          7035:  0: \x09 \xa0X\x0a\x0b\x0c\x0d
        !          7036:  1: \x09 \xa0X\x0a\x0b\x0c
        !          7037:     \x09\x20\xa0\x0a\x0b\x0c\x0d\x0a
        !          7038:  0: \x09 \xa0\x0a\x0b\x0c\x0d
        !          7039:  1: \x09 \xa0\x0a\x0b\x0c
        !          7040:     \x09\x20\xa0\x0a\x0b\x0c
        !          7041:  0: \x09 \xa0\x0a\x0b\x0c
        !          7042:     ** Failers 
        !          7043: No match
        !          7044:     \x09\x20\xa0\x0a\x0b
        !          7045: No match
        !          7046:      
        !          7047: /\H{3,4}/
        !          7048:     XY  ABCDE
        !          7049:  0: ABCD
        !          7050:  1: ABC
        !          7051:     XY  PQR ST 
        !          7052:  0: PQR
        !          7053:     
        !          7054: /.\h{3,4}./
        !          7055:     XY  AB    PQRS
        !          7056:  0: B    P
        !          7057:  1: B    
        !          7058: 
        !          7059: /\h*X\h?\H+Y\H?Z/
        !          7060:     >XNNNYZ
        !          7061:  0: XNNNYZ
        !          7062:     >  X NYQZ
        !          7063:  0:   X NYQZ
        !          7064:     ** Failers
        !          7065: No match
        !          7066:     >XYZ   
        !          7067: No match
        !          7068:     >  X NY Z
        !          7069: No match
        !          7070: 
        !          7071: /\v*X\v?Y\v+Z\V*\x0a\V+\x0b\V{2,3}\x0c/
        !          7072:     >XY\x0aZ\x0aA\x0bNN\x0c
        !          7073:  0: XY\x0aZ\x0aA\x0bNN\x0c
        !          7074:     >\x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c
        !          7075:  0: \x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c
        !          7076: 
        !          7077: /.+A/<crlf>
        !          7078:     \r\nA
        !          7079: No match
        !          7080:     
        !          7081: /\nA/<crlf>
        !          7082:     \r\nA 
        !          7083:  0: \x0aA
        !          7084: 
        !          7085: /[\r\n]A/<crlf>
        !          7086:     \r\nA 
        !          7087:  0: \x0aA
        !          7088: 
        !          7089: /(\r|\n)A/<crlf>
        !          7090:     \r\nA 
        !          7091:  0: \x0aA
        !          7092: 
        !          7093: /a\Rb/I<bsr_anycrlf>
        !          7094: Capturing subpattern count = 0
        !          7095: Options: bsr_anycrlf
        !          7096: First char = 'a'
        !          7097: Need char = 'b'
        !          7098:     a\rb
        !          7099:  0: a\x0db
        !          7100:     a\nb
        !          7101:  0: a\x0ab
        !          7102:     a\r\nb
        !          7103:  0: a\x0d\x0ab
        !          7104:     ** Failers
        !          7105: No match
        !          7106:     a\x85b
        !          7107: No match
        !          7108:     a\x0bb     
        !          7109: No match
        !          7110: 
        !          7111: /a\Rb/I<bsr_unicode>
        !          7112: Capturing subpattern count = 0
        !          7113: Options: bsr_unicode
        !          7114: First char = 'a'
        !          7115: Need char = 'b'
        !          7116:     a\rb
        !          7117:  0: a\x0db
        !          7118:     a\nb
        !          7119:  0: a\x0ab
        !          7120:     a\r\nb
        !          7121:  0: a\x0d\x0ab
        !          7122:     a\x85b
        !          7123:  0: a\x85b
        !          7124:     a\x0bb     
        !          7125:  0: a\x0bb
        !          7126:     ** Failers 
        !          7127: No match
        !          7128:     a\x85b\<bsr_anycrlf>
        !          7129: No match
        !          7130:     a\x0bb\<bsr_anycrlf>
        !          7131: No match
        !          7132:     
        !          7133: /a\R?b/I<bsr_anycrlf>
        !          7134: Capturing subpattern count = 0
        !          7135: Options: bsr_anycrlf
        !          7136: First char = 'a'
        !          7137: Need char = 'b'
        !          7138:     a\rb
        !          7139:  0: a\x0db
        !          7140:     a\nb
        !          7141:  0: a\x0ab
        !          7142:     a\r\nb
        !          7143:  0: a\x0d\x0ab
        !          7144:     ** Failers
        !          7145: No match
        !          7146:     a\x85b
        !          7147: No match
        !          7148:     a\x0bb     
        !          7149: No match
        !          7150: 
        !          7151: /a\R?b/I<bsr_unicode>
        !          7152: Capturing subpattern count = 0
        !          7153: Options: bsr_unicode
        !          7154: First char = 'a'
        !          7155: Need char = 'b'
        !          7156:     a\rb
        !          7157:  0: a\x0db
        !          7158:     a\nb
        !          7159:  0: a\x0ab
        !          7160:     a\r\nb
        !          7161:  0: a\x0d\x0ab
        !          7162:     a\x85b
        !          7163:  0: a\x85b
        !          7164:     a\x0bb     
        !          7165:  0: a\x0bb
        !          7166:     ** Failers 
        !          7167: No match
        !          7168:     a\x85b\<bsr_anycrlf>
        !          7169: No match
        !          7170:     a\x0bb\<bsr_anycrlf>
        !          7171: No match
        !          7172:     
        !          7173: /a\R{2,4}b/I<bsr_anycrlf>
        !          7174: Capturing subpattern count = 0
        !          7175: Options: bsr_anycrlf
        !          7176: First char = 'a'
        !          7177: Need char = 'b'
        !          7178:     a\r\n\nb
        !          7179:  0: a\x0d\x0a\x0ab
        !          7180:     a\n\r\rb
        !          7181:  0: a\x0a\x0d\x0db
        !          7182:     a\r\n\r\n\r\n\r\nb
        !          7183:  0: a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0ab
        !          7184:     ** Failers
        !          7185: No match
        !          7186:     a\x85\85b
        !          7187: No match
        !          7188:     a\x0b\0bb     
        !          7189: No match
        !          7190: 
        !          7191: /a\R{2,4}b/I<bsr_unicode>
        !          7192: Capturing subpattern count = 0
        !          7193: Options: bsr_unicode
        !          7194: First char = 'a'
        !          7195: Need char = 'b'
        !          7196:     a\r\rb
        !          7197:  0: a\x0d\x0db
        !          7198:     a\n\n\nb
        !          7199:  0: a\x0a\x0a\x0ab
        !          7200:     a\r\n\n\r\rb
        !          7201:  0: a\x0d\x0a\x0a\x0d\x0db
        !          7202:     a\x85\85b
        !          7203: No match
        !          7204:     a\x0b\0bb     
        !          7205: No match
        !          7206:     ** Failers 
        !          7207: No match
        !          7208:     a\r\r\r\r\rb 
        !          7209: No match
        !          7210:     a\x85\85b\<bsr_anycrlf>
        !          7211: No match
        !          7212:     a\x0b\0bb\<bsr_anycrlf>
        !          7213: No match
        !          7214:     
        !          7215: /a(?!)|\wbc/
        !          7216:     abc 
        !          7217:  0: abc
        !          7218: 
        !          7219: /a[]b/<JS>
        !          7220:     ** Failers
        !          7221: No match
        !          7222:     ab
        !          7223: No match
        !          7224: 
        !          7225: /a[]+b/<JS>
        !          7226:     ** Failers
        !          7227: No match
        !          7228:     ab 
        !          7229: No match
        !          7230: 
        !          7231: /a[]*+b/<JS>
        !          7232:     ** Failers
        !          7233: No match
        !          7234:     ab 
        !          7235: No match
        !          7236: 
        !          7237: /a[^]b/<JS>
        !          7238:     aXb
        !          7239:  0: aXb
        !          7240:     a\nb 
        !          7241:  0: a\x0ab
        !          7242:     ** Failers
        !          7243: No match
        !          7244:     ab  
        !          7245: No match
        !          7246:     
        !          7247: /a[^]+b/<JS> 
        !          7248:     aXb
        !          7249:  0: aXb
        !          7250:     a\nX\nXb 
        !          7251:  0: a\x0aX\x0aXb
        !          7252:     ** Failers
        !          7253: No match
        !          7254:     ab  
        !          7255: No match
        !          7256: 
        !          7257: /X$/E
        !          7258:     X
        !          7259:  0: X
        !          7260:     ** Failers 
        !          7261: No match
        !          7262:     X\n 
        !          7263: No match
        !          7264: 
        !          7265: /X$/
        !          7266:     X
        !          7267:  0: X
        !          7268:     X\n 
        !          7269:  0: X
        !          7270: 
        !          7271: /xyz/C
        !          7272:   xyz 
        !          7273: --->xyz
        !          7274:  +0 ^       x
        !          7275:  +1 ^^      y
        !          7276:  +2 ^ ^     z
        !          7277:  +3 ^  ^    
        !          7278:  0: xyz
        !          7279:   abcxyz 
        !          7280: --->abcxyz
        !          7281:  +0    ^       x
        !          7282:  +1    ^^      y
        !          7283:  +2    ^ ^     z
        !          7284:  +3    ^  ^    
        !          7285:  0: xyz
        !          7286:   abcxyz\Y
        !          7287: --->abcxyz
        !          7288:  +0 ^          x
        !          7289:  +0  ^         x
        !          7290:  +0   ^        x
        !          7291:  +0    ^       x
        !          7292:  +1    ^^      y
        !          7293:  +2    ^ ^     z
        !          7294:  +3    ^  ^    
        !          7295:  0: xyz
        !          7296:   ** Failers 
        !          7297: No match
        !          7298:   abc
        !          7299: No match
        !          7300:   abc\Y
        !          7301: --->abc
        !          7302:  +0 ^       x
        !          7303:  +0  ^      x
        !          7304:  +0   ^     x
        !          7305:  +0    ^    x
        !          7306: No match
        !          7307:   abcxypqr  
        !          7308: No match
        !          7309:   abcxypqr\Y  
        !          7310: --->abcxypqr
        !          7311:  +0 ^            x
        !          7312:  +0  ^           x
        !          7313:  +0   ^          x
        !          7314:  +0    ^         x
        !          7315:  +1    ^^        y
        !          7316:  +2    ^ ^       z
        !          7317:  +0     ^        x
        !          7318:  +0      ^       x
        !          7319:  +0       ^      x
        !          7320:  +0        ^     x
        !          7321:  +0         ^    x
        !          7322: No match
        !          7323: 
        !          7324: /(*NO_START_OPT)xyz/C
        !          7325:   abcxyz 
        !          7326: --->abcxyz
        !          7327: +15 ^          x
        !          7328: +15  ^         x
        !          7329: +15   ^        x
        !          7330: +15    ^       x
        !          7331: +16    ^^      y
        !          7332: +17    ^ ^     z
        !          7333: +18    ^  ^    
        !          7334:  0: xyz
        !          7335:   
        !          7336: /(?C)ab/
        !          7337:   ab
        !          7338: --->ab
        !          7339:   0 ^      a
        !          7340:  0: ab
        !          7341:   \C-ab
        !          7342:  0: ab
        !          7343:   
        !          7344: /ab/C
        !          7345:   ab
        !          7346: --->ab
        !          7347:  +0 ^      a
        !          7348:  +1 ^^     b
        !          7349:  +2 ^ ^    
        !          7350:  0: ab
        !          7351:   \C-ab    
        !          7352:  0: ab
        !          7353: 
        !          7354: /^"((?(?=[a])[^"])|b)*"$/C
        !          7355:     "ab"
        !          7356: --->"ab"
        !          7357:  +0 ^        ^
        !          7358:  +1 ^        "
        !          7359:  +2 ^^       ((?(?=[a])[^"])|b)*
        !          7360: +21 ^^       "
        !          7361:  +3 ^^       (?(?=[a])[^"])
        !          7362: +18 ^^       b
        !          7363:  +5 ^^       (?=[a])
        !          7364:  +8  ^       [a]
        !          7365: +11  ^^      )
        !          7366: +12 ^^       [^"]
        !          7367: +16 ^ ^      )
        !          7368: +17 ^ ^      |
        !          7369: +21 ^ ^      "
        !          7370:  +3 ^ ^      (?(?=[a])[^"])
        !          7371: +18 ^ ^      b
        !          7372:  +5 ^ ^      (?=[a])
        !          7373:  +8   ^      [a]
        !          7374: +19 ^  ^     )
        !          7375: +21 ^  ^     "
        !          7376:  +3 ^  ^     (?(?=[a])[^"])
        !          7377: +18 ^  ^     b
        !          7378:  +5 ^  ^     (?=[a])
        !          7379:  +8    ^     [a]
        !          7380: +17 ^  ^     |
        !          7381: +22 ^   ^    $
        !          7382: +23 ^   ^    
        !          7383:  0: "ab"
        !          7384:     \C-"ab"
        !          7385:  0: "ab"
        !          7386: 
        !          7387: /\d+X|9+Y/
        !          7388:     ++++123999\P
        !          7389: Partial match: 123999
        !          7390:     ++++123999Y\P
        !          7391:  0: 999Y
        !          7392: 
        !          7393: /Z(*F)/
        !          7394:     Z\P
        !          7395: No match
        !          7396:     ZA\P 
        !          7397: No match
        !          7398:     
        !          7399: /Z(?!)/
        !          7400:     Z\P 
        !          7401: No match
        !          7402:     ZA\P 
        !          7403: No match
        !          7404: 
        !          7405: /dog(sbody)?/
        !          7406:     dogs\P
        !          7407:  0: dog
        !          7408:     dogs\P\P 
        !          7409: Partial match: dogs
        !          7410:     
        !          7411: /dog(sbody)??/
        !          7412:     dogs\P
        !          7413:  0: dog
        !          7414:     dogs\P\P 
        !          7415: Partial match: dogs
        !          7416: 
        !          7417: /dog|dogsbody/
        !          7418:     dogs\P
        !          7419:  0: dog
        !          7420:     dogs\P\P 
        !          7421: Partial match: dogs
        !          7422:  
        !          7423: /dogsbody|dog/
        !          7424:     dogs\P
        !          7425:  0: dog
        !          7426:     dogs\P\P 
        !          7427: Partial match: dogs
        !          7428: 
        !          7429: /Z(*F)Q|ZXY/
        !          7430:     Z\P
        !          7431: Partial match: Z
        !          7432:     ZA\P 
        !          7433: No match
        !          7434:     X\P 
        !          7435: No match
        !          7436: 
        !          7437: /\bthe cat\b/
        !          7438:     the cat\P
        !          7439:  0: the cat
        !          7440:     the cat\P\P
        !          7441: Partial match: the cat
        !          7442: 
        !          7443: /dog(sbody)?/
        !          7444:     dogs\D\P
        !          7445:  0: dog
        !          7446:     body\D\R
        !          7447:  0: body
        !          7448: 
        !          7449: /dog(sbody)?/
        !          7450:     dogs\D\P\P
        !          7451: Partial match: dogs
        !          7452:     body\D\R
        !          7453:  0: body
        !          7454: 
        !          7455: /abc/
        !          7456:    abc\P
        !          7457:  0: abc
        !          7458:    abc\P\P
        !          7459:  0: abc
        !          7460: 
        !          7461: /abc\K123/
        !          7462:     xyzabc123pqr
        !          7463: Error -16 (item unsupported for DFA matching)
        !          7464:     
        !          7465: /(?<=abc)123/
        !          7466:     xyzabc123pqr 
        !          7467:  0: 123
        !          7468:     xyzabc12\P
        !          7469: Partial match: abc12
        !          7470:     xyzabc12\P\P
        !          7471: Partial match: abc12
        !          7472: 
        !          7473: /\babc\b/
        !          7474:     +++abc+++
        !          7475:  0: abc
        !          7476:     +++ab\P
        !          7477: Partial match: +ab
        !          7478:     +++ab\P\P  
        !          7479: Partial match: +ab
        !          7480: 
        !          7481: /(?=C)/g+
        !          7482:     ABCDECBA
        !          7483:  0: 
        !          7484:  0+ CDECBA
        !          7485:  0: 
        !          7486:  0+ CBA
        !          7487: 
        !          7488: /(abc|def|xyz)/I
        !          7489: Capturing subpattern count = 1
        !          7490: No options
        !          7491: No first char
        !          7492: No need char
        !          7493:     terhjk;abcdaadsfe
        !          7494:  0: abc
        !          7495:     the quick xyz brown fox 
        !          7496:  0: xyz
        !          7497:     \Yterhjk;abcdaadsfe
        !          7498:  0: abc
        !          7499:     \Ythe quick xyz brown fox 
        !          7500:  0: xyz
        !          7501:     ** Failers
        !          7502: No match
        !          7503:     thejk;adlfj aenjl;fda asdfasd ehj;kjxyasiupd
        !          7504: No match
        !          7505:     \Ythejk;adlfj aenjl;fda asdfasd ehj;kjxyasiupd
        !          7506: No match
        !          7507: 
        !          7508: /(abc|def|xyz)/SI
        !          7509: Capturing subpattern count = 1
        !          7510: No options
        !          7511: No first char
        !          7512: No need char
        !          7513: Subject length lower bound = 3
        !          7514: Starting byte set: a d x 
        !          7515:     terhjk;abcdaadsfe
        !          7516:  0: abc
        !          7517:     the quick xyz brown fox 
        !          7518:  0: xyz
        !          7519:     \Yterhjk;abcdaadsfe
        !          7520:  0: abc
        !          7521:     \Ythe quick xyz brown fox 
        !          7522:  0: xyz
        !          7523:     ** Failers
        !          7524: No match
        !          7525:     thejk;adlfj aenjl;fda asdfasd ehj;kjxyasiupd
        !          7526: No match
        !          7527:     \Ythejk;adlfj aenjl;fda asdfasd ehj;kjxyasiupd
        !          7528: No match
        !          7529: 
        !          7530: /abcd*/+
        !          7531:     xxxxabcd\P
        !          7532:  0: abcd
        !          7533:  0+ 
        !          7534:  1: abc
        !          7535:     xxxxabcd\P\P
        !          7536: Partial match: abcd
        !          7537:     dddxxx\R 
        !          7538:  0: ddd
        !          7539:  0+ xxx
        !          7540:  1: dd
        !          7541:  2: d
        !          7542:  3: 
        !          7543:     xxxxabcd\P\P
        !          7544: Partial match: abcd
        !          7545:     xxx\R 
        !          7546:  0: 
        !          7547:  0+ xxx
        !          7548: 
        !          7549: /abcd*/i
        !          7550:     xxxxabcd\P
        !          7551:  0: abcd
        !          7552:  1: abc
        !          7553:     xxxxabcd\P\P
        !          7554: Partial match: abcd
        !          7555:     XXXXABCD\P
        !          7556:  0: ABCD
        !          7557:  1: ABC
        !          7558:     XXXXABCD\P\P
        !          7559: Partial match: ABCD
        !          7560: 
        !          7561: /abc\d*/
        !          7562:     xxxxabc1\P
        !          7563:  0: abc1
        !          7564:  1: abc
        !          7565:     xxxxabc1\P\P
        !          7566: Partial match: abc1
        !          7567: 
        !          7568: /abc[de]*/
        !          7569:     xxxxabcde\P
        !          7570:  0: abcde
        !          7571:  1: abcd
        !          7572:  2: abc
        !          7573:     xxxxabcde\P\P
        !          7574: Partial match: abcde
        !          7575: 
        !          7576: /(?:(?1)|B)(A(*F)|C)/
        !          7577:     ABCD
        !          7578:  0: BC
        !          7579:     CCD
        !          7580:  0: CC
        !          7581:     ** Failers
        !          7582: No match
        !          7583:     CAD   
        !          7584: No match
        !          7585: 
        !          7586: /^(?:(?1)|B)(A(*F)|C)/
        !          7587:     CCD
        !          7588:  0: CC
        !          7589:     BCD 
        !          7590:  0: BC
        !          7591:     ** Failers
        !          7592: No match
        !          7593:     ABCD
        !          7594: No match
        !          7595:     CAD
        !          7596: No match
        !          7597:     BAD    
        !          7598: No match
        !          7599: 
        !          7600: /^(?!a(*SKIP)b)/
        !          7601:     ac
        !          7602: Error -16 (item unsupported for DFA matching)
        !          7603:     
        !          7604: /^(?=a(*SKIP)b|ac)/
        !          7605:     ** Failers
        !          7606: No match
        !          7607:     ac
        !          7608: Error -16 (item unsupported for DFA matching)
        !          7609:     
        !          7610: /^(?=a(*THEN)b|ac)/
        !          7611:     ac
        !          7612: Error -16 (item unsupported for DFA matching)
        !          7613:     
        !          7614: /^(?=a(*PRUNE)b)/
        !          7615:     ab  
        !          7616: Error -16 (item unsupported for DFA matching)
        !          7617:     ** Failers 
        !          7618: No match
        !          7619:     ac
        !          7620: Error -16 (item unsupported for DFA matching)
        !          7621: 
        !          7622: /^(?(?!a(*SKIP)b))/
        !          7623:     ac
        !          7624: Error -16 (item unsupported for DFA matching)
        !          7625: 
        !          7626: /(?<=abc)def/
        !          7627:     abc\P\P
        !          7628: Partial match: abc
        !          7629: 
        !          7630: /abc$/
        !          7631:     abc
        !          7632:  0: abc
        !          7633:     abc\P
        !          7634:  0: abc
        !          7635:     abc\P\P
        !          7636: Partial match: abc
        !          7637: 
        !          7638: /abc$/m
        !          7639:     abc
        !          7640:  0: abc
        !          7641:     abc\n
        !          7642:  0: abc
        !          7643:     abc\P\P
        !          7644: Partial match: abc
        !          7645:     abc\n\P\P 
        !          7646:  0: abc
        !          7647:     abc\P
        !          7648:  0: abc
        !          7649:     abc\n\P
        !          7650:  0: abc
        !          7651: 
        !          7652: /abc\z/
        !          7653:     abc
        !          7654:  0: abc
        !          7655:     abc\P
        !          7656:  0: abc
        !          7657:     abc\P\P
        !          7658: Partial match: abc
        !          7659: 
        !          7660: /abc\Z/
        !          7661:     abc
        !          7662:  0: abc
        !          7663:     abc\P
        !          7664:  0: abc
        !          7665:     abc\P\P
        !          7666: Partial match: abc
        !          7667: 
        !          7668: /abc\b/
        !          7669:     abc
        !          7670:  0: abc
        !          7671:     abc\P
        !          7672:  0: abc
        !          7673:     abc\P\P
        !          7674: Partial match: abc
        !          7675: 
        !          7676: /abc\B/
        !          7677:     abc
        !          7678: No match
        !          7679:     abc\P
        !          7680: Partial match: abc
        !          7681:     abc\P\P
        !          7682: Partial match: abc
        !          7683: 
        !          7684: /.+/
        !          7685:     abc\>0
        !          7686:  0: abc
        !          7687:  1: ab
        !          7688:  2: a
        !          7689:     abc\>1
        !          7690:  0: bc
        !          7691:  1: b
        !          7692:     abc\>2
        !          7693:  0: c
        !          7694:     abc\>3
        !          7695: No match
        !          7696:     abc\>4
        !          7697: Error -24 (bad offset value)
        !          7698:     abc\>-4 
        !          7699: Error -24 (bad offset value)
        !          7700: 
        !          7701: /^(?:a)++\w/
        !          7702:      aaaab
        !          7703:  0: aaaab
        !          7704:      ** Failers 
        !          7705: No match
        !          7706:      aaaa 
        !          7707: No match
        !          7708:      bbb 
        !          7709: No match
        !          7710: 
        !          7711: /^(?:aa|(?:a)++\w)/
        !          7712:      aaaab
        !          7713:  0: aaaab
        !          7714:  1: aa
        !          7715:      aaaa 
        !          7716:  0: aa
        !          7717:      ** Failers 
        !          7718: No match
        !          7719:      bbb 
        !          7720: No match
        !          7721: 
        !          7722: /^(?:a)*+\w/
        !          7723:      aaaab
        !          7724:  0: aaaab
        !          7725:      bbb 
        !          7726:  0: b
        !          7727:      ** Failers 
        !          7728: No match
        !          7729:      aaaa 
        !          7730: No match
        !          7731: 
        !          7732: /^(a)++\w/
        !          7733:      aaaab
        !          7734:  0: aaaab
        !          7735:      ** Failers 
        !          7736: No match
        !          7737:      aaaa 
        !          7738: No match
        !          7739:      bbb 
        !          7740: No match
        !          7741: 
        !          7742: /^(a|)++\w/
        !          7743:      aaaab
        !          7744:  0: aaaab
        !          7745:      ** Failers 
        !          7746: No match
        !          7747:      aaaa 
        !          7748: No match
        !          7749:      bbb 
        !          7750: No match
        !          7751: 
        !          7752: /(?=abc){3}abc/+
        !          7753:     abcabcabc
        !          7754:  0: abc
        !          7755:  0+ abcabc
        !          7756:     ** Failers
        !          7757: No match
        !          7758:     xyz  
        !          7759: No match
        !          7760:     
        !          7761: /(?=abc)+abc/+
        !          7762:     abcabcabc
        !          7763:  0: abc
        !          7764:  0+ abcabc
        !          7765:     ** Failers
        !          7766: No match
        !          7767:     xyz  
        !          7768: No match
        !          7769:     
        !          7770: /(?=abc)++abc/+
        !          7771:     abcabcabc
        !          7772:  0: abc
        !          7773:  0+ abcabc
        !          7774:     ** Failers
        !          7775: No match
        !          7776:     xyz  
        !          7777: No match
        !          7778:     
        !          7779: /(?=abc){0}xyz/
        !          7780:     xyz 
        !          7781:  0: xyz
        !          7782: 
        !          7783: /(?=abc){1}xyz/
        !          7784:     ** Failers
        !          7785: No match
        !          7786:     xyz 
        !          7787: No match
        !          7788:     
        !          7789: /(?=(a))?./
        !          7790:     ab
        !          7791:  0: a
        !          7792:     bc
        !          7793:  0: b
        !          7794:       
        !          7795: /(?=(a))??./
        !          7796:     ab
        !          7797:  0: a
        !          7798:     bc
        !          7799:  0: b
        !          7800: 
        !          7801: /^(?=(a)){0}b(?1)/
        !          7802:     backgammon
        !          7803:  0: ba
        !          7804: 
        !          7805: /^(?=(?1))?[az]([abc])d/
        !          7806:     abd 
        !          7807:  0: abd
        !          7808:     zcdxx 
        !          7809:  0: zcd
        !          7810: 
        !          7811: /^(?!a){0}\w+/
        !          7812:     aaaaa
        !          7813:  0: aaaaa
        !          7814:  1: aaaa
        !          7815:  2: aaa
        !          7816:  3: aa
        !          7817:  4: a
        !          7818: 
        !          7819: /(?<=(abc))?xyz/
        !          7820:     abcxyz
        !          7821:  0: xyz
        !          7822:     pqrxyz 
        !          7823:  0: xyz
        !          7824: 
        !          7825: /((?2))((?1))/
        !          7826:     abc
        !          7827: Error -26 (nested recursion at the same subject position)
        !          7828: 
        !          7829: /(?(R)a+|(?R)b)/
        !          7830:     aaaabcde
        !          7831:  0: aaaab
        !          7832: 
        !          7833: /(?(R)a+|((?R))b)/
        !          7834:     aaaabcde
        !          7835:  0: aaaab
        !          7836: 
        !          7837: /((?(R)a+|(?1)b))/
        !          7838:     aaaabcde
        !          7839:  0: aaaab
        !          7840: 
        !          7841: /((?(R2)a+|(?1)b))/
        !          7842:     aaaabcde
        !          7843: Error -17 (backreference condition or recursion test not supported for DFA matching)
        !          7844: 
        !          7845: /(?(R)a*(?1)|((?R))b)/
        !          7846:     aaaabcde
        !          7847: Error -26 (nested recursion at the same subject position)
        !          7848: 
        !          7849: /(a+)/
        !          7850:     \O6aaaa
        !          7851: Matched, but too many subsidiary matches
        !          7852:  0: aaaa
        !          7853:  1: aaa
        !          7854:  2: aa
        !          7855:     \O8aaaa
        !          7856:  0: aaaa
        !          7857:  1: aaa
        !          7858:  2: aa
        !          7859:  3: a
        !          7860: 
        !          7861: /ab\Cde/
        !          7862:     abXde
        !          7863:  0: abXde
        !          7864:     
        !          7865: /(?<=ab\Cde)X/
        !          7866:     abZdeX
        !          7867:  0: X
        !          7868: 
        !          7869: /-- End of testinput7 --/

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