"Fossies" - the Fresh Open Source Software Archive

Member "pcre-8.43/testdata/testoutput8" (22 Mar 2017, 120659 Bytes) of package /linux/misc/pcre-8.43.tar.bz2:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. See also the last Fossies "Diffs" side-by-side code changes report for "testoutput8": 8.40_vs_8.41.

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