testoutput3
上传用户:yhdzpy8989
上传日期:2007-06-13
资源大小:13604k
文件大小:28k
源码类别:

生物技术

开发平台:

C/C++

  1. PCRE version 3.9 02-Jan-2002
  2. /(?<!bar)foo/
  3.     foo
  4.  0: foo
  5.     catfood
  6.  0: foo
  7.     arfootle
  8.  0: foo
  9.     rfoosh
  10.  0: foo
  11.     *** Failers
  12. No match
  13.     barfoo
  14. No match
  15.     towbarfoo
  16. No match
  17. /w{3}(?<!bar)foo/
  18.     catfood
  19.  0: catfoo
  20.     *** Failers
  21. No match
  22.     foo
  23. No match
  24.     barfoo
  25. No match
  26.     towbarfoo
  27. No match
  28. /(?<=(foo)a)bar/
  29.     fooabar
  30.  0: bar
  31.  1: foo
  32.     *** Failers
  33. No match
  34.     bar
  35. No match
  36.     foobbar
  37. No match
  38.       
  39. /Aabcz/m
  40.     abc
  41.  0: abc
  42.     *** Failers
  43. No match
  44.     abcn   
  45. No match
  46.     qqqnabc
  47. No match
  48.     abcnzzz
  49. No match
  50.     qqqnabcnzzz
  51. No match
  52. "(?>.*/)foo"
  53.     /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/it/you/see/
  54. No match
  55. "(?>.*/)foo"
  56.     /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo
  57.  0: /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo
  58. /(?>(.dd[1-9]?))d+/
  59.     1.230003938
  60.  0: .230003938
  61.  1: .23
  62.     1.875000282
  63.  0: .875000282
  64.  1: .875
  65.     *** Failers 
  66. No match
  67.     1.235 
  68. No match
  69. /^((?>w+)|(?>s+))*$/
  70.     now is the time for all good men to come to the aid of the party
  71.  0: now is the time for all good men to come to the aid of the party
  72.  1: party
  73.     *** Failers
  74. No match
  75.     this is not a line with only words and spaces!
  76. No match
  77.     
  78. /(d+)(w)/
  79.     12345a
  80.  0: 12345a
  81.  1: 12345
  82.  2: a
  83.     12345+ 
  84.  0: 12345
  85.  1: 1234
  86.  2: 5
  87. /((?>d+))(w)/
  88.     12345a
  89.  0: 12345a
  90.  1: 12345
  91.  2: a
  92.     *** Failers
  93. No match
  94.     12345+ 
  95. No match
  96. /(?>a+)b/
  97.     aaab
  98.  0: aaab
  99. /((?>a+)b)/
  100.     aaab
  101.  0: aaab
  102.  1: aaab
  103. /(?>(a+))b/
  104.     aaab
  105.  0: aaab
  106.  1: aaa
  107. /(?>b)+/
  108.     aaabbbccc
  109.  0: bbb
  110. /(?>a+|b+|c+)*c/
  111.     aaabbbbccccd
  112.  0: aaabbbbc
  113. /((?>[^()]+)|([^()]*))+/
  114.     ((abc(ade)ufh()()x
  115.  0: abc(ade)ufh()()x
  116.  1: x
  117.     
  118. /(((?>[^()]+)|([^()]+))+)/ 
  119.     (abc)
  120.  0: (abc)
  121.  1: abc
  122.     (abc(def)xyz)
  123.  0: (abc(def)xyz)
  124.  1: xyz
  125.     *** Failers
  126. No match
  127.     ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   
  128. No match
  129. /a(?-i)b/i
  130.     ab
  131.  0: ab
  132.     *** Failers 
  133. No match
  134.     Ab
  135. No match
  136.     aB
  137. No match
  138.     AB
  139. No match
  140.         
  141. /(a (?x)b c)d e/
  142.     a bcd e
  143.  0: a bcd e
  144.  1: a bc
  145.     *** Failers
  146. No match
  147.     a b cd e
  148. No match
  149.     abcd e   
  150. No match
  151.     a bcde 
  152. No match
  153.  
  154. /(a b(?x)c d (?-x)e f)/
  155.     a bcde f
  156.  0: a bcde f
  157.  1: a bcde f
  158.     *** Failers
  159. No match
  160.     abcdef  
  161. No match
  162. /(a(?i)b)c/
  163.     abc
  164.  0: abc
  165.  1: ab
  166.     aBc
  167.  0: aBc
  168.  1: aB
  169.     *** Failers
  170. No match
  171.     abC
  172. No match
  173.     aBC  
  174. No match
  175.     Abc
  176. No match
  177.     ABc
  178. No match
  179.     ABC
  180. No match
  181.     AbC
  182. No match
  183.     
  184. /a(?i:b)c/
  185.     abc
  186.  0: abc
  187.     aBc
  188.  0: aBc
  189.     *** Failers 
  190. No match
  191.     ABC
  192. No match
  193.     abC
  194. No match
  195.     aBC
  196. No match
  197.     
  198. /a(?i:b)*c/
  199.     aBc
  200.  0: aBc
  201.     aBBc
  202.  0: aBBc
  203.     *** Failers 
  204. No match
  205.     aBC
  206. No match
  207.     aBBC
  208. No match
  209.     
  210. /a(?=b(?i)c)wwd/
  211.     abcd
  212.  0: abcd
  213.     abCd
  214.  0: abCd
  215.     *** Failers
  216. No match
  217.     aBCd
  218. No match
  219.     abcD     
  220. No match
  221.     
  222. /(?s-i:more.*than).*million/i
  223.     more than million
  224.  0: more than million
  225.     more than MILLION
  226.  0: more than MILLION
  227.     more n than Million 
  228.  0: more x0a than Million
  229.     *** Failers
  230. No match
  231.     MORE THAN MILLION    
  232. No match
  233.     more n than n million 
  234. No match
  235. /(?:(?s-i)more.*than).*million/i
  236.     more than million
  237.  0: more than million
  238.     more than MILLION
  239.  0: more than MILLION
  240.     more n than Million 
  241.  0: more x0a than Million
  242.     *** Failers
  243. No match
  244.     MORE THAN MILLION    
  245. No match
  246.     more n than n million 
  247. No match
  248.     
  249. /(?>a(?i)b+)+c/ 
  250.     abc
  251.  0: abc
  252.     aBbc
  253.  0: aBbc
  254.     aBBc 
  255.  0: aBBc
  256.     *** Failers
  257. No match
  258.     Abc
  259. No match
  260.     abAb    
  261. No match
  262.     abbC 
  263. No match
  264.     
  265. /(?=a(?i)b)wwc/
  266.     abc
  267.  0: abc
  268.     aBc
  269.  0: aBc
  270.     *** Failers
  271. No match
  272.     Ab 
  273. No match
  274.     abC
  275. No match
  276.     aBC     
  277. No match
  278.     
  279. /(?<=a(?i)b)(ww)c/
  280.     abxxc
  281.  0: xxc
  282.  1: xx
  283.     aBxxc
  284.  0: xxc
  285.  1: xx
  286.     *** Failers
  287. No match
  288.     Abxxc
  289. No match
  290.     ABxxc
  291. No match
  292.     abxxC      
  293. No match
  294. /(?:(a)|b)(?(1)A|B)/
  295.     aA
  296.  0: aA
  297.  1: a
  298.     bB
  299.  0: bB
  300.     *** Failers
  301. No match
  302.     aB
  303. No match
  304.     bA    
  305. No match
  306. /^(a)?(?(1)a|b)+$/
  307.     aa
  308.  0: aa
  309.  1: a
  310.     b
  311.  0: b
  312.     bb  
  313.  0: bb
  314.     *** Failers
  315. No match
  316.     ab   
  317. No match
  318. /^(?(?=abc)w{3}:|dd)$/
  319.     abc:
  320.  0: abc:
  321.     12
  322.  0: 12
  323.     *** Failers
  324. No match
  325.     123
  326. No match
  327.     xyz    
  328. No match
  329. /^(?(?!abc)dd|w{3}:)$/
  330.     abc:
  331.  0: abc:
  332.     12
  333.  0: 12
  334.     *** Failers
  335. No match
  336.     123
  337. No match
  338.     xyz    
  339. No match
  340.     
  341. /(?(?<=foo)bar|cat)/
  342.     foobar
  343.  0: bar
  344.     cat
  345.  0: cat
  346.     fcat
  347.  0: cat
  348.     focat   
  349.  0: cat
  350.     *** Failers
  351. No match
  352.     foocat  
  353. No match
  354. /(?(?<!foo)cat|bar)/
  355.     foobar
  356.  0: bar
  357.     cat
  358.  0: cat
  359.     fcat
  360.  0: cat
  361.     focat   
  362.  0: cat
  363.     *** Failers
  364. No match
  365.     foocat  
  366. No match
  367. /( ( )? [^()]+ (?(1) ) |) /x
  368.     abcd
  369.  0: abcd
  370.     (abcd)
  371.  0: (abcd)
  372.  1: (
  373.     the quick (abcd) fox
  374.  0: the quick 
  375.     (abcd   
  376.  0: abcd
  377. /( ( )? [^()]+ (?(1) ) ) /x
  378.     abcd
  379.  0: abcd
  380.     (abcd)
  381.  0: (abcd)
  382.  1: (
  383.     the quick (abcd) fox
  384.  0: the quick 
  385.     (abcd   
  386.  0: abcd
  387. /^(?(2)a|(1)(2))+$/
  388.     12
  389.  0: 12
  390.  1: 1
  391.  2: 2
  392.     12a
  393.  0: 12a
  394.  1: 1
  395.  2: 2
  396.     12aa
  397.  0: 12aa
  398.  1: 1
  399.  2: 2
  400.     *** Failers
  401. No match
  402.     1234    
  403. No match
  404. /((?i)blah)s+1/
  405.     blah blah
  406.  0: blah blah
  407.  1: blah
  408.     BLAH BLAH
  409.  0: BLAH BLAH
  410.  1: BLAH
  411.     Blah Blah
  412.  0: Blah Blah
  413.  1: Blah
  414.     blaH blaH
  415.  0: blaH blaH
  416.  1: blaH
  417.     *** Failers
  418. No match
  419.     blah BLAH
  420. No match
  421.     Blah blah      
  422. No match
  423.     blaH blah 
  424. No match
  425. /((?i)blah)s+(?i:1)/
  426.     blah blah
  427.  0: blah blah
  428.  1: blah
  429.     BLAH BLAH
  430.  0: BLAH BLAH
  431.  1: BLAH
  432.     Blah Blah
  433.  0: Blah Blah
  434.  1: Blah
  435.     blaH blaH
  436.  0: blaH blaH
  437.  1: blaH
  438.     blah BLAH
  439.  0: blah BLAH
  440.  1: blah
  441.     Blah blah      
  442.  0: Blah blah
  443.  1: Blah
  444.     blaH blah 
  445.  0: blaH blah
  446.  1: blaH
  447. /(?>a*)*/
  448.     a
  449.  0: a
  450.     aa
  451.  0: aa
  452.     aaaa
  453.  0: aaaa
  454.     
  455. /(abc|)+/
  456.     abc
  457.  0: abc
  458.  1: 
  459.     abcabc
  460.  0: abcabc
  461.  1: 
  462.     abcabcabc
  463.  0: abcabcabc
  464.  1: 
  465.     xyz      
  466.  0: 
  467.  1: 
  468. /([a]*)*/
  469.     a
  470.  0: a
  471.  1: 
  472.     aaaaa 
  473.  0: aaaaa
  474.  1: 
  475.  
  476. /([ab]*)*/
  477.     a
  478.  0: a
  479.  1: 
  480.     b
  481.  0: b
  482.  1: 
  483.     ababab
  484.  0: ababab
  485.  1: 
  486.     aaaabcde
  487.  0: aaaab
  488.  1: 
  489.     bbbb    
  490.  0: bbbb
  491.  1: 
  492.  
  493. /([^a]*)*/
  494.     b
  495.  0: b
  496.  1: 
  497.     bbbb
  498.  0: bbbb
  499.  1: 
  500.     aaa   
  501.  0: 
  502.  1: 
  503.  
  504. /([^ab]*)*/
  505.     cccc
  506.  0: cccc
  507.  1: 
  508.     abab  
  509.  0: 
  510.  1: 
  511.  
  512. /([a]*?)*/
  513.     a
  514.  0: 
  515.  1: 
  516.     aaaa 
  517.  0: 
  518.  1: 
  519.  
  520. /([ab]*?)*/
  521.     a
  522.  0: 
  523.  1: 
  524.     b
  525.  0: 
  526.  1: 
  527.     abab
  528.  0: 
  529.  1: 
  530.     baba   
  531.  0: 
  532.  1: 
  533.  
  534. /([^a]*?)*/
  535.     b
  536.  0: 
  537.  1: 
  538.     bbbb
  539.  0: 
  540.  1: 
  541.     aaa   
  542.  0: 
  543.  1: 
  544.  
  545. /([^ab]*?)*/
  546.     c
  547.  0: 
  548.  1: 
  549.     cccc
  550.  0: 
  551.  1: 
  552.     baba   
  553.  0: 
  554.  1: 
  555.  
  556. /(?>a*)*/
  557.     a
  558.  0: a
  559.     aaabcde 
  560.  0: aaa
  561.  
  562. /((?>a*))*/
  563.     aaaaa
  564.  0: aaaaa
  565.  1: 
  566.     aabbaa 
  567.  0: aa
  568.  1: 
  569.  
  570. /((?>a*?))*/
  571.     aaaaa
  572.  0: 
  573.  1: 
  574.     aabbaa 
  575.  0: 
  576.  1: 
  577. /(?(?=[^a-z]+[a-z])  d{2}-[a-z]{3}-d{2}  |  d{2}-d{2}-d{2} ) /x
  578.     12-sep-98
  579.  0: 12-sep-98
  580.     12-09-98
  581.  0: 12-09-98
  582.     *** Failers
  583. No match
  584.     sep-12-98
  585. No match
  586.         
  587. /(?<=(foo))bar1/
  588.     foobarfoo
  589.  0: barfoo
  590.  1: foo
  591.     foobarfootling 
  592.  0: barfoo
  593.  1: foo
  594.     *** Failers
  595. No match
  596.     foobar
  597. No match
  598.     barfoo   
  599. No match
  600. /(?i:saturday|sunday)/
  601.     saturday
  602.  0: saturday
  603.     sunday
  604.  0: sunday
  605.     Saturday
  606.  0: Saturday
  607.     Sunday
  608.  0: Sunday
  609.     SATURDAY
  610.  0: SATURDAY
  611.     SUNDAY
  612.  0: SUNDAY
  613.     SunDay
  614.  0: SunDay
  615.     
  616. /(a(?i)bc|BB)x/
  617.     abcx
  618.  0: abcx
  619.  1: abc
  620.     aBCx
  621.  0: aBCx
  622.  1: aBC
  623.     bbx
  624.  0: bbx
  625.  1: bb
  626.     BBx
  627.  0: BBx
  628.  1: BB
  629.     *** Failers
  630. No match
  631.     abcX
  632. No match
  633.     aBCX
  634. No match
  635.     bbX
  636. No match
  637.     BBX               
  638. No match
  639. /^([ab](?i)[cd]|[ef])/
  640.     ac
  641.  0: ac
  642.  1: ac
  643.     aC
  644.  0: aC
  645.  1: aC
  646.     bD
  647.  0: bD
  648.  1: bD
  649.     elephant
  650.  0: e
  651.  1: e
  652.     Europe 
  653.  0: E
  654.  1: E
  655.     frog
  656.  0: f
  657.  1: f
  658.     France
  659.  0: F
  660.  1: F
  661.     *** Failers
  662. No match
  663.     Africa     
  664. No match
  665. /^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)/
  666.     ab
  667.  0: ab
  668.  1: ab
  669.     aBd
  670.  0: aBd
  671.  1: aBd
  672.     xy
  673.  0: xy
  674.  1: xy
  675.     xY
  676.  0: xY
  677.  1: xY
  678.     zebra
  679.  0: z
  680.  1: z
  681.     Zambesi
  682.  0: Z
  683.  1: Z
  684.     *** Failers
  685. No match
  686.     aCD  
  687. No match
  688.     XY  
  689. No match
  690. /(?<=foon)^bar/m
  691.     foonbar
  692.  0: bar
  693.     *** Failers
  694. No match
  695.     bar
  696. No match
  697.     baznbar   
  698. No match
  699. /(?<=(?<!foo)bar)baz/
  700.     barbaz
  701.  0: baz
  702.     barbarbaz 
  703.  0: baz
  704.     koobarbaz 
  705.  0: baz
  706.     *** Failers
  707. No match
  708.     baz
  709. No match
  710.     foobarbaz 
  711. No match
  712. /The case of aaaaaa is missed out below because I think Perl 5.005_02 gets/
  713. /it wrong; it sets $1 to aaa rather than aa. Compare the following test,/
  714. No match
  715. /where it does set $1 to aa when matching aaaaaa./
  716. No match
  717. /^(a1?){4}$/
  718.     a
  719. No match
  720.     aa
  721. No match
  722.     aaa
  723. No match
  724.     aaaa
  725.  0: aaaa
  726.  1: a
  727.     aaaaa
  728.  0: aaaaa
  729.  1: a
  730.     aaaaaaa
  731.  0: aaaaaaa
  732.  1: a
  733.     aaaaaaaa
  734. No match
  735.     aaaaaaaaa
  736. No match
  737.     aaaaaaaaaa
  738.  0: aaaaaaaaaa
  739.  1: aaaa
  740.     aaaaaaaaaaa
  741. No match
  742.     aaaaaaaaaaaa
  743. No match
  744.     aaaaaaaaaaaaa
  745. No match
  746.     aaaaaaaaaaaaaa
  747. No match
  748.     aaaaaaaaaaaaaaa
  749. No match
  750.     aaaaaaaaaaaaaaaa               
  751. No match
  752. /^(a1?)(a1?)(a2?)(a3?)$/
  753.     a
  754. No match
  755.     aa
  756. No match
  757.     aaa
  758. No match
  759.     aaaa
  760.  0: aaaa
  761.  1: a
  762.  2: a
  763.  3: a
  764.  4: a
  765.     aaaaa
  766.  0: aaaaa
  767.  1: a
  768.  2: aa
  769.  3: a
  770.  4: a
  771.     aaaaaa
  772.  0: aaaaaa
  773.  1: a
  774.  2: aa
  775.  3: a
  776.  4: aa
  777.     aaaaaaa
  778.  0: aaaaaaa
  779.  1: a
  780.  2: aa
  781.  3: aaa
  782.  4: a
  783.     aaaaaaaa
  784. No match
  785.     aaaaaaaaa
  786. No match
  787.     aaaaaaaaaa
  788.  0: aaaaaaaaaa
  789.  1: a
  790.  2: aa
  791.  3: aaa
  792.  4: aaaa
  793.     aaaaaaaaaaa
  794. No match
  795.     aaaaaaaaaaaa
  796. No match
  797.     aaaaaaaaaaaaa
  798. No match
  799.     aaaaaaaaaaaaaa
  800. No match
  801.     aaaaaaaaaaaaaaa
  802. No match
  803.     aaaaaaaaaaaaaaaa               
  804. No match
  805. /The following tests are taken from the Perl 5.005 test suite; some of them/
  806. /are compatible with 5.004, but I'd rather not have to sort them out./
  807. No match
  808. /abc/
  809.     abc
  810.  0: abc
  811.     xabcy
  812.  0: abc
  813.     ababc
  814.  0: abc
  815.     *** Failers
  816. No match
  817.     xbc
  818. No match
  819.     axc
  820. No match
  821.     abx
  822. No match
  823. /ab*c/
  824.     abc
  825.  0: abc
  826. /ab*bc/
  827.     abc
  828.  0: abc
  829.     abbc
  830.  0: abbc
  831.     abbbbc
  832.  0: abbbbc
  833. /.{1}/
  834.     abbbbc
  835.  0: a
  836. /.{3,4}/
  837.     abbbbc
  838.  0: abbb
  839. /ab{0,}bc/
  840.     abbbbc
  841.  0: abbbbc
  842. /ab+bc/
  843.     abbc
  844.  0: abbc
  845.     *** Failers
  846. No match
  847.     abc
  848. No match
  849.     abq
  850. No match
  851. /ab{1,}bc/
  852. /ab+bc/
  853.     abbbbc
  854.  0: abbbbc
  855. /ab{1,}bc/
  856.     abbbbc
  857.  0: abbbbc
  858. /ab{1,3}bc/
  859.     abbbbc
  860.  0: abbbbc
  861. /ab{3,4}bc/
  862.     abbbbc
  863.  0: abbbbc
  864. /ab{4,5}bc/
  865.     *** Failers
  866. No match
  867.     abq
  868. No match
  869.     abbbbc
  870. No match
  871. /ab?bc/
  872.     abbc
  873.  0: abbc
  874.     abc
  875.  0: abc
  876. /ab{0,1}bc/
  877.     abc
  878.  0: abc
  879. /ab?bc/
  880. /ab?c/
  881.     abc
  882.  0: abc
  883. /ab{0,1}c/
  884.     abc
  885.  0: abc
  886. /^abc$/
  887.     abc
  888.  0: abc
  889.     *** Failers
  890. No match
  891.     abbbbc
  892. No match
  893.     abcc
  894. No match
  895. /^abc/
  896.     abcc
  897.  0: abc
  898. /^abc$/
  899. /abc$/
  900.     aabc
  901.  0: abc
  902.     *** Failers
  903. No match
  904.     aabc
  905.  0: abc
  906.     aabcd
  907. No match
  908. /^/
  909.     abc
  910.  0: 
  911. /$/
  912.     abc
  913.  0: 
  914. /a.c/
  915.     abc
  916.  0: abc
  917.     axc
  918.  0: axc
  919. /a.*c/
  920.     axyzc
  921.  0: axyzc
  922. /a[bc]d/
  923.     abd
  924.  0: abd
  925.     *** Failers
  926. No match
  927.     axyzd
  928. No match
  929.     abc
  930. No match
  931. /a[b-d]e/
  932.     ace
  933.  0: ace
  934. /a[b-d]/
  935.     aac
  936.  0: ac
  937. /a[-b]/
  938.     a-
  939.  0: a-
  940. /a[b-]/
  941.     a-
  942.  0: a-
  943. /a]/
  944.     a]
  945.  0: a]
  946. /a[]]b/
  947.     a]b
  948.  0: a]b
  949. /a[^bc]d/
  950.     aed
  951.  0: aed
  952.     *** Failers
  953. No match
  954.     abd
  955. No match
  956.     abd
  957. No match
  958. /a[^-b]c/
  959.     adc
  960.  0: adc
  961. /a[^]b]c/
  962.     adc
  963.  0: adc
  964.     *** Failers
  965. No match
  966.     a-c
  967.  0: a-c
  968.     a]c
  969. No match
  970. /bab/
  971.     a-
  972.  0: a
  973.     -a
  974.  0: a
  975.     -a-
  976.  0: a
  977. /byb/
  978.     *** Failers
  979. No match
  980.     xy
  981. No match
  982.     yz
  983. No match
  984.     xyz
  985. No match
  986. /BaB/
  987.     *** Failers
  988.  0: a
  989.     a-
  990. No match
  991.     -a
  992. No match
  993.     -a-
  994. No match
  995. /Byb/
  996.     xy
  997.  0: y
  998. /byB/
  999.     yz
  1000.  0: y
  1001. /ByB/
  1002.     xyz
  1003.  0: y
  1004. /w/
  1005.     a
  1006.  0: a
  1007. /W/
  1008.     -
  1009.  0: -
  1010.     *** Failers
  1011.  0: *
  1012.     -
  1013.  0: -
  1014.     a
  1015. No match
  1016. /asb/
  1017.     a b
  1018.  0: a b
  1019. /aSb/
  1020.     a-b
  1021.  0: a-b
  1022.     *** Failers
  1023. No match
  1024.     a-b
  1025.  0: a-b
  1026.     a b
  1027. No match
  1028. /d/
  1029.     1
  1030.  0: 1
  1031. /D/
  1032.     -
  1033.  0: -
  1034.     *** Failers
  1035.  0: *
  1036.     -
  1037.  0: -
  1038.     1
  1039. No match
  1040. /[w]/
  1041.     a
  1042.  0: a
  1043. /[W]/
  1044.     -
  1045.  0: -
  1046.     *** Failers
  1047.  0: *
  1048.     -
  1049.  0: -
  1050.     a
  1051. No match
  1052. /a[s]b/
  1053.     a b
  1054.  0: a b
  1055. /a[S]b/
  1056.     a-b
  1057.  0: a-b
  1058.     *** Failers
  1059. No match
  1060.     a-b
  1061.  0: a-b
  1062.     a b
  1063. No match
  1064. /[d]/
  1065.     1
  1066.  0: 1
  1067. /[D]/
  1068.     -
  1069.  0: -
  1070.     *** Failers
  1071.  0: *
  1072.     -
  1073.  0: -
  1074.     1
  1075. No match
  1076. /ab|cd/
  1077.     abc
  1078.  0: ab
  1079.     abcd
  1080.  0: ab
  1081. /()ef/
  1082.     def
  1083.  0: ef
  1084.  1: 
  1085. /$b/
  1086. /a(b/
  1087.     a(b
  1088.  0: a(b
  1089. /a(*b/
  1090.     ab
  1091.  0: ab
  1092.     a((b
  1093.  0: a((b
  1094. /a\b/
  1095.     ab
  1096. No match
  1097. /((a))/
  1098.     abc
  1099.  0: a
  1100.  1: a
  1101.  2: a
  1102. /(a)b(c)/
  1103.     abc
  1104.  0: abc
  1105.  1: a
  1106.  2: c
  1107. /a+b+c/
  1108.     aabbabc
  1109.  0: abc
  1110. /a{1,}b{1,}c/
  1111.     aabbabc
  1112.  0: abc
  1113. /a.+?c/
  1114.     abcabc
  1115.  0: abc
  1116. /(a+|b)*/
  1117.     ab
  1118.  0: ab
  1119.  1: b
  1120. /(a+|b){0,}/
  1121.     ab
  1122.  0: ab
  1123.  1: b
  1124. /(a+|b)+/
  1125.     ab
  1126.  0: ab
  1127.  1: b
  1128. /(a+|b){1,}/
  1129.     ab
  1130.  0: ab
  1131.  1: b
  1132. /(a+|b)?/
  1133.     ab
  1134.  0: a
  1135.  1: a
  1136. /(a+|b){0,1}/
  1137.     ab
  1138.  0: a
  1139.  1: a
  1140. /[^ab]*/
  1141.     cde
  1142.  0: cde
  1143. /abc/
  1144.     *** Failers
  1145. No match
  1146.     b
  1147. No match
  1148.     
  1149. /a*/
  1150.     
  1151. /([abc])*d/
  1152.     abbbcd
  1153.  0: abbbcd
  1154.  1: c
  1155. /([abc])*bcd/
  1156.     abcd
  1157.  0: abcd
  1158.  1: a
  1159. /a|b|c|d|e/
  1160.     e
  1161.  0: e
  1162. /(a|b|c|d|e)f/
  1163.     ef
  1164.  0: ef
  1165.  1: e
  1166. /abcd*efg/
  1167.     abcdefg
  1168.  0: abcdefg
  1169. /ab*/
  1170.     xabyabbbz
  1171.  0: ab
  1172.     xayabbbz
  1173.  0: a
  1174. /(ab|cd)e/
  1175.     abcde
  1176.  0: cde
  1177.  1: cd
  1178. /[abhgefdc]ij/
  1179.     hij
  1180.  0: hij
  1181. /^(ab|cd)e/
  1182. /(abc|)ef/
  1183.     abcdef
  1184.  0: ef
  1185.  1: 
  1186. /(a|b)c*d/
  1187.     abcd
  1188.  0: bcd
  1189.  1: b
  1190. /(ab|ab*)bc/
  1191.     abc
  1192.  0: abc
  1193.  1: a
  1194. /a([bc]*)c*/
  1195.     abc
  1196.  0: abc
  1197.  1: bc
  1198. /a([bc]*)(c*d)/
  1199.     abcd
  1200.  0: abcd
  1201.  1: bc
  1202.  2: d
  1203. /a([bc]+)(c*d)/
  1204.     abcd
  1205.  0: abcd
  1206.  1: bc
  1207.  2: d
  1208. /a([bc]*)(c+d)/
  1209.     abcd
  1210.  0: abcd
  1211.  1: b
  1212.  2: cd
  1213. /a[bcd]*dcdcde/
  1214.     adcdcde
  1215.  0: adcdcde
  1216. /a[bcd]+dcdcde/
  1217.     *** Failers
  1218. No match
  1219.     abcde
  1220. No match
  1221.     adcdcde
  1222. No match
  1223. /(ab|a)b*c/
  1224.     abc
  1225.  0: abc
  1226.  1: ab
  1227. /((a)(b)c)(d)/
  1228.     abcd
  1229.  0: abcd
  1230.  1: abc
  1231.  2: a
  1232.  3: b
  1233.  4: d
  1234. /[a-zA-Z_][a-zA-Z0-9_]*/
  1235.     alpha
  1236.  0: alpha
  1237. /^a(bc+|b[eh])g|.h$/
  1238.     abh
  1239.  0: bh
  1240. /(bc+d$|ef*g.|h?i(j|k))/
  1241.     effgz
  1242.  0: effgz
  1243.  1: effgz
  1244.     ij
  1245.  0: ij
  1246.  1: ij
  1247.  2: j
  1248.     reffgz
  1249.  0: effgz
  1250.  1: effgz
  1251.     *** Failers
  1252. No match
  1253.     effg
  1254. No match
  1255.     bcdd
  1256. No match
  1257. /((((((((((a))))))))))/
  1258.     a
  1259.  0: a
  1260.  1: a
  1261.  2: a
  1262.  3: a
  1263.  4: a
  1264.  5: a
  1265.  6: a
  1266.  7: a
  1267.  8: a
  1268.  9: a
  1269. 10: a
  1270. /((((((((((a))))))))))10/
  1271.     aa
  1272.  0: aa
  1273.  1: a
  1274.  2: a
  1275.  3: a
  1276.  4: a
  1277.  5: a
  1278.  6: a
  1279.  7: a
  1280.  8: a
  1281.  9: a
  1282. 10: a
  1283. /(((((((((a)))))))))/
  1284.     a
  1285.  0: a
  1286.  1: a
  1287.  2: a
  1288.  3: a
  1289.  4: a
  1290.  5: a
  1291.  6: a
  1292.  7: a
  1293.  8: a
  1294.  9: a
  1295. /multiple words of text/
  1296.     *** Failers
  1297. No match
  1298.     aa
  1299. No match
  1300.     uh-uh
  1301. No match
  1302. /multiple words/
  1303.     multiple words, yeah
  1304.  0: multiple words
  1305. /(.*)c(.*)/
  1306.     abcde
  1307.  0: abcde
  1308.  1: ab
  1309.  2: de
  1310. /((.*), (.*))/
  1311.     (a, b)
  1312.  0: (a, b)
  1313.  1: a
  1314.  2: b
  1315. /[k]/
  1316. /abcd/
  1317.     abcd
  1318.  0: abcd
  1319. /a(bc)d/
  1320.     abcd
  1321.  0: abcd
  1322.  1: bc
  1323. /a[-]?c/
  1324.     ac
  1325.  0: ac
  1326. /(abc)1/
  1327.     abcabc
  1328.  0: abcabc
  1329.  1: abc
  1330. /([a-c]*)1/
  1331.     abcabc
  1332.  0: abcabc
  1333.  1: abc
  1334. /(a)|1/
  1335.     a
  1336.  0: a
  1337.  1: a
  1338.     *** Failers
  1339.  0: a
  1340.  1: a
  1341.     ab
  1342.  0: a
  1343.  1: a
  1344.     x
  1345. No match
  1346. /(([a-c])b*?2)*/
  1347.     ababbbcbc
  1348.  0: ababb
  1349.  1: bb
  1350.  2: b
  1351. /(([a-c])b*?2){3}/
  1352.     ababbbcbc
  1353.  0: ababbbcbc
  1354.  1: cbc
  1355.  2: c
  1356. /((3|b)2(a)x)+/
  1357.     aaaxabaxbaaxbbax
  1358.  0: bbax
  1359.  1: bbax
  1360.  2: b
  1361.  3: a
  1362. /((3|b)2(a)){2,}/
  1363.     bbaababbabaaaaabbaaaabba
  1364.  0: bbaaaabba
  1365.  1: bba
  1366.  2: b
  1367.  3: a
  1368. /abc/i
  1369.     ABC
  1370.  0: ABC
  1371.     XABCY
  1372.  0: ABC
  1373.     ABABC
  1374.  0: ABC
  1375.     *** Failers
  1376. No match
  1377.     aaxabxbaxbbx
  1378. No match
  1379.     XBC
  1380. No match
  1381.     AXC
  1382. No match
  1383.     ABX
  1384. No match
  1385. /ab*c/i
  1386.     ABC
  1387.  0: ABC
  1388. /ab*bc/i
  1389.     ABC
  1390.  0: ABC
  1391.     ABBC
  1392.  0: ABBC
  1393. /ab*?bc/i
  1394.     ABBBBC
  1395.  0: ABBBBC
  1396. /ab{0,}?bc/i
  1397.     ABBBBC
  1398.  0: ABBBBC
  1399. /ab+?bc/i
  1400.     ABBC
  1401.  0: ABBC
  1402. /ab+bc/i
  1403.     *** Failers
  1404. No match
  1405.     ABC
  1406. No match
  1407.     ABQ
  1408. No match
  1409. /ab{1,}bc/i
  1410. /ab+bc/i
  1411.     ABBBBC
  1412.  0: ABBBBC
  1413. /ab{1,}?bc/i
  1414.     ABBBBC
  1415.  0: ABBBBC
  1416. /ab{1,3}?bc/i
  1417.     ABBBBC
  1418.  0: ABBBBC
  1419. /ab{3,4}?bc/i
  1420.     ABBBBC
  1421.  0: ABBBBC
  1422. /ab{4,5}?bc/i
  1423.     *** Failers
  1424. No match
  1425.     ABQ
  1426. No match
  1427.     ABBBBC
  1428. No match
  1429. /ab??bc/i
  1430.     ABBC
  1431.  0: ABBC
  1432.     ABC
  1433.  0: ABC
  1434. /ab{0,1}?bc/i
  1435.     ABC
  1436.  0: ABC
  1437. /ab??bc/i
  1438. /ab??c/i
  1439.     ABC
  1440.  0: ABC
  1441. /ab{0,1}?c/i
  1442.     ABC
  1443.  0: ABC
  1444. /^abc$/i
  1445.     ABC
  1446.  0: ABC
  1447.     *** Failers
  1448. No match
  1449.     ABBBBC
  1450. No match
  1451.     ABCC
  1452. No match
  1453. /^abc/i
  1454.     ABCC
  1455.  0: ABC
  1456. /^abc$/i
  1457. /abc$/i
  1458.     AABC
  1459.  0: ABC
  1460. /^/i
  1461.     ABC
  1462.  0: 
  1463. /$/i
  1464.     ABC
  1465.  0: 
  1466. /a.c/i
  1467.     ABC
  1468.  0: ABC
  1469.     AXC
  1470.  0: AXC
  1471. /a.*?c/i
  1472.     AXYZC
  1473.  0: AXYZC
  1474. /a.*c/i
  1475.     *** Failers
  1476. No match
  1477.     AABC
  1478.  0: AABC
  1479.     AXYZD
  1480. No match
  1481. /a[bc]d/i
  1482.     ABD
  1483.  0: ABD
  1484. /a[b-d]e/i
  1485.     ACE
  1486.  0: ACE
  1487.     *** Failers
  1488. No match
  1489.     ABC
  1490. No match
  1491.     ABD
  1492. No match
  1493. /a[b-d]/i
  1494.     AAC
  1495.  0: AC
  1496. /a[-b]/i
  1497.     A-
  1498.  0: A-
  1499. /a[b-]/i
  1500.     A-
  1501.  0: A-
  1502. /a]/i
  1503.     A]
  1504.  0: A]
  1505. /a[]]b/i
  1506.     A]B
  1507.  0: A]B
  1508. /a[^bc]d/i
  1509.     AED
  1510.  0: AED
  1511. /a[^-b]c/i
  1512.     ADC
  1513.  0: ADC
  1514.     *** Failers
  1515. No match
  1516.     ABD
  1517. No match
  1518.     A-C
  1519. No match
  1520. /a[^]b]c/i
  1521.     ADC
  1522.  0: ADC
  1523. /ab|cd/i
  1524.     ABC
  1525.  0: AB
  1526.     ABCD
  1527.  0: AB
  1528. /()ef/i
  1529.     DEF
  1530.  0: EF
  1531.  1: 
  1532. /$b/i
  1533.     *** Failers
  1534. No match
  1535.     A]C
  1536. No match
  1537.     B
  1538. No match
  1539. /a(b/i
  1540.     A(B
  1541.  0: A(B
  1542. /a(*b/i
  1543.     AB
  1544.  0: AB
  1545.     A((B
  1546.  0: A((B
  1547. /a\b/i
  1548.     AB
  1549. No match
  1550. /((a))/i
  1551.     ABC
  1552.  0: A
  1553.  1: A
  1554.  2: A
  1555. /(a)b(c)/i
  1556.     ABC
  1557.  0: ABC
  1558.  1: A
  1559.  2: C
  1560. /a+b+c/i
  1561.     AABBABC
  1562.  0: ABC
  1563. /a{1,}b{1,}c/i
  1564.     AABBABC
  1565.  0: ABC
  1566. /a.+?c/i
  1567.     ABCABC
  1568.  0: ABC
  1569. /a.*?c/i
  1570.     ABCABC
  1571.  0: ABC
  1572. /a.{0,5}?c/i
  1573.     ABCABC
  1574.  0: ABC
  1575. /(a+|b)*/i
  1576.     AB
  1577.  0: AB
  1578.  1: B
  1579. /(a+|b){0,}/i
  1580.     AB
  1581.  0: AB
  1582.  1: B
  1583. /(a+|b)+/i
  1584.     AB
  1585.  0: AB
  1586.  1: B
  1587. /(a+|b){1,}/i
  1588.     AB
  1589.  0: AB
  1590.  1: B
  1591. /(a+|b)?/i
  1592.     AB
  1593.  0: A
  1594.  1: A
  1595. /(a+|b){0,1}/i
  1596.     AB
  1597.  0: A
  1598.  1: A
  1599. /(a+|b){0,1}?/i
  1600.     AB
  1601.  0: 
  1602. /[^ab]*/i
  1603.     CDE
  1604.  0: CDE
  1605. /abc/i
  1606. /a*/i
  1607.     
  1608. /([abc])*d/i
  1609.     ABBBCD
  1610.  0: ABBBCD
  1611.  1: C
  1612. /([abc])*bcd/i
  1613.     ABCD
  1614.  0: ABCD
  1615.  1: A
  1616. /a|b|c|d|e/i
  1617.     E
  1618.  0: E
  1619. /(a|b|c|d|e)f/i
  1620.     EF
  1621.  0: EF
  1622.  1: E
  1623. /abcd*efg/i
  1624.     ABCDEFG
  1625.  0: ABCDEFG
  1626. /ab*/i
  1627.     XABYABBBZ
  1628.  0: AB
  1629.     XAYABBBZ
  1630.  0: A
  1631. /(ab|cd)e/i
  1632.     ABCDE
  1633.  0: CDE
  1634.  1: CD
  1635. /[abhgefdc]ij/i
  1636.     HIJ
  1637.  0: HIJ
  1638. /^(ab|cd)e/i
  1639.     ABCDE
  1640. No match
  1641. /(abc|)ef/i
  1642.     ABCDEF
  1643.  0: EF
  1644.  1: 
  1645. /(a|b)c*d/i
  1646.     ABCD
  1647.  0: BCD
  1648.  1: B
  1649. /(ab|ab*)bc/i
  1650.     ABC
  1651.  0: ABC
  1652.  1: A
  1653. /a([bc]*)c*/i
  1654.     ABC
  1655.  0: ABC
  1656.  1: BC
  1657. /a([bc]*)(c*d)/i
  1658.     ABCD
  1659.  0: ABCD
  1660.  1: BC
  1661.  2: D
  1662. /a([bc]+)(c*d)/i
  1663.     ABCD
  1664.  0: ABCD
  1665.  1: BC
  1666.  2: D
  1667. /a([bc]*)(c+d)/i
  1668.     ABCD
  1669.  0: ABCD
  1670.  1: B
  1671.  2: CD
  1672. /a[bcd]*dcdcde/i
  1673.     ADCDCDE
  1674.  0: ADCDCDE
  1675. /a[bcd]+dcdcde/i
  1676. /(ab|a)b*c/i
  1677.     ABC
  1678.  0: ABC
  1679.  1: AB
  1680. /((a)(b)c)(d)/i
  1681.     ABCD
  1682.  0: ABCD
  1683.  1: ABC
  1684.  2: A
  1685.  3: B
  1686.  4: D
  1687. /[a-zA-Z_][a-zA-Z0-9_]*/i
  1688.     ALPHA
  1689.  0: ALPHA
  1690. /^a(bc+|b[eh])g|.h$/i
  1691.     ABH
  1692.  0: BH
  1693. /(bc+d$|ef*g.|h?i(j|k))/i
  1694.     EFFGZ
  1695.  0: EFFGZ
  1696.  1: EFFGZ
  1697.     IJ
  1698.  0: IJ
  1699.  1: IJ
  1700.  2: J
  1701.     REFFGZ
  1702.  0: EFFGZ
  1703.  1: EFFGZ
  1704.     *** Failers
  1705. No match
  1706.     ADCDCDE
  1707. No match
  1708.     EFFG
  1709. No match
  1710.     BCDD
  1711. No match
  1712. /((((((((((a))))))))))/i
  1713.     A
  1714.  0: A
  1715.  1: A
  1716.  2: A
  1717.  3: A
  1718.  4: A
  1719.  5: A
  1720.  6: A
  1721.  7: A
  1722.  8: A
  1723.  9: A
  1724. 10: A
  1725. /((((((((((a))))))))))10/i
  1726.     AA
  1727.  0: AA
  1728.  1: A
  1729.  2: A
  1730.  3: A
  1731.  4: A
  1732.  5: A
  1733.  6: A
  1734.  7: A
  1735.  8: A
  1736.  9: A
  1737. 10: A
  1738. /(((((((((a)))))))))/i
  1739.     A
  1740.  0: A
  1741.  1: A
  1742.  2: A
  1743.  3: A
  1744.  4: A
  1745.  5: A
  1746.  6: A
  1747.  7: A
  1748.  8: A
  1749.  9: A
  1750. /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))/i
  1751.     A
  1752.  0: A
  1753.  1: A
  1754. /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/i
  1755.     C
  1756.  0: C
  1757.  1: C
  1758. /multiple words of text/i
  1759.     *** Failers
  1760. No match
  1761.     AA
  1762. No match
  1763.     UH-UH
  1764. No match
  1765. /multiple words/i
  1766.     MULTIPLE WORDS, YEAH
  1767.  0: MULTIPLE WORDS
  1768. /(.*)c(.*)/i
  1769.     ABCDE
  1770.  0: ABCDE
  1771.  1: AB
  1772.  2: DE
  1773. /((.*), (.*))/i
  1774.     (A, B)
  1775.  0: (A, B)
  1776.  1: A
  1777.  2: B
  1778. /[k]/i
  1779. /abcd/i
  1780.     ABCD
  1781.  0: ABCD
  1782. /a(bc)d/i
  1783.     ABCD
  1784.  0: ABCD
  1785.  1: BC
  1786. /a[-]?c/i
  1787.     AC
  1788.  0: AC
  1789. /(abc)1/i
  1790.     ABCABC
  1791.  0: ABCABC
  1792.  1: ABC
  1793. /([a-c]*)1/i
  1794.     ABCABC
  1795.  0: ABCABC
  1796.  1: ABC
  1797. /a(?!b)./
  1798.     abad
  1799.  0: ad
  1800. /a(?=d)./
  1801.     abad
  1802.  0: ad
  1803. /a(?=c|d)./
  1804.     abad
  1805.  0: ad
  1806. /a(?:b|c|d)(.)/
  1807.     ace
  1808.  0: ace
  1809.  1: e
  1810. /a(?:b|c|d)*(.)/
  1811.     ace
  1812.  0: ace
  1813.  1: e
  1814. /a(?:b|c|d)+?(.)/
  1815.     ace
  1816.  0: ace
  1817.  1: e
  1818.     acdbcdbe
  1819.  0: acd
  1820.  1: d
  1821. /a(?:b|c|d)+(.)/
  1822.     acdbcdbe
  1823.  0: acdbcdbe
  1824.  1: e
  1825. /a(?:b|c|d){2}(.)/
  1826.     acdbcdbe
  1827.  0: acdb
  1828.  1: b
  1829. /a(?:b|c|d){4,5}(.)/
  1830.     acdbcdbe
  1831.  0: acdbcdb
  1832.  1: b
  1833. /a(?:b|c|d){4,5}?(.)/
  1834.     acdbcdbe
  1835.  0: acdbcd
  1836.  1: d
  1837. /((foo)|(bar))*/
  1838.     foobar
  1839.  0: foobar
  1840.  1: bar
  1841.  2: foo
  1842.  3: bar
  1843. /a(?:b|c|d){6,7}(.)/
  1844.     acdbcdbe
  1845.  0: acdbcdbe
  1846.  1: e
  1847. /a(?:b|c|d){6,7}?(.)/
  1848.     acdbcdbe
  1849.  0: acdbcdbe
  1850.  1: e
  1851. /a(?:b|c|d){5,6}(.)/
  1852.     acdbcdbe
  1853.  0: acdbcdbe
  1854.  1: e
  1855. /a(?:b|c|d){5,6}?(.)/
  1856.     acdbcdbe
  1857.  0: acdbcdb
  1858.  1: b
  1859. /a(?:b|c|d){5,7}(.)/
  1860.     acdbcdbe
  1861.  0: acdbcdbe
  1862.  1: e
  1863. /a(?:b|c|d){5,7}?(.)/
  1864.     acdbcdbe
  1865.  0: acdbcdb
  1866.  1: b
  1867. /a(?:b|(c|e){1,2}?|d)+?(.)/
  1868.     ace
  1869.  0: ace
  1870.  1: c
  1871.  2: e
  1872. /^(.+)?B/
  1873.     AB
  1874.  0: AB
  1875.  1: A
  1876. /^([^a-z])|(^)$/
  1877.     .
  1878.  0: .
  1879.  1: .
  1880. /^[<>]&/
  1881.     <&OUT
  1882.  0: <&
  1883. /^(a1?){4}$/
  1884.     aaaaaaaaaa
  1885.  0: aaaaaaaaaa
  1886.  1: aaaa
  1887.     *** Failers
  1888. No match
  1889.     AB
  1890. No match
  1891.     aaaaaaaaa
  1892. No match
  1893.     aaaaaaaaaaa
  1894. No match
  1895. /^(a(?(1)1)){4}$/
  1896.     aaaaaaaaaa
  1897.  0: aaaaaaaaaa
  1898.  1: aaaa
  1899.     *** Failers
  1900. No match
  1901.     aaaaaaaaa
  1902. No match
  1903.     aaaaaaaaaaa
  1904. No match
  1905. /(?:(f)(o)(o)|(b)(a)(r))*/
  1906.     foobar
  1907.  0: foobar
  1908.  1: f
  1909.  2: o
  1910.  3: o
  1911.  4: b
  1912.  5: a
  1913.  6: r
  1914. /(?<=a)b/
  1915.     ab
  1916.  0: b
  1917.     *** Failers
  1918. No match
  1919.     cb
  1920. No match
  1921.     b
  1922. No match
  1923. /(?<!c)b/
  1924.     ab
  1925.  0: b
  1926.     b
  1927.  0: b
  1928.     b
  1929.  0: b
  1930. /(?:..)*a/
  1931.     aba
  1932.  0: aba
  1933. /(?:..)*?a/
  1934.     aba
  1935.  0: a
  1936. /^(?:b|a(?=(.)))*1/
  1937.     abc
  1938.  0: ab
  1939.  1: b
  1940. /^(){3,5}/
  1941.     abc
  1942.  0: 
  1943.  1: 
  1944. /^(a+)*ax/
  1945.     aax
  1946.  0: aax
  1947.  1: a
  1948. /^((a|b)+)*ax/
  1949.     aax
  1950.  0: aax
  1951.  1: a
  1952.  2: a
  1953. /^((a|bc)+)*ax/
  1954.     aax
  1955.  0: aax
  1956.  1: a
  1957.  2: a
  1958. /(a|x)*ab/
  1959.     cab
  1960.  0: ab
  1961. /(a)*ab/
  1962.     cab
  1963.  0: ab
  1964. /(?:(?i)a)b/
  1965.     ab
  1966.  0: ab
  1967. /((?i)a)b/
  1968.     ab
  1969.  0: ab
  1970.  1: a
  1971. /(?:(?i)a)b/
  1972.     Ab
  1973.  0: Ab
  1974. /((?i)a)b/
  1975.     Ab
  1976.  0: Ab
  1977.  1: A
  1978. /(?:(?i)a)b/
  1979.     *** Failers
  1980. No match
  1981.     cb
  1982. No match
  1983.     aB
  1984. No match
  1985. /((?i)a)b/
  1986. /(?i:a)b/
  1987.     ab
  1988.  0: ab
  1989. /((?i:a))b/
  1990.     ab
  1991.  0: ab
  1992.  1: a
  1993. /(?i:a)b/
  1994.     Ab
  1995.  0: Ab
  1996. /((?i:a))b/
  1997.     Ab
  1998.  0: Ab
  1999.  1: A
  2000. /(?i:a)b/
  2001.     *** Failers
  2002. No match
  2003.     aB
  2004. No match
  2005.     aB
  2006. No match
  2007. /((?i:a))b/
  2008. /(?:(?-i)a)b/i
  2009.     ab
  2010.  0: ab
  2011. /((?-i)a)b/i
  2012.     ab
  2013.  0: ab
  2014.  1: a
  2015. /(?:(?-i)a)b/i
  2016.     aB
  2017.  0: aB
  2018. /((?-i)a)b/i
  2019.     aB
  2020.  0: aB
  2021.  1: a
  2022. /(?:(?-i)a)b/i
  2023.     *** Failers
  2024. No match
  2025.     aB
  2026.  0: aB
  2027.     Ab
  2028. No match
  2029. /((?-i)a)b/i
  2030. /(?:(?-i)a)b/i
  2031.     aB
  2032.  0: aB
  2033. /((?-i)a)b/i
  2034.     aB
  2035.  0: aB
  2036.  1: a
  2037. /(?:(?-i)a)b/i
  2038.     *** Failers
  2039. No match
  2040.     Ab
  2041. No match
  2042.     AB
  2043. No match
  2044. /((?-i)a)b/i
  2045. /(?-i:a)b/i
  2046.     ab
  2047.  0: ab
  2048. /((?-i:a))b/i
  2049.     ab
  2050.  0: ab
  2051.  1: a
  2052. /(?-i:a)b/i
  2053.     aB
  2054.  0: aB
  2055. /((?-i:a))b/i
  2056.     aB
  2057.  0: aB
  2058.  1: a
  2059. /(?-i:a)b/i
  2060.     *** Failers
  2061. No match
  2062.     AB
  2063. No match
  2064.     Ab
  2065. No match
  2066. /((?-i:a))b/i
  2067. /(?-i:a)b/i
  2068.     aB
  2069.  0: aB
  2070. /((?-i:a))b/i
  2071.     aB
  2072.  0: aB
  2073.  1: a
  2074. /(?-i:a)b/i
  2075.     *** Failers
  2076. No match
  2077.     Ab
  2078. No match
  2079.     AB
  2080. No match
  2081. /((?-i:a))b/i
  2082. /((?-i:a.))b/i
  2083.     *** Failers
  2084. No match
  2085.     AB
  2086. No match
  2087.     anB
  2088. No match
  2089. /((?s-i:a.))b/i
  2090.     anB
  2091.  0: ax0aB
  2092.  1: ax0a
  2093. /(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))/
  2094.     cabbbb
  2095.  0: cabbbb
  2096. /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/
  2097.     caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
  2098.  0: caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
  2099. /(ab)d1/i
  2100.     Ab4ab
  2101.  0: Ab4ab
  2102.  1: Ab
  2103.     ab4Ab
  2104.  0: ab4Ab
  2105.  1: ab
  2106. /foow*d{4}baz/
  2107.     foobar1234baz
  2108.  0: foobar1234baz
  2109. /x(~~)*(?:(?:F)?)?/
  2110.     x~~
  2111.  0: x~~
  2112.  1: ~~
  2113. /^a(?#xxx){3}c/
  2114.     aaac
  2115.  0: aaac
  2116. /^a (?#xxx) (?#yyy) {3}c/x
  2117.     aaac
  2118.  0: aaac
  2119. /(?<![cd])b/
  2120.     *** Failers
  2121. No match
  2122.     BnB
  2123. No match
  2124.     dbcb
  2125. No match
  2126. /(?<![cd])[ab]/
  2127.     dbaacb
  2128.  0: a
  2129. /(?<!(c|d))b/
  2130. /(?<!(c|d))[ab]/
  2131.     dbaacb
  2132.  0: a
  2133. /(?<!cd)[ab]/
  2134.     cdaccb
  2135.  0: b
  2136. /^(?:a?b?)*$/
  2137.     *** Failers
  2138. No match
  2139.     dbcb
  2140. No match
  2141.     a--
  2142. No match
  2143. /((?s)^a(.))((?m)^b$)/
  2144.     anbncn
  2145.  0: ax0ab
  2146.  1: ax0a
  2147.  2: x0a
  2148.  3: b
  2149. /((?m)^b$)/
  2150.     anbncn
  2151.  0: b
  2152.  1: b
  2153. /(?m)^b/
  2154.     anbn
  2155.  0: b
  2156. /(?m)^(b)/
  2157.     anbn
  2158.  0: b
  2159.  1: b
  2160. /((?m)^b)/
  2161.     anbn
  2162.  0: b
  2163.  1: b
  2164. /n((?m)^b)/
  2165.     anbn
  2166.  0: x0ab
  2167.  1: b
  2168. /((?s).)c(?!.)/
  2169.     anbncn
  2170.  0: x0ac
  2171.  1: x0a
  2172.     anbncn
  2173.  0: x0ac
  2174.  1: x0a
  2175. /((?s)b.)c(?!.)/
  2176.     anbncn
  2177.  0: bx0ac
  2178.  1: bx0a
  2179.     anbncn
  2180.  0: bx0ac
  2181.  1: bx0a
  2182. /^b/
  2183. /()^b/
  2184.     *** Failers
  2185. No match
  2186.     anbncn
  2187. No match
  2188.     anbncn
  2189. No match
  2190. /((?m)^b)/
  2191.     anbncn
  2192.  0: b
  2193.  1: b
  2194. /(?(1)a|b)/
  2195. /(?(1)b|a)/
  2196.     a
  2197.  0: a
  2198. /(x)?(?(1)a|b)/
  2199.     *** Failers
  2200. No match
  2201.     a
  2202. No match
  2203.     a
  2204. No match
  2205. /(x)?(?(1)b|a)/
  2206.     a
  2207.  0: a
  2208. /()?(?(1)b|a)/
  2209.     a
  2210.  0: a
  2211. /()(?(1)b|a)/
  2212. /()?(?(1)a|b)/
  2213.     a
  2214.  0: a
  2215.  1: 
  2216. /^(()?blah(?(1)()))$/
  2217.     (blah)
  2218.  0: (blah)
  2219.  1: (
  2220.  2: )
  2221.     blah
  2222.  0: blah
  2223.     *** Failers
  2224. No match
  2225.     a
  2226. No match
  2227.     blah)
  2228. No match
  2229.     (blah
  2230. No match
  2231. /^((+)?blah(?(1)()))$/
  2232.     (blah)
  2233.  0: (blah)
  2234.  1: (
  2235.  2: )
  2236.     blah
  2237.  0: blah
  2238.     *** Failers
  2239. No match
  2240.     blah)
  2241. No match
  2242.     (blah
  2243. No match
  2244. /(?(?!a)a|b)/
  2245. /(?(?!a)b|a)/
  2246.     a
  2247.  0: a
  2248. /(?(?=a)b|a)/
  2249.     *** Failers
  2250. No match
  2251.     a
  2252. No match
  2253.     a
  2254. No match
  2255. /(?(?=a)a|b)/
  2256.     a
  2257.  0: a
  2258. /(?=(a+?))(1ab)/
  2259.     aaab
  2260.  0: aab
  2261.  1: a
  2262.  2: aab
  2263. /^(?=(a+?))1ab/
  2264. /(w+:)+/
  2265.     one:
  2266.  0: one:
  2267.  1: one:
  2268. /$(?<=^(a))/
  2269.     a
  2270.  0: 
  2271.  1: a
  2272. /(?=(a+?))(1ab)/
  2273.     aaab
  2274.  0: aab
  2275.  1: a
  2276.  2: aab
  2277. /^(?=(a+?))1ab/
  2278.     *** Failers
  2279. No match
  2280.     aaab
  2281. No match
  2282.     aaab
  2283. No match
  2284. /([w:]+::)?(w+)$/
  2285.     abcd
  2286.  0: abcd
  2287.  1: <unset>
  2288.  2: abcd
  2289.     xy:z:::abcd
  2290.  0: xy:z:::abcd
  2291.  1: xy:z:::
  2292.  2: abcd
  2293. /^[^bcd]*(c+)/
  2294.     aexycd
  2295.  0: aexyc
  2296.  1: c
  2297. /(a*)b+/
  2298.     caab
  2299.  0: aab
  2300.  1: aa
  2301. /([w:]+::)?(w+)$/
  2302.     abcd
  2303.  0: abcd
  2304.  1: <unset>
  2305.  2: abcd
  2306.     xy:z:::abcd
  2307.  0: xy:z:::abcd
  2308.  1: xy:z:::
  2309.  2: abcd
  2310.     *** Failers
  2311.  0: Failers
  2312.  1: <unset>
  2313.  2: Failers
  2314.     abcd:
  2315. No match
  2316.     abcd:
  2317. No match
  2318. /^[^bcd]*(c+)/
  2319.     aexycd
  2320.  0: aexyc
  2321.  1: c
  2322. /(>a+)ab/
  2323. /(?>a+)b/
  2324.     aaab
  2325.  0: aaab
  2326. /([[:]+)/
  2327.     a:[b]:
  2328.  0: :[
  2329.  1: :[
  2330. /([[=]+)/
  2331.     a=[b]=
  2332.  0: =[
  2333.  1: =[
  2334. /([[.]+)/
  2335.     a.[b].
  2336.  0: .[
  2337.  1: .[
  2338. /((?>a+)b)/
  2339.     aaab
  2340.  0: aaab
  2341.  1: aaab
  2342. /(?>(a+))b/
  2343.     aaab
  2344.  0: aaab
  2345.  1: aaa
  2346. /((?>[^()]+)|([^()]*))+/
  2347.     ((abc(ade)ufh()()x
  2348.  0: abc(ade)ufh()()x
  2349.  1: x
  2350. /aZ/
  2351.     *** Failers
  2352. No match
  2353.     aaab
  2354. No match
  2355.     anbn
  2356. No match
  2357. /bZ/
  2358.     anbn
  2359.  0: b
  2360. /bz/
  2361. /bZ/
  2362.     anb
  2363.  0: b
  2364. /bz/
  2365.     anb
  2366.  0: b
  2367.     *** Failers
  2368. No match
  2369.     
  2370. /^(?>(?(1).|())[^W_](?>[a-z0-9-]*[^W_])?)+$/
  2371.     a
  2372.  0: a
  2373.  1: 
  2374.     abc
  2375.  0: abc
  2376.  1: 
  2377.     a-b
  2378.  0: a-b
  2379.  1: 
  2380.     0-9 
  2381.  0: 0-9
  2382.  1: 
  2383.     a.b
  2384.  0: a.b
  2385.  1: 
  2386.     5.6.7  
  2387.  0: 5.6.7
  2388.  1: 
  2389.     the.quick.brown.fox
  2390.  0: the.quick.brown.fox
  2391.  1: 
  2392.     a100.b200.300c  
  2393.  0: a100.b200.300c
  2394.  1: 
  2395.     12-ab.1245 
  2396.  0: 12-ab.1245
  2397.  1: 
  2398.     ***Failers
  2399. No match
  2400.     
  2401. No match
  2402.     .a
  2403. No match
  2404.     -a
  2405. No match
  2406.     a-
  2407. No match
  2408.     a.  
  2409. No match
  2410.     a_b 
  2411. No match
  2412.     a.-
  2413. No match
  2414.     a..  
  2415. No match
  2416.     ab..bc 
  2417. No match
  2418.     the.quick.brown.fox-
  2419. No match
  2420.     the.quick.brown.fox.
  2421. No match
  2422.     the.quick.brown.fox_
  2423. No match
  2424.     the.quick.brown.fox+       
  2425. No match
  2426. /(?>.*)(?<=(abcd|wxyz))/
  2427.     alphabetabcd
  2428.  0: alphabetabcd
  2429.  1: abcd
  2430.     endingwxyz
  2431.  0: endingwxyz
  2432.  1: wxyz
  2433.     *** Failers
  2434. No match
  2435.     a rather long string that doesn't end with one of them
  2436. No match
  2437. /word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword/
  2438.     word cat dog elephant mussel cow horse canary baboon snake shark otherword
  2439.  0: word cat dog elephant mussel cow horse canary baboon snake shark otherword
  2440.     word cat dog elephant mussel cow horse canary baboon snake shark
  2441. No match
  2442.   
  2443. /word (?>[a-zA-Z0-9]+ ){0,30}otherword/
  2444.     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
  2445. No match
  2446. /(?<=d{3}(?!999))foo/
  2447.     999foo
  2448.  0: foo
  2449.     123999foo 
  2450.  0: foo
  2451.     *** Failers
  2452. No match
  2453.     123abcfoo
  2454. No match
  2455.     
  2456. /(?<=(?!...999)d{3})foo/
  2457.     999foo
  2458.  0: foo
  2459.     123999foo 
  2460.  0: foo
  2461.     *** Failers
  2462. No match
  2463.     123abcfoo
  2464. No match
  2465. /(?<=d{3}(?!999)...)foo/
  2466.     123abcfoo
  2467.  0: foo
  2468.     123456foo 
  2469.  0: foo
  2470.     *** Failers
  2471. No match
  2472.     123999foo  
  2473. No match
  2474.     
  2475. /(?<=d{3}...)(?<!999)foo/
  2476.     123abcfoo   
  2477.  0: foo
  2478.     123456foo 
  2479.  0: foo
  2480.     *** Failers
  2481. No match
  2482.     123999foo  
  2483. No match
  2484. /<a[s]+href[s]*=[s]*          # find <a href=
  2485.  (["'])?                       # find single or double quote
  2486.  (?(1) (.*?)1 | ([^s]+))       # if quote found, match up to next matching
  2487.                                  # quote, otherwise match up to next space
  2488. /isx
  2489.     <a href=abcd xyz
  2490.  0: <a href=abcd
  2491.  1: <unset>
  2492.  2: <unset>
  2493.  3: abcd
  2494.     <a href="abcd xyz pqr" cats
  2495.  0: <a href="abcd xyz pqr"
  2496.  1: "
  2497.  2: abcd xyz pqr
  2498.     <a href='abcd xyz pqr' cats
  2499.  0: <a href='abcd xyz pqr'
  2500.  1: '
  2501.  2: abcd xyz pqr
  2502. /<as+hrefs*=s*                # find <a href=
  2503.  (["'])?                         # find single or double quote
  2504.  (?(1) (.*?)1 | (S+))          # if quote found, match up to next matching
  2505.                                  # quote, otherwise match up to next space
  2506. /isx
  2507.     <a href=abcd xyz
  2508.  0: <a href=abcd
  2509.  1: <unset>
  2510.  2: <unset>
  2511.  3: abcd
  2512.     <a href="abcd xyz pqr" cats
  2513.  0: <a href="abcd xyz pqr"
  2514.  1: "
  2515.  2: abcd xyz pqr
  2516.     <a href       =       'abcd xyz pqr' cats
  2517.  0: <a href       =       'abcd xyz pqr'
  2518.  1: '
  2519.  2: abcd xyz pqr
  2520. /<as+href(?>s*)=(?>s*)        # find <a href=
  2521.  (["'])?                         # find single or double quote
  2522.  (?(1) (.*?)1 | (S+))          # if quote found, match up to next matching
  2523.                                  # quote, otherwise match up to next space
  2524. /isx
  2525.     <a href=abcd xyz
  2526.  0: <a href=abcd
  2527.  1: <unset>
  2528.  2: <unset>
  2529.  3: abcd
  2530.     <a href="abcd xyz pqr" cats
  2531.  0: <a href="abcd xyz pqr"
  2532.  1: "
  2533.  2: abcd xyz pqr
  2534.     <a href       =       'abcd xyz pqr' cats
  2535.  0: <a href       =       'abcd xyz pqr'
  2536.  1: '
  2537.  2: abcd xyz pqr
  2538. /((Z)+|A)*/
  2539.     ZABCDEFG
  2540.  0: ZA
  2541.  1: A
  2542.  2: Z
  2543. /(Z()|A)*/
  2544.     ZABCDEFG
  2545.  0: ZA
  2546.  1: A
  2547.  2: 
  2548. /(Z(())|A)*/
  2549.     ZABCDEFG
  2550.  0: ZA
  2551.  1: A
  2552.  2: 
  2553.  3: 
  2554. /((?>Z)+|A)*/
  2555.     ZABCDEFG
  2556.  0: ZA
  2557.  1: A
  2558. /((?>)+|A)*/
  2559.     ZABCDEFG
  2560.  0: 
  2561.  1: 
  2562. /a*/g
  2563.     abbab
  2564.  0: a
  2565.  0: 
  2566.  0: 
  2567.  0: a
  2568.  0: 
  2569.  0: 
  2570. /^[a-d]/
  2571.     abcde
  2572.  0: a
  2573.     -things
  2574.  0: -
  2575.     0digit
  2576.  0: 0
  2577.     *** Failers
  2578. No match
  2579.     bcdef    
  2580. No match
  2581. /^[d-a]/
  2582.     abcde
  2583.  0: a
  2584.     -things
  2585.  0: -
  2586.     0digit
  2587.  0: 0
  2588.     *** Failers
  2589. No match
  2590.     bcdef    
  2591. No match
  2592. / End of testinput3 /