"Fossies" - the Fresh Open Source Software Archive

Member "pcre-8.42/testdata/testinput8" (22 Mar 2017, 85111 Bytes) of package /linux/misc/pcre-8.42.tar.bz2:


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

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