"Fossies" - the Fresh Open Source Software Archive

Member "tin-2.6.2/pcre/testdata/testinput7" (23 Aug 2021, 77627 Bytes) of package /linux/misc/tin-2.6.2.tar.xz:


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.

A hint: This file contains one or more very long lines, so maybe it is better readable using the pure text view mode that shows the contents as wrapped lines within the browser window.


    1 /abc/
    2     abc
    3     
    4 /ab*c/
    5     abc
    6     abbbbc
    7     ac
    8     
    9 /ab+c/
   10     abc
   11     abbbbbbc
   12     *** Failers 
   13     ac
   14     ab
   15     
   16 /a*/
   17     a
   18     aaaaaaaaaaaaaaaaa
   19     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
   20     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\F 
   21     
   22 /(a|abcd|african)/
   23     a
   24     abcd
   25     african
   26     
   27 /^abc/
   28     abcdef
   29     *** Failers
   30     xyzabc
   31     xyz\nabc    
   32     
   33 /^abc/m
   34     abcdef
   35     xyz\nabc    
   36     *** Failers
   37     xyzabc
   38     
   39 /\Aabc/
   40     abcdef
   41     *** Failers
   42     xyzabc
   43     xyz\nabc    
   44     
   45 /\Aabc/m
   46     abcdef
   47     *** Failers
   48     xyzabc
   49     xyz\nabc    
   50     
   51 /\Gabc/
   52     abcdef
   53     xyzabc\>3
   54     *** Failers
   55     xyzabc    
   56     xyzabc\>2 
   57     
   58 /x\dy\Dz/
   59     x9yzz
   60     x0y+z
   61     *** Failers
   62     xyz
   63     xxy0z     
   64     
   65 /x\sy\Sz/
   66     x yzz
   67     x y+z
   68     *** Failers
   69     xyz
   70     xxyyz
   71     
   72 /x\wy\Wz/
   73     xxy+z
   74     *** Failers
   75     xxy0z
   76     x+y+z         
   77     
   78 /x.y/
   79     x+y
   80     x-y
   81     *** Failers
   82     x\ny
   83     
   84 /x.y/s
   85     x+y
   86     x-y
   87     x\ny
   88 
   89 /(a.b(?s)c.d|x.y)p.q/
   90     a+bc+dp+q
   91     a+bc\ndp+q
   92     x\nyp+q 
   93     *** Failers 
   94     a\nbc\ndp+q
   95     a+bc\ndp\nq
   96     x\nyp\nq 
   97 
   98 /a\d\z/
   99     ba0
  100     *** Failers
  101     ba0\n
  102     ba0\ncd   
  103 
  104 /a\d\z/m
  105     ba0
  106     *** Failers
  107     ba0\n
  108     ba0\ncd   
  109 
  110 /a\d\Z/
  111     ba0
  112     ba0\n
  113     *** Failers
  114     ba0\ncd   
  115 
  116 /a\d\Z/m
  117     ba0
  118     ba0\n
  119     *** Failers
  120     ba0\ncd   
  121 
  122 /a\d$/
  123     ba0
  124     ba0\n
  125     *** Failers
  126     ba0\ncd   
  127 
  128 /a\d$/m
  129     ba0
  130     ba0\n
  131     ba0\ncd   
  132     *** Failers
  133 
  134 /abc/i
  135     abc
  136     aBc
  137     ABC
  138     
  139 /[^a]/
  140     abcd
  141     
  142 /ab?\w/
  143     abz
  144     abbz
  145     azz  
  146 
  147 /x{0,3}yz/
  148     ayzq
  149     axyzq
  150     axxyz
  151     axxxyzq
  152     axxxxyzq
  153     *** Failers
  154     ax
  155     axx     
  156       
  157 /x{3}yz/
  158     axxxyzq
  159     axxxxyzq
  160     *** Failers
  161     ax
  162     axx     
  163     ayzq
  164     axyzq
  165     axxyz
  166       
  167 /x{2,3}yz/
  168     axxyz
  169     axxxyzq
  170     axxxxyzq
  171     *** Failers
  172     ax
  173     axx     
  174     ayzq
  175     axyzq
  176       
  177 /[^a]+/
  178     bac
  179     bcdefax
  180     *** Failers
  181     aaaaa   
  182 
  183 /[^a]*/
  184     bac
  185     bcdefax
  186     *** Failers
  187     aaaaa   
  188     
  189 /[^a]{3,5}/
  190     xyz
  191     awxyza
  192     abcdefa
  193     abcdefghijk
  194     *** Failers
  195     axya
  196     axa
  197     aaaaa         
  198 
  199 /\d*/
  200     1234b567
  201     xyz
  202     
  203 /\D*/
  204     a1234b567
  205     xyz
  206      
  207 /\d+/
  208     ab1234c56
  209     *** Failers
  210     xyz
  211     
  212 /\D+/
  213     ab123c56
  214     *** Failers
  215     789
  216     
  217 /\d?A/
  218     045ABC
  219     ABC
  220     *** Failers
  221     XYZ
  222     
  223 /\D?A/
  224     ABC
  225     BAC
  226     9ABC             
  227     *** Failers
  228 
  229 /a+/
  230     aaaa
  231 
  232 /^.*xyz/
  233     xyz
  234     ggggggggxyz
  235     
  236 /^.+xyz/
  237     abcdxyz
  238     axyz
  239     *** Failers
  240     xyz
  241     
  242 /^.?xyz/
  243     xyz
  244     cxyz       
  245 
  246 /^\d{2,3}X/
  247     12X
  248     123X
  249     *** Failers
  250     X
  251     1X
  252     1234X     
  253 
  254 /^[abcd]\d/
  255     a45
  256     b93
  257     c99z
  258     d04
  259     *** Failers
  260     e45
  261     abcd      
  262     abcd1234
  263     1234  
  264 
  265 /^[abcd]*\d/
  266     a45
  267     b93
  268     c99z
  269     d04
  270     abcd1234
  271     1234  
  272     *** Failers
  273     e45
  274     abcd      
  275 
  276 /^[abcd]+\d/
  277     a45
  278     b93
  279     c99z
  280     d04
  281     abcd1234
  282     *** Failers
  283     1234  
  284     e45
  285     abcd      
  286 
  287 /^a+X/
  288     aX
  289     aaX 
  290 
  291 /^[abcd]?\d/
  292     a45
  293     b93
  294     c99z
  295     d04
  296     1234  
  297     *** Failers
  298     abcd1234
  299     e45
  300 
  301 /^[abcd]{2,3}\d/
  302     ab45
  303     bcd93
  304     *** Failers
  305     1234 
  306     a36 
  307     abcd1234
  308     ee45
  309 
  310 /^(abc)*\d/
  311     abc45
  312     abcabcabc45
  313     42xyz 
  314     *** Failers
  315 
  316 /^(abc)+\d/
  317     abc45
  318     abcabcabc45
  319     *** Failers
  320     42xyz 
  321 
  322 /^(abc)?\d/
  323     abc45
  324     42xyz 
  325     *** Failers
  326     abcabcabc45
  327 
  328 /^(abc){2,3}\d/
  329     abcabc45
  330     abcabcabc45
  331     *** Failers
  332     abcabcabcabc45
  333     abc45
  334     42xyz 
  335 
  336 /1(abc|xyz)2(?1)3/
  337     1abc2abc3456
  338     1abc2xyz3456 
  339 
  340 /^(a*\w|ab)=(a*\w|ab)/
  341     ab=ab
  342 
  343 /^(a*\w|ab)=(?1)/
  344     ab=ab
  345 
  346 /^([^()]|\((?1)*\))*$/
  347     abc
  348     a(b)c
  349     a(b(c))d  
  350     *** Failers)
  351     a(b(c)d  
  352 
  353 /^>abc>([^()]|\((?1)*\))*<xyz<$/
  354     >abc>123<xyz<
  355     >abc>1(2)3<xyz<
  356     >abc>(1(2)3)<xyz<
  357 
  358 /^(?>a*)\d/
  359     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa9876
  360     *** Failers 
  361     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  362 
  363 /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/x
  364     <>
  365     <abcd>
  366     <abc <123> hij>
  367     <abc <def> hij>
  368     <abc<>def> 
  369     <abc<>      
  370     *** Failers
  371     <abc
  372 
  373 /^(?(?=abc)\w{3}:|\d\d)$/        
  374     abc:                          
  375     12                             
  376     *** Failers                     
  377     123                       
  378     xyz                        
  379                                 
  380 /^(?(?!abc)\d\d|\w{3}:)$/      
  381     abc:                        
  382     12         
  383     *** Failers
  384     123
  385     xyz    
  386 
  387 /^(?=abc)\w{5}:$/        
  388     abcde:                          
  389     *** Failers                     
  390     abc.. 
  391     123                       
  392     vwxyz                        
  393                                 
  394 /^(?!abc)\d\d$/      
  395     12         
  396     *** Failers
  397     abcde:
  398     abc..  
  399     123
  400     vwxyz    
  401 
  402 /(?<=abc|xy)123/
  403     abc12345
  404     wxy123z
  405     *** Failers
  406     123abc
  407 
  408 /(?<!abc|xy)123/
  409     123abc
  410     mno123456 
  411     *** Failers
  412     abc12345
  413     wxy123z
  414 
  415 /abc(?C1)xyz/
  416     abcxyz
  417     123abcxyz999 
  418 
  419 /(ab|cd){3,4}/C
  420   ababab
  421   abcdabcd
  422   abcdcdcdcdcd  
  423 
  424 /^abc/
  425     abcdef
  426     *** Failers
  427     abcdef\B  
  428 
  429 /^(a*|xyz)/
  430     bcd
  431     aaabcd
  432     xyz
  433     xyz\N  
  434     *** Failers
  435     bcd\N   
  436     
  437 /xyz$/
  438     xyz
  439     xyz\n
  440     *** Failers
  441     xyz\Z
  442     xyz\n\Z    
  443     
  444 /xyz$/m
  445     xyz
  446     xyz\n 
  447     abcxyz\npqr 
  448     abcxyz\npqr\Z 
  449     xyz\n\Z    
  450     *** Failers
  451     xyz\Z
  452 
  453 /\Gabc/
  454     abcdef
  455     defabcxyz\>3 
  456     *** Failers 
  457     defabcxyz
  458 
  459 /^abcdef/
  460     ab\P
  461     abcde\P
  462     abcdef\P
  463     *** Failers
  464     abx\P    
  465 
  466 /^a{2,4}\d+z/
  467     a\P
  468     aa\P
  469     aa2\P 
  470     aaa\P
  471     aaa23\P 
  472     aaaa12345\P
  473     aa0z\P
  474     aaaa4444444444444z\P 
  475     *** Failers
  476     az\P 
  477     aaaaa\P 
  478     a56\P 
  479 
  480 /^abcdef/
  481    abc\P
  482    def\R 
  483    
  484 /(?<=foo)bar/
  485    xyzfo\P 
  486    foob\P\>2 
  487    foobar...\R\P\>4 
  488    xyzfo\P
  489    foobar\>2  
  490    *** Failers
  491    xyzfo\P
  492    obar\R   
  493 
  494 /(ab*(cd|ef))+X/
  495     adfadadaklhlkalkajhlkjahdfasdfasdfladsfjkj\P\Z
  496     lkjhlkjhlkjhlkjhabbbbbbcdaefabbbbbbbefa\P\B\Z
  497     cdabbbbbbbb\P\R\B\Z
  498     efabbbbbbbbbbbbbbbb\P\R\B\Z
  499     bbbbbbbbbbbbcdXyasdfadf\P\R\B\Z    
  500 
  501 /(a|b)/SF>testsavedregex
  502 <testsavedregex
  503     abc
  504     ** Failers
  505     def  
  506     
  507 /the quick brown fox/
  508     the quick brown fox
  509     The quick brown FOX
  510     What do you know about the quick brown fox?
  511     What do you know about THE QUICK BROWN FOX?
  512 
  513 /The quick brown fox/i
  514     the quick brown fox
  515     The quick brown FOX
  516     What do you know about the quick brown fox?
  517     What do you know about THE QUICK BROWN FOX?
  518 
  519 /abcd\t\n\r\f\a\e\071\x3b\$\\\?caxyz/
  520     abcd\t\n\r\f\a\e9;\$\\?caxyz
  521 
  522 /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/
  523     abxyzpqrrrabbxyyyypqAzz
  524     abxyzpqrrrabbxyyyypqAzz
  525     aabxyzpqrrrabbxyyyypqAzz
  526     aaabxyzpqrrrabbxyyyypqAzz
  527     aaaabxyzpqrrrabbxyyyypqAzz
  528     abcxyzpqrrrabbxyyyypqAzz
  529     aabcxyzpqrrrabbxyyyypqAzz
  530     aaabcxyzpqrrrabbxyyyypAzz
  531     aaabcxyzpqrrrabbxyyyypqAzz
  532     aaabcxyzpqrrrabbxyyyypqqAzz
  533     aaabcxyzpqrrrabbxyyyypqqqAzz
  534     aaabcxyzpqrrrabbxyyyypqqqqAzz
  535     aaabcxyzpqrrrabbxyyyypqqqqqAzz
  536     aaabcxyzpqrrrabbxyyyypqqqqqqAzz
  537     aaaabcxyzpqrrrabbxyyyypqAzz
  538     abxyzzpqrrrabbxyyyypqAzz
  539     aabxyzzzpqrrrabbxyyyypqAzz
  540     aaabxyzzzzpqrrrabbxyyyypqAzz
  541     aaaabxyzzzzpqrrrabbxyyyypqAzz
  542     abcxyzzpqrrrabbxyyyypqAzz
  543     aabcxyzzzpqrrrabbxyyyypqAzz
  544     aaabcxyzzzzpqrrrabbxyyyypqAzz
  545     aaaabcxyzzzzpqrrrabbxyyyypqAzz
  546     aaaabcxyzzzzpqrrrabbbxyyyypqAzz
  547     aaaabcxyzzzzpqrrrabbbxyyyyypqAzz
  548     aaabcxyzpqrrrabbxyyyypABzz
  549     aaabcxyzpqrrrabbxyyyypABBzz
  550     >>>aaabxyzpqrrrabbxyyyypqAzz
  551     >aaaabxyzpqrrrabbxyyyypqAzz
  552     >>>>abcxyzpqrrrabbxyyyypqAzz
  553     *** Failers
  554     abxyzpqrrabbxyyyypqAzz
  555     abxyzpqrrrrabbxyyyypqAzz
  556     abxyzpqrrrabxyyyypqAzz
  557     aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz
  558     aaaabcxyzzzzpqrrrabbbxyyypqAzz
  559     aaabcxyzpqrrrabbxyyyypqqqqqqqAzz
  560 
  561 /^(abc){1,2}zz/
  562     abczz
  563     abcabczz
  564     *** Failers
  565     zz
  566     abcabcabczz
  567     >>abczz
  568 
  569 /^(b+?|a){1,2}?c/
  570     bc
  571     bbc
  572     bbbc
  573     bac
  574     bbac
  575     aac
  576     abbbbbbbbbbbc
  577     bbbbbbbbbbbac
  578     *** Failers
  579     aaac
  580     abbbbbbbbbbbac
  581 
  582 /^(b+|a){1,2}c/
  583     bc
  584     bbc
  585     bbbc
  586     bac
  587     bbac
  588     aac
  589     abbbbbbbbbbbc
  590     bbbbbbbbbbbac
  591     *** Failers
  592     aaac
  593     abbbbbbbbbbbac
  594 
  595 /^(b+|a){1,2}?bc/
  596     bbc
  597 
  598 /^(b*|ba){1,2}?bc/
  599     babc
  600     bbabc
  601     bababc
  602     *** Failers
  603     bababbc
  604     babababc
  605 
  606 /^(ba|b*){1,2}?bc/
  607     babc
  608     bbabc
  609     bababc
  610     *** Failers
  611     bababbc
  612     babababc
  613 
  614 /^\ca\cA\c[\c{\c:/
  615     \x01\x01\e;z
  616 
  617 /^[ab\]cde]/
  618     athing
  619     bthing
  620     ]thing
  621     cthing
  622     dthing
  623     ething
  624     *** Failers
  625     fthing
  626     [thing
  627     \\thing
  628 
  629 /^[]cde]/
  630     ]thing
  631     cthing
  632     dthing
  633     ething
  634     *** Failers
  635     athing
  636     fthing
  637 
  638 /^[^ab\]cde]/
  639     fthing
  640     [thing
  641     \\thing
  642     *** Failers
  643     athing
  644     bthing
  645     ]thing
  646     cthing
  647     dthing
  648     ething
  649 
  650 /^[^]cde]/
  651     athing
  652     fthing
  653     *** Failers
  654     ]thing
  655     cthing
  656     dthing
  657     ething
  658 
  659 /^\/
  660     
  661 
  662 /^/
  663     
  664 
  665 /^[0-9]+$/
  666     0
  667     1
  668     2
  669     3
  670     4
  671     5
  672     6
  673     7
  674     8
  675     9
  676     10
  677     100
  678     *** Failers
  679     abc
  680 
  681 /^.*nter/
  682     enter
  683     inter
  684     uponter
  685 
  686 /^xxx[0-9]+$/
  687     xxx0
  688     xxx1234
  689     *** Failers
  690     xxx
  691 
  692 /^.+[0-9][0-9][0-9]$/
  693     x123
  694     xx123
  695     123456
  696     *** Failers
  697     123
  698     x1234
  699 
  700 /^.+?[0-9][0-9][0-9]$/
  701     x123
  702     xx123
  703     123456
  704     *** Failers
  705     123
  706     x1234
  707 
  708 /^([^!]+)!(.+)=apquxz\.ixr\.zzz\.ac\.uk$/
  709     abc!pqr=apquxz.ixr.zzz.ac.uk
  710     *** Failers
  711     !pqr=apquxz.ixr.zzz.ac.uk
  712     abc!=apquxz.ixr.zzz.ac.uk
  713     abc!pqr=apquxz:ixr.zzz.ac.uk
  714     abc!pqr=apquxz.ixr.zzz.ac.ukk
  715 
  716 /:/
  717     Well, we need a colon: somewhere
  718     *** Fail if we don't
  719 
  720 /([\da-f:]+)$/i
  721     0abc
  722     abc
  723     fed
  724     E
  725     ::
  726     5f03:12C0::932e
  727     fed def
  728     Any old stuff
  729     *** Failers
  730     0zzz
  731     gzzz
  732     fed\x20
  733     Any old rubbish
  734 
  735 /^.*\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/
  736     .1.2.3
  737     A.12.123.0
  738     *** Failers
  739     .1.2.3333
  740     1.2.3
  741     1234.2.3
  742 
  743 /^(\d+)\s+IN\s+SOA\s+(\S+)\s+(\S+)\s*\(\s*$/
  744     1 IN SOA non-sp1 non-sp2(
  745     1    IN    SOA    non-sp1    non-sp2   (
  746     *** Failers
  747     1IN SOA non-sp1 non-sp2(
  748 
  749 /^[a-zA-Z\d][a-zA-Z\d\-]*(\.[a-zA-Z\d][a-zA-z\d\-]*)*\.$/
  750     a.
  751     Z.
  752     2.
  753     ab-c.pq-r.
  754     sxk.zzz.ac.uk.
  755     x-.y-.
  756     *** Failers
  757     -abc.peq.
  758 
  759 /^\*\.[a-z]([a-z\-\d]*[a-z\d]+)?(\.[a-z]([a-z\-\d]*[a-z\d]+)?)*$/
  760     *.a
  761     *.b0-a
  762     *.c3-b.c
  763     *.c-a.b-c
  764     *** Failers
  765     *.0
  766     *.a-
  767     *.a-b.c-
  768     *.c-a.0-c
  769 
  770 /^(?=ab(de))(abd)(e)/
  771     abde
  772 
  773 /^(?!(ab)de|x)(abd)(f)/
  774     abdf
  775 
  776 /^(?=(ab(cd)))(ab)/
  777     abcd
  778 
  779 /^[\da-f](\.[\da-f])*$/i
  780     a.b.c.d
  781     A.B.C.D
  782     a.b.c.1.2.3.C
  783 
  784 /^\".*\"\s*(;.*)?$/
  785     \"1234\"
  786     \"abcd\" ;
  787     \"\" ; rhubarb
  788     *** Failers
  789     \"1234\" : things
  790 
  791 /^$/
  792     \
  793     *** Failers
  794 
  795 /   ^    a   (?# begins with a)  b\sc (?# then b c) $ (?# then end)/x
  796     ab c
  797     *** Failers
  798     abc
  799     ab cde
  800 
  801 /(?x)   ^    a   (?# begins with a)  b\sc (?# then b c) $ (?# then end)/
  802     ab c
  803     *** Failers
  804     abc
  805     ab cde
  806 
  807 /^   a\ b[c ]d       $/x
  808     a bcd
  809     a b d
  810     *** Failers
  811     abcd
  812     ab d
  813 
  814 /^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$/
  815     abcdefhijklm
  816 
  817 /^(?:a(b(c)))(?:d(e(f)))(?:h(i(j)))(?:k(l(m)))$/
  818     abcdefhijklm
  819 
  820 /^[\w][\W][\s][\S][\d][\D][\b][\n][\c]][\022]/
  821     a+ Z0+\x08\n\x1d\x12
  822 
  823 /^[.^$|()*+?{,}]+/
  824     .^\$(*+)|{?,?}
  825 
  826 /^a*\w/
  827     z
  828     az
  829     aaaz
  830     a
  831     aa
  832     aaaa
  833     a+
  834     aa+
  835 
  836 /^a*?\w/
  837     z
  838     az
  839     aaaz
  840     a
  841     aa
  842     aaaa
  843     a+
  844     aa+
  845 
  846 /^a+\w/
  847     az
  848     aaaz
  849     aa
  850     aaaa
  851     aa+
  852 
  853 /^a+?\w/
  854     az
  855     aaaz
  856     aa
  857     aaaa
  858     aa+
  859 
  860 /^\d{8}\w{2,}/
  861     1234567890
  862     12345678ab
  863     12345678__
  864     *** Failers
  865     1234567
  866 
  867 /^[aeiou\d]{4,5}$/
  868     uoie
  869     1234
  870     12345
  871     aaaaa
  872     *** Failers
  873     123456
  874 
  875 /^[aeiou\d]{4,5}?/
  876     uoie
  877     1234
  878     12345
  879     aaaaa
  880     123456
  881 
  882 /^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]/
  883     From abcd  Mon Sep 01 12:33:02 1997
  884 
  885 /^From\s+\S+\s+([a-zA-Z]{3}\s+){2}\d{1,2}\s+\d\d:\d\d/
  886     From abcd  Mon Sep 01 12:33:02 1997
  887     From abcd  Mon Sep  1 12:33:02 1997
  888     *** Failers
  889     From abcd  Sep 01 12:33:02 1997
  890 
  891 /^12.34/s
  892     12\n34
  893     12\r34
  894 
  895 /\w+(?=\t)/
  896     the quick brown\t fox
  897 
  898 /foo(?!bar)(.*)/
  899     foobar is foolish see?
  900 
  901 /(?:(?!foo)...|^.{0,2})bar(.*)/
  902     foobar crowbar etc
  903     barrel
  904     2barrel
  905     A barrel
  906 
  907 /^(\D*)(?=\d)(?!123)/
  908     abc456
  909     *** Failers
  910     abc123
  911 
  912 /^1234(?# test newlines
  913   inside)/
  914     1234
  915 
  916 /^1234 #comment in extended re
  917   /x
  918     1234
  919 
  920 /#rhubarb
  921   abcd/x
  922     abcd
  923 
  924 /^abcd#rhubarb/x
  925     abcd
  926 
  927 /(?!^)abc/
  928     the abc
  929     *** Failers
  930     abc
  931 
  932 /(?=^)abc/
  933     abc
  934     *** Failers
  935     the abc
  936 
  937 /^[ab]{1,3}(ab*|b)/
  938     aabbbbb
  939 
  940 /^[ab]{1,3}?(ab*|b)/
  941     aabbbbb
  942 
  943 /^[ab]{1,3}?(ab*?|b)/
  944     aabbbbb
  945 
  946 /^[ab]{1,3}(ab*?|b)/
  947     aabbbbb
  948 
  949 /  (?: [\040\t] |  \(
  950 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
  951 \)  )*                          # optional leading comment
  952 (?:    (?:
  953 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
  954 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  955 |
  956 " (?:                      # opening quote...
  957 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
  958 |                     #    or
  959 \\ [^\x80-\xff]           #   Escaped something (something != CR)
  960 )* "  # closing quote
  961 )                    # initial word
  962 (?:  (?: [\040\t] |  \(
  963 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
  964 \)  )*  \.  (?: [\040\t] |  \(
  965 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
  966 \)  )*   (?:
  967 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
  968 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  969 |
  970 " (?:                      # opening quote...
  971 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
  972 |                     #    or
  973 \\ [^\x80-\xff]           #   Escaped something (something != CR)
  974 )* "  # closing quote
  975 )  )* # further okay, if led by a period
  976 (?: [\040\t] |  \(
  977 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
  978 \)  )*  @  (?: [\040\t] |  \(
  979 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
  980 \)  )*    (?:
  981 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
  982 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  983 |   \[                         # [
  984 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
  985 \]                        #           ]
  986 )                           # initial subdomain
  987 (?:                                  #
  988 (?: [\040\t] |  \(
  989 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
  990 \)  )*  \.                        # if led by a period...
  991 (?: [\040\t] |  \(
  992 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
  993 \)  )*   (?:
  994 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
  995 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  996 |   \[                         # [
  997 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
  998 \]                        #           ]
  999 )                     #   ...further okay
 1000 )*
 1001 # address
 1002 |                     #  or
 1003 (?:
 1004 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 1005 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 1006 |
 1007 " (?:                      # opening quote...
 1008 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
 1009 |                     #    or
 1010 \\ [^\x80-\xff]           #   Escaped something (something != CR)
 1011 )* "  # closing quote
 1012 )             # one word, optionally followed by....
 1013 (?:
 1014 [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037]  |  # atom and space parts, or...
 1015 \(
 1016 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
 1017 \)       |  # comments, or...
 1018 
 1019 " (?:                      # opening quote...
 1020 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
 1021 |                     #    or
 1022 \\ [^\x80-\xff]           #   Escaped something (something != CR)
 1023 )* "  # closing quote
 1024 # quoted strings
 1025 )*
 1026 <  (?: [\040\t] |  \(
 1027 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
 1028 \)  )*                     # leading <
 1029 (?:  @  (?: [\040\t] |  \(
 1030 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
 1031 \)  )*    (?:
 1032 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 1033 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 1034 |   \[                         # [
 1035 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
 1036 \]                        #           ]
 1037 )                           # initial subdomain
 1038 (?:                                  #
 1039 (?: [\040\t] |  \(
 1040 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
 1041 \)  )*  \.                        # if led by a period...
 1042 (?: [\040\t] |  \(
 1043 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
 1044 \)  )*   (?:
 1045 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 1046 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 1047 |   \[                         # [
 1048 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
 1049 \]                        #           ]
 1050 )                     #   ...further okay
 1051 )*
 1052 
 1053 (?:  (?: [\040\t] |  \(
 1054 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
 1055 \)  )*  ,  (?: [\040\t] |  \(
 1056 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
 1057 \)  )*  @  (?: [\040\t] |  \(
 1058 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
 1059 \)  )*    (?:
 1060 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 1061 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 1062 |   \[                         # [
 1063 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
 1064 \]                        #           ]
 1065 )                           # initial subdomain
 1066 (?:                                  #
 1067 (?: [\040\t] |  \(
 1068 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
 1069 \)  )*  \.                        # if led by a period...
 1070 (?: [\040\t] |  \(
 1071 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
 1072 \)  )*   (?:
 1073 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 1074 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 1075 |   \[                         # [
 1076 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
 1077 \]                        #           ]
 1078 )                     #   ...further okay
 1079 )*
 1080 )* # further okay, if led by comma
 1081 :                                # closing colon
 1082 (?: [\040\t] |  \(
 1083 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
 1084 \)  )*  )? #       optional route
 1085 (?:
 1086 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 1087 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 1088 |
 1089 " (?:                      # opening quote...
 1090 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
 1091 |                     #    or
 1092 \\ [^\x80-\xff]           #   Escaped something (something != CR)
 1093 )* "  # closing quote
 1094 )                    # initial word
 1095 (?:  (?: [\040\t] |  \(
 1096 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
 1097 \)  )*  \.  (?: [\040\t] |  \(
 1098 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
 1099 \)  )*   (?:
 1100 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 1101 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 1102 |
 1103 " (?:                      # opening quote...
 1104 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
 1105 |                     #    or
 1106 \\ [^\x80-\xff]           #   Escaped something (something != CR)
 1107 )* "  # closing quote
 1108 )  )* # further okay, if led by a period
 1109 (?: [\040\t] |  \(
 1110 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
 1111 \)  )*  @  (?: [\040\t] |  \(
 1112 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
 1113 \)  )*    (?:
 1114 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 1115 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 1116 |   \[                         # [
 1117 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
 1118 \]                        #           ]
 1119 )                           # initial subdomain
 1120 (?:                                  #
 1121 (?: [\040\t] |  \(
 1122 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
 1123 \)  )*  \.                        # if led by a period...
 1124 (?: [\040\t] |  \(
 1125 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
 1126 \)  )*   (?:
 1127 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 1128 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 1129 |   \[                         # [
 1130 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
 1131 \]                        #           ]
 1132 )                     #   ...further okay
 1133 )*
 1134 #       address spec
 1135 (?: [\040\t] |  \(
 1136 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
 1137 \)  )*  > #                  trailing >
 1138 # name and address
 1139 )  (?: [\040\t] |  \(
 1140 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
 1141 \)  )*                       # optional trailing comment
 1142 /x
 1143     Alan Other <user\@dom.ain>
 1144     <user\@dom.ain>
 1145     user\@dom.ain
 1146     \"A. Other\" <user.1234\@dom.ain> (a comment)
 1147     A. Other <user.1234\@dom.ain> (a comment)
 1148     \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay
 1149     A missing angle <user\@some.where
 1150     *** Failers
 1151     The quick brown fox
 1152 
 1153 /[\040\t]*                    # Nab whitespace.
 1154 (?:
 1155 \(                              #  (
 1156 [^\\\x80-\xff\n\015()] *                             #     normal*
 1157 (?:                                 #       (
 1158 (?:  \\ [^\x80-\xff]  |
 1159 \(                            #  (
 1160 [^\\\x80-\xff\n\015()] *                            #     normal*
 1161 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 1162 \)                           #                       )
 1163 )    #         special
 1164 [^\\\x80-\xff\n\015()] *                         #         normal*
 1165 )*                                  #            )*
 1166 \)                             #                )
 1167 [\040\t]* )*    # If comment found, allow more spaces.
 1168 # optional leading comment
 1169 (?:
 1170 (?:
 1171 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 1172 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 1173 # Atom
 1174 |                       #  or
 1175 "                                     # "
 1176 [^\\\x80-\xff\n\015"] *                            #   normal
 1177 (?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
 1178 "                                     #        "
 1179 # Quoted string
 1180 )
 1181 [\040\t]*                    # Nab whitespace.
 1182 (?:
 1183 \(                              #  (
 1184 [^\\\x80-\xff\n\015()] *                             #     normal*
 1185 (?:                                 #       (
 1186 (?:  \\ [^\x80-\xff]  |
 1187 \(                            #  (
 1188 [^\\\x80-\xff\n\015()] *                            #     normal*
 1189 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 1190 \)                           #                       )
 1191 )    #         special
 1192 [^\\\x80-\xff\n\015()] *                         #         normal*
 1193 )*                                  #            )*
 1194 \)                             #                )
 1195 [\040\t]* )*    # If comment found, allow more spaces.
 1196 (?:
 1197 \.
 1198 [\040\t]*                    # Nab whitespace.
 1199 (?:
 1200 \(                              #  (
 1201 [^\\\x80-\xff\n\015()] *                             #     normal*
 1202 (?:                                 #       (
 1203 (?:  \\ [^\x80-\xff]  |
 1204 \(                            #  (
 1205 [^\\\x80-\xff\n\015()] *                            #     normal*
 1206 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 1207 \)                           #                       )
 1208 )    #         special
 1209 [^\\\x80-\xff\n\015()] *                         #         normal*
 1210 )*                                  #            )*
 1211 \)                             #                )
 1212 [\040\t]* )*    # If comment found, allow more spaces.
 1213 (?:
 1214 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 1215 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 1216 # Atom
 1217 |                       #  or
 1218 "                                     # "
 1219 [^\\\x80-\xff\n\015"] *                            #   normal
 1220 (?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
 1221 "                                     #        "
 1222 # Quoted string
 1223 )
 1224 [\040\t]*                    # Nab whitespace.
 1225 (?:
 1226 \(                              #  (
 1227 [^\\\x80-\xff\n\015()] *                             #     normal*
 1228 (?:                                 #       (
 1229 (?:  \\ [^\x80-\xff]  |
 1230 \(                            #  (
 1231 [^\\\x80-\xff\n\015()] *                            #     normal*
 1232 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 1233 \)                           #                       )
 1234 )    #         special
 1235 [^\\\x80-\xff\n\015()] *                         #         normal*
 1236 )*                                  #            )*
 1237 \)                             #                )
 1238 [\040\t]* )*    # If comment found, allow more spaces.
 1239 # additional words
 1240 )*
 1241 @
 1242 [\040\t]*                    # Nab whitespace.
 1243 (?:
 1244 \(                              #  (
 1245 [^\\\x80-\xff\n\015()] *                             #     normal*
 1246 (?:                                 #       (
 1247 (?:  \\ [^\x80-\xff]  |
 1248 \(                            #  (
 1249 [^\\\x80-\xff\n\015()] *                            #     normal*
 1250 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 1251 \)                           #                       )
 1252 )    #         special
 1253 [^\\\x80-\xff\n\015()] *                         #         normal*
 1254 )*                                  #            )*
 1255 \)                             #                )
 1256 [\040\t]* )*    # If comment found, allow more spaces.
 1257 (?:
 1258 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 1259 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 1260 |
 1261 \[                            # [
 1262 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
 1263 \]                           #           ]
 1264 )
 1265 [\040\t]*                    # Nab whitespace.
 1266 (?:
 1267 \(                              #  (
 1268 [^\\\x80-\xff\n\015()] *                             #     normal*
 1269 (?:                                 #       (
 1270 (?:  \\ [^\x80-\xff]  |
 1271 \(                            #  (
 1272 [^\\\x80-\xff\n\015()] *                            #     normal*
 1273 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 1274 \)                           #                       )
 1275 )    #         special
 1276 [^\\\x80-\xff\n\015()] *                         #         normal*
 1277 )*                                  #            )*
 1278 \)                             #                )
 1279 [\040\t]* )*    # If comment found, allow more spaces.
 1280 # optional trailing comments
 1281 (?:
 1282 \.
 1283 [\040\t]*                    # Nab whitespace.
 1284 (?:
 1285 \(                              #  (
 1286 [^\\\x80-\xff\n\015()] *                             #     normal*
 1287 (?:                                 #       (
 1288 (?:  \\ [^\x80-\xff]  |
 1289 \(                            #  (
 1290 [^\\\x80-\xff\n\015()] *                            #     normal*
 1291 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 1292 \)                           #                       )
 1293 )    #         special
 1294 [^\\\x80-\xff\n\015()] *                         #         normal*
 1295 )*                                  #            )*
 1296 \)                             #                )
 1297 [\040\t]* )*    # If comment found, allow more spaces.
 1298 (?:
 1299 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 1300 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 1301 |
 1302 \[                            # [
 1303 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
 1304 \]                           #           ]
 1305 )
 1306 [\040\t]*                    # Nab whitespace.
 1307 (?:
 1308 \(                              #  (
 1309 [^\\\x80-\xff\n\015()] *                             #     normal*
 1310 (?:                                 #       (
 1311 (?:  \\ [^\x80-\xff]  |
 1312 \(                            #  (
 1313 [^\\\x80-\xff\n\015()] *                            #     normal*
 1314 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 1315 \)                           #                       )
 1316 )    #         special
 1317 [^\\\x80-\xff\n\015()] *                         #         normal*
 1318 )*                                  #            )*
 1319 \)                             #                )
 1320 [\040\t]* )*    # If comment found, allow more spaces.
 1321 # optional trailing comments
 1322 )*
 1323 # address
 1324 |                             #  or
 1325 (?:
 1326 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 1327 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 1328 # Atom
 1329 |                       #  or
 1330 "                                     # "
 1331 [^\\\x80-\xff\n\015"] *                            #   normal
 1332 (?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
 1333 "                                     #        "
 1334 # Quoted string
 1335 )
 1336 # leading word
 1337 [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] *               # "normal" atoms and or spaces
 1338 (?:
 1339 (?:
 1340 \(                              #  (
 1341 [^\\\x80-\xff\n\015()] *                             #     normal*
 1342 (?:                                 #       (
 1343 (?:  \\ [^\x80-\xff]  |
 1344 \(                            #  (
 1345 [^\\\x80-\xff\n\015()] *                            #     normal*
 1346 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 1347 \)                           #                       )
 1348 )    #         special
 1349 [^\\\x80-\xff\n\015()] *                         #         normal*
 1350 )*                                  #            )*
 1351 \)                             #                )
 1352 |
 1353 "                                     # "
 1354 [^\\\x80-\xff\n\015"] *                            #   normal
 1355 (?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
 1356 "                                     #        "
 1357 ) # "special" comment or quoted string
 1358 [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] *            #  more "normal"
 1359 )*
 1360 <
 1361 [\040\t]*                    # Nab whitespace.
 1362 (?:
 1363 \(                              #  (
 1364 [^\\\x80-\xff\n\015()] *                             #     normal*
 1365 (?:                                 #       (
 1366 (?:  \\ [^\x80-\xff]  |
 1367 \(                            #  (
 1368 [^\\\x80-\xff\n\015()] *                            #     normal*
 1369 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 1370 \)                           #                       )
 1371 )    #         special
 1372 [^\\\x80-\xff\n\015()] *                         #         normal*
 1373 )*                                  #            )*
 1374 \)                             #                )
 1375 [\040\t]* )*    # If comment found, allow more spaces.
 1376 # <
 1377 (?:
 1378 @
 1379 [\040\t]*                    # Nab whitespace.
 1380 (?:
 1381 \(                              #  (
 1382 [^\\\x80-\xff\n\015()] *                             #     normal*
 1383 (?:                                 #       (
 1384 (?:  \\ [^\x80-\xff]  |
 1385 \(                            #  (
 1386 [^\\\x80-\xff\n\015()] *                            #     normal*
 1387 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 1388 \)                           #                       )
 1389 )    #         special
 1390 [^\\\x80-\xff\n\015()] *                         #         normal*
 1391 )*                                  #            )*
 1392 \)                             #                )
 1393 [\040\t]* )*    # If comment found, allow more spaces.
 1394 (?:
 1395 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 1396 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 1397 |
 1398 \[                            # [
 1399 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
 1400 \]                           #           ]
 1401 )
 1402 [\040\t]*                    # Nab whitespace.
 1403 (?:
 1404 \(                              #  (
 1405 [^\\\x80-\xff\n\015()] *                             #     normal*
 1406 (?:                                 #       (
 1407 (?:  \\ [^\x80-\xff]  |
 1408 \(                            #  (
 1409 [^\\\x80-\xff\n\015()] *                            #     normal*
 1410 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 1411 \)                           #                       )
 1412 )    #         special
 1413 [^\\\x80-\xff\n\015()] *                         #         normal*
 1414 )*                                  #            )*
 1415 \)                             #                )
 1416 [\040\t]* )*    # If comment found, allow more spaces.
 1417 # optional trailing comments
 1418 (?:
 1419 \.
 1420 [\040\t]*                    # Nab whitespace.
 1421 (?:
 1422 \(                              #  (
 1423 [^\\\x80-\xff\n\015()] *                             #     normal*
 1424 (?:                                 #       (
 1425 (?:  \\ [^\x80-\xff]  |
 1426 \(                            #  (
 1427 [^\\\x80-\xff\n\015()] *                            #     normal*
 1428 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 1429 \)                           #                       )
 1430 )    #         special
 1431 [^\\\x80-\xff\n\015()] *                         #         normal*
 1432 )*                                  #            )*
 1433 \)                             #                )
 1434 [\040\t]* )*    # If comment found, allow more spaces.
 1435 (?:
 1436 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 1437 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 1438 |
 1439 \[                            # [
 1440 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
 1441 \]                           #           ]
 1442 )
 1443 [\040\t]*                    # Nab whitespace.
 1444 (?:
 1445 \(                              #  (
 1446 [^\\\x80-\xff\n\015()] *                             #     normal*
 1447 (?:                                 #       (
 1448 (?:  \\ [^\x80-\xff]  |
 1449 \(                            #  (
 1450 [^\\\x80-\xff\n\015()] *                            #     normal*
 1451 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 1452 \)                           #                       )
 1453 )    #         special
 1454 [^\\\x80-\xff\n\015()] *                         #         normal*
 1455 )*                                  #            )*
 1456 \)                             #                )
 1457 [\040\t]* )*    # If comment found, allow more spaces.
 1458 # optional trailing comments
 1459 )*
 1460 (?: ,
 1461 [\040\t]*                    # Nab whitespace.
 1462 (?:
 1463 \(                              #  (
 1464 [^\\\x80-\xff\n\015()] *                             #     normal*
 1465 (?:                                 #       (
 1466 (?:  \\ [^\x80-\xff]  |
 1467 \(                            #  (
 1468 [^\\\x80-\xff\n\015()] *                            #     normal*
 1469 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 1470 \)                           #                       )
 1471 )    #         special
 1472 [^\\\x80-\xff\n\015()] *                         #         normal*
 1473 )*                                  #            )*
 1474 \)                             #                )
 1475 [\040\t]* )*    # If comment found, allow more spaces.
 1476 @
 1477 [\040\t]*                    # Nab whitespace.
 1478 (?:
 1479 \(                              #  (
 1480 [^\\\x80-\xff\n\015()] *                             #     normal*
 1481 (?:                                 #       (
 1482 (?:  \\ [^\x80-\xff]  |
 1483 \(                            #  (
 1484 [^\\\x80-\xff\n\015()] *                            #     normal*
 1485 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 1486 \)                           #                       )
 1487 )    #         special
 1488 [^\\\x80-\xff\n\015()] *                         #         normal*
 1489 )*                                  #            )*
 1490 \)                             #                )
 1491 [\040\t]* )*    # If comment found, allow more spaces.
 1492 (?:
 1493 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 1494 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 1495 |
 1496 \[                            # [
 1497 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
 1498 \]                           #           ]
 1499 )
 1500 [\040\t]*                    # Nab whitespace.
 1501 (?:
 1502 \(                              #  (
 1503 [^\\\x80-\xff\n\015()] *                             #     normal*
 1504 (?:                                 #       (
 1505 (?:  \\ [^\x80-\xff]  |
 1506 \(                            #  (
 1507 [^\\\x80-\xff\n\015()] *                            #     normal*
 1508 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 1509 \)                           #                       )
 1510 )    #         special
 1511 [^\\\x80-\xff\n\015()] *                         #         normal*
 1512 )*                                  #            )*
 1513 \)                             #                )
 1514 [\040\t]* )*    # If comment found, allow more spaces.
 1515 # optional trailing comments
 1516 (?:
 1517 \.
 1518 [\040\t]*                    # Nab whitespace.
 1519 (?:
 1520 \(                              #  (
 1521 [^\\\x80-\xff\n\015()] *                             #     normal*
 1522 (?:                                 #       (
 1523 (?:  \\ [^\x80-\xff]  |
 1524 \(                            #  (
 1525 [^\\\x80-\xff\n\015()] *                            #     normal*
 1526 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 1527 \)                           #                       )
 1528 )    #         special
 1529 [^\\\x80-\xff\n\015()] *                         #         normal*
 1530 )*                                  #            )*
 1531 \)                             #                )
 1532 [\040\t]* )*    # If comment found, allow more spaces.
 1533 (?:
 1534 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 1535 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 1536 |
 1537 \[                            # [
 1538 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
 1539 \]                           #           ]
 1540 )
 1541 [\040\t]*                    # Nab whitespace.
 1542 (?:
 1543 \(                              #  (
 1544 [^\\\x80-\xff\n\015()] *                             #     normal*
 1545 (?:                                 #       (
 1546 (?:  \\ [^\x80-\xff]  |
 1547 \(                            #  (
 1548 [^\\\x80-\xff\n\015()] *                            #     normal*
 1549 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 1550 \)                           #                       )
 1551 )    #         special
 1552 [^\\\x80-\xff\n\015()] *                         #         normal*
 1553 )*                                  #            )*
 1554 \)                             #                )
 1555 [\040\t]* )*    # If comment found, allow more spaces.
 1556 # optional trailing comments
 1557 )*
 1558 )*  # additional domains
 1559 :
 1560 [\040\t]*                    # Nab whitespace.
 1561 (?:
 1562 \(                              #  (
 1563 [^\\\x80-\xff\n\015()] *                             #     normal*
 1564 (?:                                 #       (
 1565 (?:  \\ [^\x80-\xff]  |
 1566 \(                            #  (
 1567 [^\\\x80-\xff\n\015()] *                            #     normal*
 1568 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 1569 \)                           #                       )
 1570 )    #         special
 1571 [^\\\x80-\xff\n\015()] *                         #         normal*
 1572 )*                                  #            )*
 1573 \)                             #                )
 1574 [\040\t]* )*    # If comment found, allow more spaces.
 1575 # optional trailing comments
 1576 )?     #       optional route
 1577 (?:
 1578 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 1579 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 1580 # Atom
 1581 |                       #  or
 1582 "                                     # "
 1583 [^\\\x80-\xff\n\015"] *                            #   normal
 1584 (?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
 1585 "                                     #        "
 1586 # Quoted string
 1587 )
 1588 [\040\t]*                    # Nab whitespace.
 1589 (?:
 1590 \(                              #  (
 1591 [^\\\x80-\xff\n\015()] *                             #     normal*
 1592 (?:                                 #       (
 1593 (?:  \\ [^\x80-\xff]  |
 1594 \(                            #  (
 1595 [^\\\x80-\xff\n\015()] *                            #     normal*
 1596 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 1597 \)                           #                       )
 1598 )    #         special
 1599 [^\\\x80-\xff\n\015()] *                         #         normal*
 1600 )*                                  #            )*
 1601 \)                             #                )
 1602 [\040\t]* )*    # If comment found, allow more spaces.
 1603 (?:
 1604 \.
 1605 [\040\t]*                    # Nab whitespace.
 1606 (?:
 1607 \(                              #  (
 1608 [^\\\x80-\xff\n\015()] *                             #     normal*
 1609 (?:                                 #       (
 1610 (?:  \\ [^\x80-\xff]  |
 1611 \(                            #  (
 1612 [^\\\x80-\xff\n\015()] *                            #     normal*
 1613 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 1614 \)                           #                       )
 1615 )    #         special
 1616 [^\\\x80-\xff\n\015()] *                         #         normal*
 1617 )*                                  #            )*
 1618 \)                             #                )
 1619 [\040\t]* )*    # If comment found, allow more spaces.
 1620 (?:
 1621 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 1622 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 1623 # Atom
 1624 |                       #  or
 1625 "                                     # "
 1626 [^\\\x80-\xff\n\015"] *                            #   normal
 1627 (?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
 1628 "                                     #        "
 1629 # Quoted string
 1630 )
 1631 [\040\t]*                    # Nab whitespace.
 1632 (?:
 1633 \(                              #  (
 1634 [^\\\x80-\xff\n\015()] *                             #     normal*
 1635 (?:                                 #       (
 1636 (?:  \\ [^\x80-\xff]  |
 1637 \(                            #  (
 1638 [^\\\x80-\xff\n\015()] *                            #     normal*
 1639 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 1640 \)                           #                       )
 1641 )    #         special
 1642 [^\\\x80-\xff\n\015()] *                         #         normal*
 1643 )*                                  #            )*
 1644 \)                             #                )
 1645 [\040\t]* )*    # If comment found, allow more spaces.
 1646 # additional words
 1647 )*
 1648 @
 1649 [\040\t]*                    # Nab whitespace.
 1650 (?:
 1651 \(                              #  (
 1652 [^\\\x80-\xff\n\015()] *                             #     normal*
 1653 (?:                                 #       (
 1654 (?:  \\ [^\x80-\xff]  |
 1655 \(                            #  (
 1656 [^\\\x80-\xff\n\015()] *                            #     normal*
 1657 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 1658 \)                           #                       )
 1659 )    #         special
 1660 [^\\\x80-\xff\n\015()] *                         #         normal*
 1661 )*                                  #            )*
 1662 \)                             #                )
 1663 [\040\t]* )*    # If comment found, allow more spaces.
 1664 (?:
 1665 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 1666 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 1667 |
 1668 \[                            # [
 1669 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
 1670 \]                           #           ]
 1671 )
 1672 [\040\t]*                    # Nab whitespace.
 1673 (?:
 1674 \(                              #  (
 1675 [^\\\x80-\xff\n\015()] *                             #     normal*
 1676 (?:                                 #       (
 1677 (?:  \\ [^\x80-\xff]  |
 1678 \(                            #  (
 1679 [^\\\x80-\xff\n\015()] *                            #     normal*
 1680 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 1681 \)                           #                       )
 1682 )    #         special
 1683 [^\\\x80-\xff\n\015()] *                         #         normal*
 1684 )*                                  #            )*
 1685 \)                             #                )
 1686 [\040\t]* )*    # If comment found, allow more spaces.
 1687 # optional trailing comments
 1688 (?:
 1689 \.
 1690 [\040\t]*                    # Nab whitespace.
 1691 (?:
 1692 \(                              #  (
 1693 [^\\\x80-\xff\n\015()] *                             #     normal*
 1694 (?:                                 #       (
 1695 (?:  \\ [^\x80-\xff]  |
 1696 \(                            #  (
 1697 [^\\\x80-\xff\n\015()] *                            #     normal*
 1698 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 1699 \)                           #                       )
 1700 )    #         special
 1701 [^\\\x80-\xff\n\015()] *                         #         normal*
 1702 )*                                  #            )*
 1703 \)                             #                )
 1704 [\040\t]* )*    # If comment found, allow more spaces.
 1705 (?:
 1706 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
 1707 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
 1708 |
 1709 \[                            # [
 1710 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
 1711 \]                           #           ]
 1712 )
 1713 [\040\t]*                    # Nab whitespace.
 1714 (?:
 1715 \(                              #  (
 1716 [^\\\x80-\xff\n\015()] *                             #     normal*
 1717 (?:                                 #       (
 1718 (?:  \\ [^\x80-\xff]  |
 1719 \(                            #  (
 1720 [^\\\x80-\xff\n\015()] *                            #     normal*
 1721 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
 1722 \)                           #                       )
 1723 )    #         special
 1724 [^\\\x80-\xff\n\015()] *                         #         normal*
 1725 )*                                  #            )*
 1726 \)                             #                )
 1727 [\040\t]* )*    # If comment found, allow more spaces.
 1728 # optional trailing comments
 1729 )*
 1730 #       address spec
 1731 >                    #                 >
 1732 # name and address
 1733 )
 1734 /x
 1735     Alan Other <user\@dom.ain>
 1736     <user\@dom.ain>
 1737     user\@dom.ain
 1738     \"A. Other\" <user.1234\@dom.ain> (a comment)
 1739     A. Other <user.1234\@dom.ain> (a comment)
 1740     \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay
 1741     A missing angle <user\@some.where
 1742     *** Failers
 1743     The quick brown fox
 1744 
 1745 /abc\0def\00pqr\000xyz\0000AB/
 1746     abc\0def\00pqr\000xyz\0000AB
 1747     abc456 abc\0def\00pqr\000xyz\0000ABCDE
 1748 
 1749 /abc\x0def\x00pqr\x000xyz\x0000AB/
 1750     abc\x0def\x00pqr\x000xyz\x0000AB
 1751     abc456 abc\x0def\x00pqr\x000xyz\x0000ABCDE
 1752 
 1753 /^[\000-\037]/
 1754     \0A
 1755     \01B
 1756     \037C
 1757 
 1758 /\0*/
 1759     \0\0\0\0
 1760 
 1761 /A\x0{2,3}Z/
 1762     The A\x0\x0Z
 1763     An A\0\x0\0Z
 1764     *** Failers
 1765     A\0Z
 1766     A\0\x0\0\x0Z
 1767 
 1768 /^\s/
 1769     \040abc
 1770     \x0cabc
 1771     \nabc
 1772     \rabc
 1773     \tabc
 1774     *** Failers
 1775     abc
 1776 
 1777 /^a	b
 1778       c/x
 1779     abc
 1780 
 1781 /ab{1,3}bc/
 1782     abbbbc
 1783     abbbc
 1784     abbc
 1785     *** Failers
 1786     abc
 1787     abbbbbc
 1788 
 1789 /([^.]*)\.([^:]*):[T ]+(.*)/
 1790     track1.title:TBlah blah blah
 1791 
 1792 /([^.]*)\.([^:]*):[T ]+(.*)/i
 1793     track1.title:TBlah blah blah
 1794 
 1795 /([^.]*)\.([^:]*):[t ]+(.*)/i
 1796     track1.title:TBlah blah blah
 1797 
 1798 /^[W-c]+$/
 1799     WXY_^abc
 1800     *** Failers
 1801     wxy
 1802 
 1803 /^[W-c]+$/i
 1804     WXY_^abc
 1805     wxy_^ABC
 1806 
 1807 /^[\x3f-\x5F]+$/i
 1808     WXY_^abc
 1809     wxy_^ABC
 1810 
 1811 /^abc$/m
 1812     abc
 1813     qqq\nabc
 1814     abc\nzzz
 1815     qqq\nabc\nzzz
 1816 
 1817 /^abc$/
 1818     abc
 1819     *** Failers
 1820     qqq\nabc
 1821     abc\nzzz
 1822     qqq\nabc\nzzz
 1823 
 1824 /\Aabc\Z/m
 1825     abc
 1826     abc\n 
 1827     *** Failers
 1828     qqq\nabc
 1829     abc\nzzz
 1830     qqq\nabc\nzzz
 1831     
 1832 /\A(.)*\Z/s
 1833     abc\ndef
 1834 
 1835 /\A(.)*\Z/m
 1836     *** Failers
 1837     abc\ndef
 1838 
 1839 /(?:b)|(?::+)/
 1840     b::c
 1841     c::b
 1842 
 1843 /[-az]+/
 1844     az-
 1845     *** Failers
 1846     b
 1847 
 1848 /[az-]+/
 1849     za-
 1850     *** Failers
 1851     b
 1852 
 1853 /[a\-z]+/
 1854     a-z
 1855     *** Failers
 1856     b
 1857 
 1858 /[a-z]+/
 1859     abcdxyz
 1860 
 1861 /[\d-]+/
 1862     12-34
 1863     *** Failers
 1864     aaa
 1865 
 1866 /[\d-z]+/
 1867     12-34z
 1868     *** Failers
 1869     aaa
 1870 
 1871 /\x5c/
 1872     \\
 1873 
 1874 /\x20Z/
 1875     the Zoo
 1876     *** Failers
 1877     Zulu
 1878 
 1879 /ab{3cd/
 1880     ab{3cd
 1881 
 1882 /ab{3,cd/
 1883     ab{3,cd
 1884 
 1885 /ab{3,4a}cd/
 1886     ab{3,4a}cd
 1887 
 1888 /{4,5a}bc/
 1889     {4,5a}bc
 1890 
 1891 /^a.b/<lf>
 1892     a\rb
 1893     *** Failers
 1894     a\nb
 1895 
 1896 /abc$/
 1897     abc
 1898     abc\n
 1899     *** Failers
 1900     abc\ndef
 1901 
 1902 /(abc)\123/
 1903     abc\x53
 1904 
 1905 /(abc)\223/
 1906     abc\x93
 1907 
 1908 /(abc)\323/
 1909     abc\xd3
 1910 
 1911 /(abc)\100/
 1912     abc\x40
 1913     abc\100
 1914 
 1915 /(abc)\1000/
 1916     abc\x400
 1917     abc\x40\x30
 1918     abc\1000
 1919     abc\100\x30
 1920     abc\100\060
 1921     abc\100\60
 1922 
 1923 /abc\81/
 1924     abc\081
 1925     abc\0\x38\x31
 1926 
 1927 /abc\91/
 1928     abc\091
 1929     abc\0\x39\x31
 1930 
 1931 /(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\12\123/
 1932     abcdefghijk\12S
 1933 
 1934 /ab\hdef/
 1935     abhdef
 1936 
 1937 /a{0}bc/
 1938     bc
 1939 
 1940 /(a|(bc)){0,0}?xyz/
 1941     xyz
 1942 
 1943 /abc[\10]de/
 1944     abc\010de
 1945 
 1946 /abc[\1]de/
 1947     abc\1de
 1948 
 1949 /(abc)[\1]de/
 1950     abc\1de
 1951 
 1952 /(?s)a.b/
 1953     a\nb
 1954 
 1955 /^([^a])([^\b])([^c]*)([^d]{3,4})/
 1956     baNOTccccd
 1957     baNOTcccd
 1958     baNOTccd
 1959     bacccd
 1960     *** Failers
 1961     anything
 1962     b\bc   
 1963     baccd
 1964 
 1965 /[^a]/
 1966     Abc
 1967   
 1968 /[^a]/i
 1969     Abc 
 1970 
 1971 /[^a]+/
 1972     AAAaAbc
 1973   
 1974 /[^a]+/i
 1975     AAAaAbc 
 1976 
 1977 /[^a]+/
 1978     bbb\nccc
 1979    
 1980 /[^k]$/
 1981     abc
 1982     *** Failers
 1983     abk   
 1984    
 1985 /[^k]{2,3}$/
 1986     abc
 1987     kbc
 1988     kabc 
 1989     *** Failers
 1990     abk
 1991     akb
 1992     akk 
 1993 
 1994 /^\d{8,}\@.+[^k]$/
 1995     12345678\@a.b.c.d
 1996     123456789\@x.y.z
 1997     *** Failers
 1998     12345678\@x.y.uk
 1999     1234567\@a.b.c.d       
 2000 
 2001 /[^a]/
 2002     aaaabcd
 2003     aaAabcd 
 2004 
 2005 /[^a]/i
 2006     aaaabcd
 2007     aaAabcd 
 2008 
 2009 /[^az]/
 2010     aaaabcd
 2011     aaAabcd 
 2012 
 2013 /[^az]/i
 2014     aaaabcd
 2015     aaAabcd 
 2016 
 2017 /\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/
 2018  \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
 2019 
 2020 /P[^*]TAIRE[^*]{1,6}?LL/
 2021     xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
 2022 
 2023 /P[^*]TAIRE[^*]{1,}?LL/
 2024     xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
 2025 
 2026 /(\.\d\d[1-9]?)\d+/
 2027     1.230003938
 2028     1.875000282   
 2029     1.235  
 2030                   
 2031 /(\.\d\d((?=0)|\d(?=\d)))/
 2032     1.230003938      
 2033     1.875000282
 2034     *** Failers 
 2035     1.235 
 2036     
 2037 /a(?)b/
 2038     ab 
 2039  
 2040 /\b(foo)\s+(\w+)/i
 2041     Food is on the foo table
 2042     
 2043 /foo(.*)bar/
 2044     The food is under the bar in the barn.
 2045     
 2046 /foo(.*?)bar/  
 2047     The food is under the bar in the barn.
 2048 
 2049 /(.*)(\d*)/
 2050     I have 2 numbers: 53147
 2051     
 2052 /(.*)(\d+)/
 2053     I have 2 numbers: 53147
 2054  
 2055 /(.*?)(\d*)/
 2056     I have 2 numbers: 53147
 2057 
 2058 /(.*?)(\d+)/
 2059     I have 2 numbers: 53147
 2060 
 2061 /(.*)(\d+)$/
 2062     I have 2 numbers: 53147
 2063 
 2064 /(.*?)(\d+)$/
 2065     I have 2 numbers: 53147
 2066 
 2067 /(.*)\b(\d+)$/
 2068     I have 2 numbers: 53147
 2069 
 2070 /(.*\D)(\d+)$/
 2071     I have 2 numbers: 53147
 2072 
 2073 /^\D*(?!123)/
 2074     ABC123
 2075      
 2076 /^(\D*)(?=\d)(?!123)/
 2077     ABC445
 2078     *** Failers
 2079     ABC123
 2080     
 2081 /^[W-]46]/
 2082     W46]789 
 2083     -46]789
 2084     *** Failers
 2085     Wall
 2086     Zebra
 2087     42
 2088     [abcd] 
 2089     ]abcd[
 2090        
 2091 /^[W-\]46]/
 2092     W46]789 
 2093     Wall
 2094     Zebra
 2095     Xylophone  
 2096     42
 2097     [abcd] 
 2098     ]abcd[
 2099     \\backslash 
 2100     *** Failers
 2101     -46]789
 2102     well
 2103     
 2104 /\d\d\/\d\d\/\d\d\d\d/
 2105     01/01/2000
 2106 
 2107 /word (?:[a-zA-Z0-9]+ ){0,10}otherword/
 2108   word cat dog elephant mussel cow horse canary baboon snake shark otherword
 2109   word cat dog elephant mussel cow horse canary baboon snake shark
 2110 
 2111 /word (?:[a-zA-Z0-9]+ ){0,300}otherword/
 2112   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
 2113 
 2114 /^(a){0,0}/
 2115     bcd
 2116     abc
 2117     aab     
 2118 
 2119 /^(a){0,1}/
 2120     bcd
 2121     abc
 2122     aab  
 2123 
 2124 /^(a){0,2}/
 2125     bcd
 2126     abc
 2127     aab  
 2128 
 2129 /^(a){0,3}/
 2130     bcd
 2131     abc
 2132     aab
 2133     aaa   
 2134 
 2135 /^(a){0,}/
 2136     bcd
 2137     abc
 2138     aab
 2139     aaa
 2140     aaaaaaaa    
 2141 
 2142 /^(a){1,1}/
 2143     bcd
 2144     abc
 2145     aab  
 2146 
 2147 /^(a){1,2}/
 2148     bcd
 2149     abc
 2150     aab  
 2151 
 2152 /^(a){1,3}/
 2153     bcd
 2154     abc
 2155     aab
 2156     aaa   
 2157 
 2158 /^(a){1,}/
 2159     bcd
 2160     abc
 2161     aab
 2162     aaa
 2163     aaaaaaaa    
 2164 
 2165 /.*\.gif/
 2166     borfle\nbib.gif\nno
 2167 
 2168 /.{0,}\.gif/
 2169     borfle\nbib.gif\nno
 2170 
 2171 /.*\.gif/m
 2172     borfle\nbib.gif\nno
 2173 
 2174 /.*\.gif/s
 2175     borfle\nbib.gif\nno
 2176 
 2177 /.*\.gif/ms
 2178     borfle\nbib.gif\nno
 2179     
 2180 /.*$/
 2181     borfle\nbib.gif\nno
 2182 
 2183 /.*$/m
 2184     borfle\nbib.gif\nno
 2185 
 2186 /.*$/s
 2187     borfle\nbib.gif\nno
 2188 
 2189 /.*$/ms
 2190     borfle\nbib.gif\nno
 2191     
 2192 /.*$/
 2193     borfle\nbib.gif\nno\n
 2194 
 2195 /.*$/m
 2196     borfle\nbib.gif\nno\n
 2197 
 2198 /.*$/s
 2199     borfle\nbib.gif\nno\n
 2200 
 2201 /.*$/ms
 2202     borfle\nbib.gif\nno\n
 2203     
 2204 /(.*X|^B)/
 2205     abcde\n1234Xyz
 2206     BarFoo 
 2207     *** Failers
 2208     abcde\nBar  
 2209 
 2210 /(.*X|^B)/m
 2211     abcde\n1234Xyz
 2212     BarFoo 
 2213     abcde\nBar  
 2214 
 2215 /(.*X|^B)/s
 2216     abcde\n1234Xyz
 2217     BarFoo 
 2218     *** Failers
 2219     abcde\nBar  
 2220 
 2221 /(.*X|^B)/ms
 2222     abcde\n1234Xyz
 2223     BarFoo 
 2224     abcde\nBar  
 2225 
 2226 /(?s)(.*X|^B)/
 2227     abcde\n1234Xyz
 2228     BarFoo 
 2229     *** Failers 
 2230     abcde\nBar  
 2231 
 2232 /(?s:.*X|^B)/
 2233     abcde\n1234Xyz
 2234     BarFoo 
 2235     *** Failers 
 2236     abcde\nBar  
 2237 
 2238 /^.*B/
 2239     **** Failers
 2240     abc\nB
 2241      
 2242 /(?s)^.*B/
 2243     abc\nB
 2244 
 2245 /(?m)^.*B/
 2246     abc\nB
 2247      
 2248 /(?ms)^.*B/
 2249     abc\nB
 2250 
 2251 /(?ms)^B/
 2252     abc\nB
 2253 
 2254 /(?s)B$/
 2255     B\n
 2256 
 2257 /^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/
 2258     123456654321
 2259   
 2260 /^\d\d\d\d\d\d\d\d\d\d\d\d/
 2261     123456654321 
 2262 
 2263 /^[\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d]/
 2264     123456654321
 2265   
 2266 /^[abc]{12}/
 2267     abcabcabcabc
 2268     
 2269 /^[a-c]{12}/
 2270     abcabcabcabc
 2271     
 2272 /^(a|b|c){12}/
 2273     abcabcabcabc 
 2274 
 2275 /^[abcdefghijklmnopqrstuvwxy0123456789]/
 2276     n
 2277     *** Failers 
 2278     z 
 2279 
 2280 /abcde{0,0}/
 2281     abcd
 2282     *** Failers
 2283     abce  
 2284 
 2285 /ab[cd]{0,0}e/
 2286     abe
 2287     *** Failers
 2288     abcde 
 2289     
 2290 /ab(c){0,0}d/
 2291     abd
 2292     *** Failers
 2293     abcd   
 2294 
 2295 /a(b*)/
 2296     a
 2297     ab
 2298     abbbb
 2299     *** Failers
 2300     bbbbb    
 2301     
 2302 /ab\d{0}e/
 2303     abe
 2304     *** Failers
 2305     ab1e   
 2306     
 2307 /"([^\\"]+|\\.)*"/
 2308     the \"quick\" brown fox
 2309     \"the \\\"quick\\\" brown fox\" 
 2310 
 2311 /.*?/g+
 2312     abc
 2313   
 2314 /\b/g+
 2315     abc 
 2316 
 2317 /\b/+g
 2318     abc 
 2319 
 2320 //g
 2321     abc
 2322 
 2323 /<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
 2324   <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>
 2325 
 2326 /a[^a]b/
 2327     acb
 2328     a\nb
 2329     
 2330 /a.b/
 2331     acb
 2332     *** Failers 
 2333     a\nb   
 2334     
 2335 /a[^a]b/s
 2336     acb
 2337     a\nb  
 2338     
 2339 /a.b/s
 2340     acb
 2341     a\nb  
 2342 
 2343 /^(b+?|a){1,2}?c/
 2344     bac
 2345     bbac
 2346     bbbac
 2347     bbbbac
 2348     bbbbbac 
 2349 
 2350 /^(b+|a){1,2}?c/
 2351     bac
 2352     bbac
 2353     bbbac
 2354     bbbbac
 2355     bbbbbac 
 2356     
 2357 /(?!\A)x/m
 2358     x\nb\n
 2359     a\bx\n  
 2360     
 2361 /\x0{ab}/
 2362     \0{ab} 
 2363 
 2364 /(A|B)*?CD/
 2365     CD 
 2366     
 2367 /(A|B)*CD/
 2368     CD 
 2369 
 2370 /(?<!bar)foo/
 2371     foo
 2372     catfood
 2373     arfootle
 2374     rfoosh
 2375     *** Failers
 2376     barfoo
 2377     towbarfoo
 2378 
 2379 /\w{3}(?<!bar)foo/
 2380     catfood
 2381     *** Failers
 2382     foo
 2383     barfoo
 2384     towbarfoo
 2385 
 2386 /(?<=(foo)a)bar/
 2387     fooabar
 2388     *** Failers
 2389     bar
 2390     foobbar
 2391       
 2392 /\Aabc\z/m
 2393     abc
 2394     *** Failers
 2395     abc\n   
 2396     qqq\nabc
 2397     abc\nzzz
 2398     qqq\nabc\nzzz
 2399 
 2400 "(?>.*/)foo"
 2401     /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/it/you/see/
 2402 
 2403 "(?>.*/)foo"
 2404     /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo
 2405 
 2406 /(?>(\.\d\d[1-9]?))\d+/
 2407     1.230003938
 2408     1.875000282
 2409     *** Failers 
 2410     1.235 
 2411 
 2412 /^((?>\w+)|(?>\s+))*$/
 2413     now is the time for all good men to come to the aid of the party
 2414     *** Failers
 2415     this is not a line with only words and spaces!
 2416     
 2417 /(\d+)(\w)/
 2418     12345a
 2419     12345+ 
 2420 
 2421 /((?>\d+))(\w)/
 2422     12345a
 2423     *** Failers
 2424     12345+ 
 2425 
 2426 /(?>a+)b/
 2427     aaab
 2428 
 2429 /((?>a+)b)/
 2430     aaab
 2431 
 2432 /(?>(a+))b/
 2433     aaab
 2434 
 2435 /(?>b)+/
 2436     aaabbbccc
 2437 
 2438 /(?>a+|b+|c+)*c/
 2439     aaabbbbccccd
 2440     
 2441 /(a+|b+|c+)*c/
 2442     aaabbbbccccd
 2443 
 2444 /((?>[^()]+)|\([^()]*\))+/
 2445     ((abc(ade)ufh()()x
 2446     
 2447 /\(((?>[^()]+)|\([^()]+\))+\)/ 
 2448     (abc)
 2449     (abc(def)xyz)
 2450     *** Failers
 2451     ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   
 2452 
 2453 /a(?-i)b/i
 2454     ab
 2455     Ab
 2456     *** Failers 
 2457     aB
 2458     AB
 2459         
 2460 /(a (?x)b c)d e/
 2461     a bcd e
 2462     *** Failers
 2463     a b cd e
 2464     abcd e   
 2465     a bcde 
 2466  
 2467 /(a b(?x)c d (?-x)e f)/
 2468     a bcde f
 2469     *** Failers
 2470     abcdef  
 2471 
 2472 /(a(?i)b)c/
 2473     abc
 2474     aBc
 2475     *** Failers
 2476     abC
 2477     aBC  
 2478     Abc
 2479     ABc
 2480     ABC
 2481     AbC
 2482     
 2483 /a(?i:b)c/
 2484     abc
 2485     aBc
 2486     *** Failers 
 2487     ABC
 2488     abC
 2489     aBC
 2490     
 2491 /a(?i:b)*c/
 2492     aBc
 2493     aBBc
 2494     *** Failers 
 2495     aBC
 2496     aBBC
 2497     
 2498 /a(?=b(?i)c)\w\wd/
 2499     abcd
 2500     abCd
 2501     *** Failers
 2502     aBCd
 2503     abcD     
 2504     
 2505 /(?s-i:more.*than).*million/i
 2506     more than million
 2507     more than MILLION
 2508     more \n than Million 
 2509     *** Failers
 2510     MORE THAN MILLION    
 2511     more \n than \n million 
 2512 
 2513 /(?:(?s-i)more.*than).*million/i
 2514     more than million
 2515     more than MILLION
 2516     more \n than Million 
 2517     *** Failers
 2518     MORE THAN MILLION    
 2519     more \n than \n million 
 2520     
 2521 /(?>a(?i)b+)+c/ 
 2522     abc
 2523     aBbc
 2524     aBBc 
 2525     *** Failers
 2526     Abc
 2527     abAb    
 2528     abbC 
 2529     
 2530 /(?=a(?i)b)\w\wc/
 2531     abc
 2532     aBc
 2533     *** Failers
 2534     Ab 
 2535     abC
 2536     aBC     
 2537     
 2538 /(?<=a(?i)b)(\w\w)c/
 2539     abxxc
 2540     aBxxc
 2541     *** Failers
 2542     Abxxc
 2543     ABxxc
 2544     abxxC      
 2545 
 2546 /^(?(?=abc)\w{3}:|\d\d)$/
 2547     abc:
 2548     12
 2549     *** Failers
 2550     123
 2551     xyz    
 2552 
 2553 /^(?(?!abc)\d\d|\w{3}:)$/
 2554     abc:
 2555     12
 2556     *** Failers
 2557     123
 2558     xyz    
 2559     
 2560 /(?(?<=foo)bar|cat)/
 2561     foobar
 2562     cat
 2563     fcat
 2564     focat   
 2565     *** Failers
 2566     foocat  
 2567 
 2568 /(?(?<!foo)cat|bar)/
 2569     foobar
 2570     cat
 2571     fcat
 2572     focat   
 2573     *** Failers
 2574     foocat  
 2575 
 2576 /(?>a*)*/
 2577     a
 2578     aa
 2579     aaaa
 2580     
 2581 /(abc|)+/
 2582     abc
 2583     abcabc
 2584     abcabcabc
 2585     xyz      
 2586 
 2587 /([a]*)*/
 2588     a
 2589     aaaaa 
 2590  
 2591 /([ab]*)*/
 2592     a
 2593     b
 2594     ababab
 2595     aaaabcde
 2596     bbbb    
 2597  
 2598 /([^a]*)*/
 2599     b
 2600     bbbb
 2601     aaa   
 2602  
 2603 /([^ab]*)*/
 2604     cccc
 2605     abab  
 2606  
 2607 /([a]*?)*/
 2608     a
 2609     aaaa 
 2610  
 2611 /([ab]*?)*/
 2612     a
 2613     b
 2614     abab
 2615     baba   
 2616  
 2617 /([^a]*?)*/
 2618     b
 2619     bbbb
 2620     aaa   
 2621  
 2622 /([^ab]*?)*/
 2623     c
 2624     cccc
 2625     baba   
 2626  
 2627 /(?>a*)*/
 2628     a
 2629     aaabcde 
 2630  
 2631 /((?>a*))*/
 2632     aaaaa
 2633     aabbaa 
 2634  
 2635 /((?>a*?))*/
 2636     aaaaa
 2637     aabbaa 
 2638 
 2639 /(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /x
 2640     12-sep-98
 2641     12-09-98
 2642     *** Failers
 2643     sep-12-98
 2644         
 2645 /(?i:saturday|sunday)/
 2646     saturday
 2647     sunday
 2648     Saturday
 2649     Sunday
 2650     SATURDAY
 2651     SUNDAY
 2652     SunDay
 2653     
 2654 /(a(?i)bc|BB)x/
 2655     abcx
 2656     aBCx
 2657     bbx
 2658     BBx
 2659     *** Failers
 2660     abcX
 2661     aBCX
 2662     bbX
 2663     BBX               
 2664 
 2665 /^([ab](?i)[cd]|[ef])/
 2666     ac
 2667     aC
 2668     bD
 2669     elephant
 2670     Europe 
 2671     frog
 2672     France
 2673     *** Failers
 2674     Africa     
 2675 
 2676 /^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)/
 2677     ab
 2678     aBd
 2679     xy
 2680     xY
 2681     zebra
 2682     Zambesi
 2683     *** Failers
 2684     aCD  
 2685     XY  
 2686 
 2687 /(?<=foo\n)^bar/m
 2688     foo\nbar
 2689     *** Failers
 2690     bar
 2691     baz\nbar   
 2692 
 2693 /(?<=(?<!foo)bar)baz/
 2694     barbaz
 2695     barbarbaz 
 2696     koobarbaz 
 2697     *** Failers
 2698     baz
 2699     foobarbaz 
 2700 
 2701 /The following tests are taken from the Perl 5.005 test suite; some of them/
 2702 /are compatible with 5.004, but I'd rather not have to sort them out./
 2703 
 2704 /abc/
 2705     abc
 2706     xabcy
 2707     ababc
 2708     *** Failers
 2709     xbc
 2710     axc
 2711     abx
 2712 
 2713 /ab*c/
 2714     abc
 2715 
 2716 /ab*bc/
 2717     abc
 2718     abbc
 2719     abbbbc
 2720 
 2721 /.{1}/
 2722     abbbbc
 2723 
 2724 /.{3,4}/
 2725     abbbbc
 2726 
 2727 /ab{0,}bc/
 2728     abbbbc
 2729 
 2730 /ab+bc/
 2731     abbc
 2732     *** Failers
 2733     abc
 2734     abq
 2735 
 2736 /ab{1,}bc/
 2737 
 2738 /ab+bc/
 2739     abbbbc
 2740 
 2741 /ab{1,}bc/
 2742     abbbbc
 2743 
 2744 /ab{1,3}bc/
 2745     abbbbc
 2746 
 2747 /ab{3,4}bc/
 2748     abbbbc
 2749 
 2750 /ab{4,5}bc/
 2751     *** Failers
 2752     abq
 2753     abbbbc
 2754 
 2755 /ab?bc/
 2756     abbc
 2757     abc
 2758 
 2759 /ab{0,1}bc/
 2760     abc
 2761 
 2762 /ab?bc/
 2763 
 2764 /ab?c/
 2765     abc
 2766 
 2767 /ab{0,1}c/
 2768     abc
 2769 
 2770 /^abc$/
 2771     abc
 2772     *** Failers
 2773     abbbbc
 2774     abcc
 2775 
 2776 /^abc/
 2777     abcc
 2778 
 2779 /^abc$/
 2780 
 2781 /abc$/
 2782     aabc
 2783     *** Failers
 2784     aabc
 2785     aabcd
 2786 
 2787 /^/
 2788     abc
 2789 
 2790 /$/
 2791     abc
 2792 
 2793 /a.c/
 2794     abc
 2795     axc
 2796 
 2797 /a.*c/
 2798     axyzc
 2799 
 2800 /a[bc]d/
 2801     abd
 2802     *** Failers
 2803     axyzd
 2804     abc
 2805 
 2806 /a[b-d]e/
 2807     ace
 2808 
 2809 /a[b-d]/
 2810     aac
 2811 
 2812 /a[-b]/
 2813     a-
 2814 
 2815 /a[b-]/
 2816     a-
 2817 
 2818 /a]/
 2819     a]
 2820 
 2821 /a[]]b/
 2822     a]b
 2823 
 2824 /a[^bc]d/
 2825     aed
 2826     *** Failers
 2827     abd
 2828     abd
 2829 
 2830 /a[^-b]c/
 2831     adc
 2832 
 2833 /a[^]b]c/
 2834     adc
 2835     *** Failers
 2836     a-c
 2837     a]c
 2838 
 2839 /\ba\b/
 2840     a-
 2841     -a
 2842     -a-
 2843 
 2844 /\by\b/
 2845     *** Failers
 2846     xy
 2847     yz
 2848     xyz
 2849 
 2850 /\Ba\B/
 2851     *** Failers
 2852     a-
 2853     -a
 2854     -a-
 2855 
 2856 /\By\b/
 2857     xy
 2858 
 2859 /\by\B/
 2860     yz
 2861 
 2862 /\By\B/
 2863     xyz
 2864 
 2865 /\w/
 2866     a
 2867 
 2868 /\W/
 2869     -
 2870     *** Failers
 2871     -
 2872     a
 2873 
 2874 /a\sb/
 2875     a b
 2876 
 2877 /a\Sb/
 2878     a-b
 2879     *** Failers
 2880     a-b
 2881     a b
 2882 
 2883 /\d/
 2884     1
 2885 
 2886 /\D/
 2887     -
 2888     *** Failers
 2889     -
 2890     1
 2891 
 2892 /[\w]/
 2893     a
 2894 
 2895 /[\W]/
 2896     -
 2897     *** Failers
 2898     -
 2899     a
 2900 
 2901 /a[\s]b/
 2902     a b
 2903 
 2904 /a[\S]b/
 2905     a-b
 2906     *** Failers
 2907     a-b
 2908     a b
 2909 
 2910 /[\d]/
 2911     1
 2912 
 2913 /[\D]/
 2914     -
 2915     *** Failers
 2916     -
 2917     1
 2918 
 2919 /ab|cd/
 2920     abc
 2921     abcd
 2922 
 2923 /()ef/
 2924     def
 2925 
 2926 /$b/
 2927 
 2928 /a\(b/
 2929     a(b
 2930 
 2931 /a\(*b/
 2932     ab
 2933     a((b
 2934 
 2935 /a\\b/
 2936     a\b
 2937 
 2938 /((a))/
 2939     abc
 2940 
 2941 /(a)b(c)/
 2942     abc
 2943 
 2944 /a+b+c/
 2945     aabbabc
 2946 
 2947 /a{1,}b{1,}c/
 2948     aabbabc
 2949 
 2950 /a.+?c/
 2951     abcabc
 2952 
 2953 /(a+|b)*/
 2954     ab
 2955 
 2956 /(a+|b){0,}/
 2957     ab
 2958 
 2959 /(a+|b)+/
 2960     ab
 2961 
 2962 /(a+|b){1,}/
 2963     ab
 2964 
 2965 /(a+|b)?/
 2966     ab
 2967 
 2968 /(a+|b){0,1}/
 2969     ab
 2970 
 2971 /[^ab]*/
 2972     cde
 2973 
 2974 /abc/
 2975     *** Failers
 2976     b
 2977     
 2978 
 2979 /a*/
 2980     
 2981 
 2982 /([abc])*d/
 2983     abbbcd
 2984 
 2985 /([abc])*bcd/
 2986     abcd
 2987 
 2988 /a|b|c|d|e/
 2989     e
 2990 
 2991 /(a|b|c|d|e)f/
 2992     ef
 2993 
 2994 /abcd*efg/
 2995     abcdefg
 2996 
 2997 /ab*/
 2998     xabyabbbz
 2999     xayabbbz
 3000 
 3001 /(ab|cd)e/
 3002     abcde
 3003 
 3004 /[abhgefdc]ij/
 3005     hij
 3006 
 3007 /^(ab|cd)e/
 3008 
 3009 /(abc|)ef/
 3010     abcdef
 3011 
 3012 /(a|b)c*d/
 3013     abcd
 3014 
 3015 /(ab|ab*)bc/
 3016     abc
 3017 
 3018 /a([bc]*)c*/
 3019     abc
 3020 
 3021 /a([bc]*)(c*d)/
 3022     abcd
 3023 
 3024 /a([bc]+)(c*d)/
 3025     abcd
 3026 
 3027 /a([bc]*)(c+d)/
 3028     abcd
 3029 
 3030 /a[bcd]*dcdcde/
 3031     adcdcde
 3032 
 3033 /a[bcd]+dcdcde/
 3034     *** Failers
 3035     abcde
 3036     adcdcde
 3037 
 3038 /(ab|a)b*c/
 3039     abc
 3040 
 3041 /((a)(b)c)(d)/
 3042     abcd
 3043 
 3044 /[a-zA-Z_][a-zA-Z0-9_]*/
 3045     alpha
 3046 
 3047 /^a(bc+|b[eh])g|.h$/
 3048     abh
 3049 
 3050 /(bc+d$|ef*g.|h?i(j|k))/
 3051     effgz
 3052     ij
 3053     reffgz
 3054     *** Failers
 3055     effg
 3056     bcdd
 3057 
 3058 /((((((((((a))))))))))/
 3059     a
 3060 
 3061 /(((((((((a)))))))))/
 3062     a
 3063 
 3064 /multiple words of text/
 3065     *** Failers
 3066     aa
 3067     uh-uh
 3068 
 3069 /multiple words/
 3070     multiple words, yeah
 3071 
 3072 /(.*)c(.*)/
 3073     abcde
 3074 
 3075 /\((.*), (.*)\)/
 3076     (a, b)
 3077 
 3078 /[k]/
 3079 
 3080 /abcd/
 3081     abcd
 3082 
 3083 /a(bc)d/
 3084     abcd
 3085 
 3086 /a[-]?c/
 3087     ac
 3088 
 3089 /abc/i
 3090     ABC
 3091     XABCY
 3092     ABABC
 3093     *** Failers
 3094     aaxabxbaxbbx
 3095     XBC
 3096     AXC
 3097     ABX
 3098 
 3099 /ab*c/i
 3100     ABC
 3101 
 3102 /ab*bc/i
 3103     ABC
 3104     ABBC
 3105 
 3106 /ab*?bc/i
 3107     ABBBBC
 3108 
 3109 /ab{0,}?bc/i
 3110     ABBBBC
 3111 
 3112 /ab+?bc/i
 3113     ABBC
 3114 
 3115 /ab+bc/i
 3116     *** Failers
 3117     ABC
 3118     ABQ
 3119 
 3120 /ab{1,}bc/i
 3121 
 3122 /ab+bc/i
 3123     ABBBBC
 3124 
 3125 /ab{1,}?bc/i
 3126     ABBBBC
 3127 
 3128 /ab{1,3}?bc/i
 3129     ABBBBC
 3130 
 3131 /ab{3,4}?bc/i
 3132     ABBBBC
 3133 
 3134 /ab{4,5}?bc/i
 3135     *** Failers
 3136     ABQ
 3137     ABBBBC
 3138 
 3139 /ab??bc/i
 3140     ABBC
 3141     ABC
 3142 
 3143 /ab{0,1}?bc/i
 3144     ABC
 3145 
 3146 /ab??bc/i
 3147 
 3148 /ab??c/i
 3149     ABC
 3150 
 3151 /ab{0,1}?c/i
 3152     ABC
 3153 
 3154 /^abc$/i
 3155     ABC
 3156     *** Failers
 3157     ABBBBC
 3158     ABCC
 3159 
 3160 /^abc/i
 3161     ABCC
 3162 
 3163 /^abc$/i
 3164 
 3165 /abc$/i
 3166     AABC
 3167 
 3168 /^/i
 3169     ABC
 3170 
 3171 /$/i
 3172     ABC
 3173 
 3174 /a.c/i
 3175     ABC
 3176     AXC
 3177 
 3178 /a.*?c/i
 3179     AXYZC
 3180 
 3181 /a.*c/i
 3182     *** Failers
 3183     AABC
 3184     AXYZD
 3185 
 3186 /a[bc]d/i
 3187     ABD
 3188 
 3189 /a[b-d]e/i
 3190     ACE
 3191     *** Failers
 3192     ABC
 3193     ABD
 3194 
 3195 /a[b-d]/i
 3196     AAC
 3197 
 3198 /a[-b]/i
 3199     A-
 3200 
 3201 /a[b-]/i
 3202     A-
 3203 
 3204 /a]/i
 3205     A]
 3206 
 3207 /a[]]b/i
 3208     A]B
 3209 
 3210 /a[^bc]d/i
 3211     AED
 3212 
 3213 /a[^-b]c/i
 3214     ADC
 3215     *** Failers
 3216     ABD
 3217     A-C
 3218 
 3219 /a[^]b]c/i
 3220     ADC
 3221 
 3222 /ab|cd/i
 3223     ABC
 3224     ABCD
 3225 
 3226 /()ef/i
 3227     DEF
 3228 
 3229 /$b/i
 3230     *** Failers
 3231     A]C
 3232     B
 3233 
 3234 /a\(b/i
 3235     A(B
 3236 
 3237 /a\(*b/i
 3238     AB
 3239     A((B
 3240 
 3241 /a\\b/i
 3242     A\B
 3243 
 3244 /((a))/i
 3245     ABC
 3246 
 3247 /(a)b(c)/i
 3248     ABC
 3249 
 3250 /a+b+c/i
 3251     AABBABC
 3252 
 3253 /a{1,}b{1,}c/i
 3254     AABBABC
 3255 
 3256 /a.+?c/i
 3257     ABCABC
 3258 
 3259 /a.*?c/i
 3260     ABCABC
 3261 
 3262 /a.{0,5}?c/i
 3263     ABCABC
 3264 
 3265 /(a+|b)*/i
 3266     AB
 3267 
 3268 /(a+|b){0,}/i
 3269     AB
 3270 
 3271 /(a+|b)+/i
 3272     AB
 3273 
 3274 /(a+|b){1,}/i
 3275     AB
 3276 
 3277 /(a+|b)?/i
 3278     AB
 3279 
 3280 /(a+|b){0,1}/i
 3281     AB
 3282 
 3283 /(a+|b){0,1}?/i
 3284     AB
 3285 
 3286 /[^ab]*/i
 3287     CDE
 3288 
 3289 /abc/i
 3290 
 3291 /a*/i
 3292     
 3293 
 3294 /([abc])*d/i
 3295     ABBBCD
 3296 
 3297 /([abc])*bcd/i
 3298     ABCD
 3299 
 3300 /a|b|c|d|e/i
 3301     E
 3302 
 3303 /(a|b|c|d|e)f/i
 3304     EF
 3305 
 3306 /abcd*efg/i
 3307     ABCDEFG
 3308 
 3309 /ab*/i
 3310     XABYABBBZ
 3311     XAYABBBZ
 3312 
 3313 /(ab|cd)e/i
 3314     ABCDE
 3315 
 3316 /[abhgefdc]ij/i
 3317     HIJ
 3318 
 3319 /^(ab|cd)e/i
 3320     ABCDE
 3321 
 3322 /(abc|)ef/i
 3323     ABCDEF
 3324 
 3325 /(a|b)c*d/i
 3326     ABCD
 3327 
 3328 /(ab|ab*)bc/i
 3329     ABC
 3330 
 3331 /a([bc]*)c*/i
 3332     ABC
 3333 
 3334 /a([bc]*)(c*d)/i
 3335     ABCD
 3336 
 3337 /a([bc]+)(c*d)/i
 3338     ABCD
 3339 
 3340 /a([bc]*)(c+d)/i
 3341     ABCD
 3342 
 3343 /a[bcd]*dcdcde/i
 3344     ADCDCDE
 3345 
 3346 /a[bcd]+dcdcde/i
 3347 
 3348 /(ab|a)b*c/i
 3349     ABC
 3350 
 3351 /((a)(b)c)(d)/i
 3352     ABCD
 3353 
 3354 /[a-zA-Z_][a-zA-Z0-9_]*/i
 3355     ALPHA
 3356 
 3357 /^a(bc+|b[eh])g|.h$/i
 3358     ABH
 3359 
 3360 /(bc+d$|ef*g.|h?i(j|k))/i
 3361     EFFGZ
 3362     IJ
 3363     REFFGZ
 3364     *** Failers
 3365     ADCDCDE
 3366     EFFG
 3367     BCDD
 3368 
 3369 /((((((((((a))))))))))/i
 3370     A
 3371 
 3372 /(((((((((a)))))))))/i
 3373     A
 3374 
 3375 /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))/i
 3376     A
 3377 
 3378 /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/i
 3379     C
 3380 
 3381 /multiple words of text/i
 3382     *** Failers
 3383     AA
 3384     UH-UH
 3385 
 3386 /multiple words/i
 3387     MULTIPLE WORDS, YEAH
 3388 
 3389 /(.*)c(.*)/i
 3390     ABCDE
 3391 
 3392 /\((.*), (.*)\)/i
 3393     (A, B)
 3394 
 3395 /[k]/i
 3396 
 3397 /abcd/i
 3398     ABCD
 3399 
 3400 /a(bc)d/i
 3401     ABCD
 3402 
 3403 /a[-]?c/i
 3404     AC
 3405 
 3406 /a(?!b)./
 3407     abad
 3408 
 3409 /a(?=d)./
 3410     abad
 3411 
 3412 /a(?=c|d)./
 3413     abad
 3414 
 3415 /a(?:b|c|d)(.)/
 3416     ace
 3417 
 3418 /a(?:b|c|d)*(.)/
 3419     ace
 3420 
 3421 /a(?:b|c|d)+?(.)/
 3422     ace
 3423     acdbcdbe
 3424 
 3425 /a(?:b|c|d)+(.)/
 3426     acdbcdbe
 3427 
 3428 /a(?:b|c|d){2}(.)/
 3429     acdbcdbe
 3430 
 3431 /a(?:b|c|d){4,5}(.)/
 3432     acdbcdbe
 3433 
 3434 /a(?:b|c|d){4,5}?(.)/
 3435     acdbcdbe
 3436 
 3437 /((foo)|(bar))*/
 3438     foobar
 3439 
 3440 /a(?:b|c|d){6,7}(.)/
 3441     acdbcdbe
 3442 
 3443 /a(?:b|c|d){6,7}?(.)/
 3444     acdbcdbe
 3445 
 3446 /a(?:b|c|d){5,6}(.)/
 3447     acdbcdbe
 3448 
 3449 /a(?:b|c|d){5,6}?(.)/
 3450     acdbcdbe
 3451 
 3452 /a(?:b|c|d){5,7}(.)/
 3453     acdbcdbe
 3454 
 3455 /a(?:b|c|d){5,7}?(.)/
 3456     acdbcdbe
 3457 
 3458 /a(?:b|(c|e){1,2}?|d)+?(.)/
 3459     ace
 3460 
 3461 /^(.+)?B/
 3462     AB
 3463 
 3464 /^([^a-z])|(\^)$/
 3465     .
 3466 
 3467 /^[<>]&/
 3468     <&OUT
 3469 
 3470 /(?:(f)(o)(o)|(b)(a)(r))*/
 3471     foobar
 3472 
 3473 /(?<=a)b/
 3474     ab
 3475     *** Failers
 3476     cb
 3477     b
 3478 
 3479 /(?<!c)b/
 3480     ab
 3481     b
 3482     b
 3483 
 3484 /(?:..)*a/
 3485     aba
 3486 
 3487 /(?:..)*?a/
 3488     aba
 3489 
 3490 /^(){3,5}/
 3491     abc
 3492 
 3493 /^(a+)*ax/
 3494     aax
 3495 
 3496 /^((a|b)+)*ax/
 3497     aax
 3498 
 3499 /^((a|bc)+)*ax/
 3500     aax
 3501 
 3502 /(a|x)*ab/
 3503     cab
 3504 
 3505 /(a)*ab/
 3506     cab
 3507 
 3508 /(?:(?i)a)b/
 3509     ab
 3510 
 3511 /((?i)a)b/
 3512     ab
 3513 
 3514 /(?:(?i)a)b/
 3515     Ab
 3516 
 3517 /((?i)a)b/
 3518     Ab
 3519 
 3520 /(?:(?i)a)b/
 3521     *** Failers
 3522     cb
 3523     aB
 3524 
 3525 /((?i)a)b/
 3526 
 3527 /(?i:a)b/
 3528     ab
 3529 
 3530 /((?i:a))b/
 3531     ab
 3532 
 3533 /(?i:a)b/
 3534     Ab
 3535 
 3536 /((?i:a))b/
 3537     Ab
 3538 
 3539 /(?i:a)b/
 3540     *** Failers
 3541     aB
 3542     aB
 3543 
 3544 /((?i:a))b/
 3545 
 3546 /(?:(?-i)a)b/i
 3547     ab
 3548 
 3549 /((?-i)a)b/i
 3550     ab
 3551 
 3552 /(?:(?-i)a)b/i
 3553     aB
 3554 
 3555 /((?-i)a)b/i
 3556     aB
 3557 
 3558 /(?:(?-i)a)b/i
 3559     *** Failers
 3560     aB
 3561     Ab
 3562 
 3563 /((?-i)a)b/i
 3564 
 3565 /(?:(?-i)a)b/i
 3566     aB
 3567 
 3568 /((?-i)a)b/i
 3569     aB
 3570 
 3571 /(?:(?-i)a)b/i
 3572     *** Failers
 3573     Ab
 3574     AB
 3575 
 3576 /((?-i)a)b/i
 3577 
 3578 /(?-i:a)b/i
 3579     ab
 3580 
 3581 /((?-i:a))b/i
 3582     ab
 3583 
 3584 /(?-i:a)b/i
 3585     aB
 3586 
 3587 /((?-i:a))b/i
 3588     aB
 3589 
 3590 /(?-i:a)b/i
 3591     *** Failers
 3592     AB
 3593     Ab
 3594 
 3595 /((?-i:a))b/i
 3596 
 3597 /(?-i:a)b/i
 3598     aB
 3599 
 3600 /((?-i:a))b/i
 3601     aB
 3602 
 3603 /(?-i:a)b/i
 3604     *** Failers
 3605     Ab
 3606     AB
 3607 
 3608 /((?-i:a))b/i
 3609 
 3610 /((?-i:a.))b/i
 3611     *** Failers
 3612     AB
 3613     a\nB
 3614 
 3615 /((?s-i:a.))b/i
 3616     a\nB
 3617 
 3618 /(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))/
 3619     cabbbb
 3620 
 3621 /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/
 3622     caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
 3623 
 3624 /foo\w*\d{4}baz/
 3625     foobar1234baz
 3626 
 3627 /x(~~)*(?:(?:F)?)?/
 3628     x~~
 3629 
 3630 /^a(?#xxx){3}c/
 3631     aaac
 3632 
 3633 /^a (?#xxx) (?#yyy) {3}c/x
 3634     aaac
 3635 
 3636 /(?<![cd])b/
 3637     *** Failers
 3638     B\nB
 3639     dbcb
 3640 
 3641 /(?<![cd])[ab]/
 3642     dbaacb
 3643 
 3644 /(?<!(c|d))b/
 3645 
 3646 /(?<!(c|d))[ab]/
 3647     dbaacb
 3648 
 3649 /(?<!cd)[ab]/
 3650     cdaccb
 3651 
 3652 /^(?:a?b?)*$/
 3653     *** Failers
 3654     dbcb
 3655     a--
 3656 
 3657 /((?s)^a(.))((?m)^b$)/
 3658     a\nb\nc\n
 3659 
 3660 /((?m)^b$)/
 3661     a\nb\nc\n
 3662 
 3663 /(?m)^b/
 3664     a\nb\n
 3665 
 3666 /(?m)^(b)/
 3667     a\nb\n
 3668 
 3669 /((?m)^b)/
 3670     a\nb\n
 3671 
 3672 /\n((?m)^b)/
 3673     a\nb\n
 3674 
 3675 /((?s).)c(?!.)/
 3676     a\nb\nc\n
 3677     a\nb\nc\n
 3678 
 3679 /((?s)b.)c(?!.)/
 3680     a\nb\nc\n
 3681     a\nb\nc\n
 3682 
 3683 /^b/
 3684 
 3685 /()^b/
 3686     *** Failers
 3687     a\nb\nc\n
 3688     a\nb\nc\n
 3689 
 3690 /((?m)^b)/
 3691     a\nb\nc\n
 3692 
 3693 /(?(?!a)a|b)/
 3694 
 3695 /(?(?!a)b|a)/
 3696     a
 3697 
 3698 /(?(?=a)b|a)/
 3699     *** Failers
 3700     a
 3701     a
 3702 
 3703 /(?(?=a)a|b)/
 3704     a
 3705 
 3706 /(\w+:)+/
 3707     one:
 3708 
 3709 /$(?<=^(a))/
 3710     a
 3711 
 3712 /([\w:]+::)?(\w+)$/
 3713     abcd
 3714     xy:z:::abcd
 3715 
 3716 /^[^bcd]*(c+)/
 3717     aexycd
 3718 
 3719 /(a*)b+/
 3720     caab
 3721 
 3722 /([\w:]+::)?(\w+)$/
 3723     abcd
 3724     xy:z:::abcd
 3725     *** Failers
 3726     abcd:
 3727     abcd:
 3728 
 3729 /^[^bcd]*(c+)/
 3730     aexycd
 3731 
 3732 /(>a+)ab/
 3733 
 3734 /(?>a+)b/
 3735     aaab
 3736 
 3737 /([[:]+)/
 3738     a:[b]:
 3739 
 3740 /([[=]+)/
 3741     a=[b]=
 3742 
 3743 /([[.]+)/
 3744     a.[b].
 3745 
 3746 /((?>a+)b)/
 3747     aaab
 3748 
 3749 /(?>(a+))b/
 3750     aaab
 3751 
 3752 /((?>[^()]+)|\([^()]*\))+/
 3753     ((abc(ade)ufh()()x
 3754 
 3755 /a\Z/
 3756     *** Failers
 3757     aaab
 3758     a\nb\n
 3759 
 3760 /b\Z/
 3761     a\nb\n
 3762 
 3763 /b\z/
 3764 
 3765 /b\Z/
 3766     a\nb
 3767 
 3768 /b\z/
 3769     a\nb
 3770     *** Failers
 3771     
 3772 /(?>.*)(?<=(abcd|wxyz))/
 3773     alphabetabcd
 3774     endingwxyz
 3775     *** Failers
 3776     a rather long string that doesn't end with one of them
 3777 
 3778 /word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword/
 3779     word cat dog elephant mussel cow horse canary baboon snake shark otherword
 3780     word cat dog elephant mussel cow horse canary baboon snake shark
 3781   
 3782 /word (?>[a-zA-Z0-9]+ ){0,30}otherword/
 3783     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
 3784 
 3785 /(?<=\d{3}(?!999))foo/
 3786     999foo
 3787     123999foo 
 3788     *** Failers
 3789     123abcfoo
 3790     
 3791 /(?<=(?!...999)\d{3})foo/
 3792     999foo
 3793     123999foo 
 3794     *** Failers
 3795     123abcfoo
 3796 
 3797 /(?<=\d{3}(?!999)...)foo/
 3798     123abcfoo
 3799     123456foo 
 3800     *** Failers
 3801     123999foo  
 3802     
 3803 /(?<=\d{3}...)(?<!999)foo/
 3804     123abcfoo   
 3805     123456foo 
 3806     *** Failers
 3807     123999foo  
 3808 
 3809 /((Z)+|A)*/
 3810     ZABCDEFG
 3811 
 3812 /(Z()|A)*/
 3813     ZABCDEFG
 3814 
 3815 /(Z(())|A)*/
 3816     ZABCDEFG
 3817 
 3818 /((?>Z)+|A)*/
 3819     ZABCDEFG
 3820 
 3821 /((?>)+|A)*/
 3822     ZABCDEFG
 3823 
 3824 /a*/g
 3825     abbab
 3826 
 3827 /^[a-\d]/
 3828     abcde
 3829     -things
 3830     0digit
 3831     *** Failers
 3832     bcdef    
 3833 
 3834 /^[\d-a]/
 3835     abcde
 3836     -things
 3837     0digit
 3838     *** Failers
 3839     bcdef    
 3840     
 3841 /[[:space:]]+/
 3842     > \x09\x0a\x0c\x0d\x0b<
 3843      
 3844 /[[:blank:]]+/
 3845     > \x09\x0a\x0c\x0d\x0b<
 3846      
 3847 /[\s]+/
 3848     > \x09\x0a\x0c\x0d\x0b<
 3849      
 3850 /\s+/
 3851     > \x09\x0a\x0c\x0d\x0b<
 3852      
 3853 /ab/x
 3854     ab
 3855 
 3856 /(?!\A)x/m
 3857   a\nxb\n
 3858 
 3859 /(?!^)x/m
 3860   a\nxb\n
 3861 
 3862 /abc\Qabc\Eabc/
 3863     abcabcabc
 3864     
 3865 /abc\Q(*+|\Eabc/
 3866     abc(*+|abc 
 3867 
 3868 /   abc\Q abc\Eabc/x
 3869     abc abcabc
 3870     *** Failers
 3871     abcabcabc  
 3872     
 3873 /abc#comment
 3874     \Q#not comment
 3875     literal\E/x
 3876     abc#not comment\n    literal     
 3877 
 3878 /abc#comment
 3879     \Q#not comment
 3880     literal/x
 3881     abc#not comment\n    literal     
 3882 
 3883 /abc#comment
 3884     \Q#not comment
 3885     literal\E #more comment
 3886     /x
 3887     abc#not comment\n    literal     
 3888 
 3889 /abc#comment
 3890     \Q#not comment
 3891     literal\E #more comment/x
 3892     abc#not comment\n    literal     
 3893 
 3894 /\Qabc\$xyz\E/
 3895     abc\\\$xyz
 3896 
 3897 /\Qabc\E\$\Qxyz\E/
 3898     abc\$xyz
 3899 
 3900 /\Gabc/
 3901     abc
 3902     *** Failers
 3903     xyzabc  
 3904 
 3905 /\Gabc./g
 3906     abc1abc2xyzabc3
 3907 
 3908 /abc./g
 3909     abc1abc2xyzabc3 
 3910 
 3911 /a(?x: b c )d/
 3912     XabcdY
 3913     *** Failers 
 3914     Xa b c d Y 
 3915 
 3916 /((?x)x y z | a b c)/
 3917     XabcY
 3918     AxyzB 
 3919 
 3920 /(?i)AB(?-i)C/
 3921     XabCY
 3922     *** Failers
 3923     XabcY  
 3924 
 3925 /((?i)AB(?-i)C|D)E/
 3926     abCE
 3927     DE
 3928     *** Failers
 3929     abcE
 3930     abCe  
 3931     dE
 3932     De    
 3933 
 3934 /[z\Qa-d]\E]/
 3935     z
 3936     a
 3937     -
 3938     d
 3939     ] 
 3940     *** Failers
 3941     b     
 3942 
 3943 /[\z\C]/
 3944     z
 3945     C 
 3946     
 3947 /\M/
 3948     M 
 3949     
 3950 /(a+)*b/
 3951     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
 3952     
 3953 /(?i)reg(?:ul(?:[a]|ae)r|ex)/
 3954     REGular
 3955     regulaer
 3956     Regex  
 3957     regulr 
 3958 
 3959 /[--]+/
 3960     
 3961     
 3962     
 3963     
 3964 
 3965 /(?<=Z)X./
 3966     \x84XAZXB
 3967 
 3968 /^(?(2)a|(1)(2))+$/
 3969     123a
 3970 
 3971 /(?<=a|bbbb)c/
 3972     ac
 3973     bbbbc
 3974 
 3975 /abc/>testsavedregex
 3976 <testsavedregex
 3977     abc
 3978     *** Failers
 3979     bca
 3980     
 3981 /abc/F>testsavedregex
 3982 <testsavedregex
 3983     abc
 3984     *** Failers
 3985     bca
 3986 
 3987 /(a|b)/S>testsavedregex
 3988 <testsavedregex
 3989     abc
 3990     *** Failers
 3991     def  
 3992     
 3993 /(a|b)/SF>testsavedregex
 3994 <testsavedregex
 3995     abc
 3996     *** Failers
 3997     def  
 3998     
 3999 /line\nbreak/
 4000     this is a line\nbreak
 4001     line one\nthis is a line\nbreak in the second line 
 4002 
 4003 /line\nbreak/f
 4004     this is a line\nbreak
 4005     ** Failers 
 4006     line one\nthis is a line\nbreak in the second line 
 4007 
 4008 /line\nbreak/mf
 4009     this is a line\nbreak
 4010     ** Failers 
 4011     line one\nthis is a line\nbreak in the second line 
 4012 
 4013 /1234/
 4014     123\P
 4015     a4\P\R
 4016 
 4017 /1234/
 4018     123\P
 4019     4\P\R
 4020 
 4021 /^/mg
 4022     a\nb\nc\n
 4023     \ 
 4024     
 4025 /(?<=C\n)^/mg
 4026     A\nC\nC\n 
 4027 
 4028 /(?s)A?B/
 4029     AB
 4030     aB  
 4031 
 4032 /(?s)A*B/
 4033     AB
 4034     aB  
 4035 
 4036 /(?m)A?B/
 4037     AB
 4038     aB  
 4039 
 4040 /(?m)A*B/
 4041     AB
 4042     aB  
 4043 
 4044 /Content-Type\x3A[^\r\n]{6,}/
 4045     Content-Type:xxxxxyyy 
 4046 
 4047 /Content-Type\x3A[^\r\n]{6,}z/
 4048     Content-Type:xxxxxyyyz
 4049 
 4050 /Content-Type\x3A[^a]{6,}/
 4051     Content-Type:xxxyyy 
 4052 
 4053 /Content-Type\x3A[^a]{6,}z/
 4054     Content-Type:xxxyyyz
 4055 
 4056 /^abc/m
 4057     xyz\nabc
 4058     xyz\nabc\<lf>
 4059     xyz\r\nabc\<lf>
 4060     xyz\rabc\<cr>
 4061     xyz\r\nabc\<crlf>
 4062     ** Failers 
 4063     xyz\nabc\<cr>
 4064     xyz\r\nabc\<cr>
 4065     xyz\nabc\<crlf>
 4066     xyz\rabc\<crlf>
 4067     xyz\rabc\<lf>
 4068     
 4069 /abc$/m<lf>
 4070     xyzabc
 4071     xyzabc\n 
 4072     xyzabc\npqr 
 4073     xyzabc\r\<cr> 
 4074     xyzabc\rpqr\<cr> 
 4075     xyzabc\r\n\<crlf> 
 4076     xyzabc\r\npqr\<crlf> 
 4077     ** Failers
 4078     xyzabc\r 
 4079     xyzabc\rpqr 
 4080     xyzabc\r\n 
 4081     xyzabc\r\npqr 
 4082     
 4083 /^abc/m<cr>
 4084     xyz\rabcdef
 4085     xyz\nabcdef\<lf>
 4086     ** Failers  
 4087     xyz\nabcdef
 4088        
 4089 /^abc/m<lf>
 4090     xyz\nabcdef
 4091     xyz\rabcdef\<cr>
 4092     ** Failers  
 4093     xyz\rabcdef
 4094        
 4095 /^abc/m<crlf>
 4096     xyz\r\nabcdef
 4097     xyz\rabcdef\<cr>
 4098     ** Failers  
 4099     xyz\rabcdef
 4100     
 4101 /.*/<lf>
 4102     abc\ndef
 4103     abc\rdef
 4104     abc\r\ndef
 4105     \<cr>abc\ndef
 4106     \<cr>abc\rdef
 4107     \<cr>abc\r\ndef
 4108     \<crlf>abc\ndef
 4109     \<crlf>abc\rdef
 4110     \<crlf>abc\r\ndef
 4111 
 4112 /\w+(.)(.)?def/s
 4113     abc\ndef
 4114     abc\rdef
 4115     abc\r\ndef
 4116 
 4117 /^\w+=.*(\\\n.*)*/
 4118     abc=xyz\\\npqr
 4119 
 4120 /^(a()*)*/
 4121     aaaa
 4122 
 4123 /^(?:a(?:(?:))*)*/
 4124     aaaa
 4125 
 4126 /^(a()+)+/
 4127     aaaa
 4128 
 4129 /^(?:a(?:(?:))+)+/
 4130     aaaa
 4131 
 4132 /(a|)*\d/
 4133   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 4134   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
 4135 
 4136 /(?>a|)*\d/
 4137   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 4138   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
 4139 
 4140 /(?:a|)*\d/
 4141   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 4142   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
 4143 
 4144 /^a.b/<lf>
 4145     a\rb
 4146     a\nb\<cr> 
 4147     ** Failers
 4148     a\nb
 4149     a\nb\<any>
 4150     a\rb\<cr>   
 4151     a\rb\<any>   
 4152 
 4153 /^abc./mgx<any>
 4154     abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 \x{2028}abc8 \x{2029}abc9 JUNK
 4155 
 4156 /abc.$/mgx<any>
 4157     abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7\x{2028} abc8\x{2029} abc9
 4158 
 4159 /^a\Rb/
 4160     a\nb
 4161     a\rb
 4162     a\r\nb
 4163     a\x0bb
 4164     a\x0cb
 4165     a\x85b   
 4166     ** Failers
 4167     a\n\rb    
 4168 
 4169 /^a\R*b/
 4170     ab
 4171     a\nb
 4172     a\rb
 4173     a\r\nb
 4174     a\x0bb
 4175     a\x0cb
 4176     a\x85b   
 4177     a\n\rb    
 4178     a\n\r\x85\x0cb 
 4179 
 4180 /^a\R+b/
 4181     a\nb
 4182     a\rb
 4183     a\r\nb
 4184     a\x0bb
 4185     a\x0cb
 4186     a\x85b   
 4187     a\n\rb    
 4188     a\n\r\x85\x0cb 
 4189     ** Failers
 4190     ab  
 4191     
 4192 /^a\R{1,3}b/
 4193     a\nb
 4194     a\n\rb
 4195     a\n\r\x85b
 4196     a\r\n\r\nb 
 4197     a\r\n\r\n\r\nb 
 4198     a\n\r\n\rb
 4199     a\n\n\r\nb 
 4200     ** Failers
 4201     a\n\n\n\rb
 4202     a\r
 4203 
 4204 /^a[\R]b/
 4205     aRb
 4206     ** Failers
 4207     a\nb  
 4208 
 4209 /.+foo/
 4210     afoo
 4211     ** Failers 
 4212     \r\nfoo 
 4213     \nfoo 
 4214 
 4215 /.+foo/<crlf>
 4216     afoo
 4217     \nfoo 
 4218     ** Failers 
 4219     \r\nfoo 
 4220 
 4221 /.+foo/<any>
 4222     afoo
 4223     ** Failers 
 4224     \nfoo 
 4225     \r\nfoo 
 4226 
 4227 /.+foo/s
 4228     afoo
 4229     \r\nfoo 
 4230     \nfoo 
 4231 
 4232 / End of testinput7 /