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

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