/[pcre]/code/trunk/testdata/testinput3
ViewVC logotype

Diff of /code/trunk/testdata/testinput3

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 49 by nigel, Sat Feb 24 21:39:33 2007 UTC revision 63 by nigel, Sat Feb 24 21:40:03 2007 UTC
# Line 1  Line 1 
1  /(?<!bar)foo/  /^[\w]+/
     foo  
     catfood  
     arfootle  
     rfoosh  
2      *** Failers      *** Failers
3      barfoo      École
     towbarfoo  
4    
5  /\w{3}(?<!bar)foo/  /^[\w]+/Lfr
6      catfood      École
     *** Failers  
     foo  
     barfoo  
     towbarfoo  
   
 /(?<=(foo)a)bar/  
     fooabar  
     *** Failers  
     bar  
     foobbar  
   
 /\Aabc\z/m  
     abc  
     *** Failers  
     abc\n  
     qqq\nabc  
     abc\nzzz  
     qqq\nabc\nzzz  
   
 "(?>.*/)foo"  
     /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/it/you/see/  
   
 "(?>.*/)foo"  
     /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo  
   
 /(?>(\.\d\d[1-9]?))\d+/  
     1.230003938  
     1.875000282  
     *** Failers  
     1.235  
   
 /^((?>\w+)|(?>\s+))*$/  
     now is the time for all good men to come to the aid of the party  
     *** Failers  
     this is not a line with only words and spaces!  
   
 /(\d+)(\w)/  
     12345a  
     12345+  
   
 /((?>\d+))(\w)/  
     12345a  
     *** Failers  
     12345+  
   
 /(?>a+)b/  
     aaab  
   
 /((?>a+)b)/  
     aaab  
   
 /(?>(a+))b/  
     aaab  
   
 /(?>b)+/  
     aaabbbccc  
   
 /(?>a+|b+|c+)*c/  
     aaabbbbccccd  
   
 /((?>[^()]+)|\([^()]*\))+/  
     ((abc(ade)ufh()()x  
   
 /\(((?>[^()]+)|\([^()]+\))+\)/  
     (abc)  
     (abc(def)xyz)  
     *** Failers  
     ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa  
   
 /a(?-i)b/i  
     ab  
     *** Failers  
     Ab  
     aB  
     AB  
   
 /(a (?x)b c)d e/  
     a bcd e  
     *** Failers  
     a b cd e  
     abcd e  
     a bcde  
   
 /(a b(?x)c d (?-x)e f)/  
     a bcde f  
     *** Failers  
     abcdef  
   
 /(a(?i)b)c/  
     abc  
     aBc  
     *** Failers  
     abC  
     aBC  
     Abc  
     ABc  
     ABC  
     AbC  
   
 /a(?i:b)c/  
     abc  
     aBc  
     *** Failers  
     ABC  
     abC  
     aBC  
   
 /a(?i:b)*c/  
     aBc  
     aBBc  
     *** Failers  
     aBC  
     aBBC  
   
 /a(?=b(?i)c)\w\wd/  
     abcd  
     abCd  
     *** Failers  
     aBCd  
     abcD  
   
 /(?s-i:more.*than).*million/i  
     more than million  
     more than MILLION  
     more \n than Million  
     *** Failers  
     MORE THAN MILLION  
     more \n than \n million  
   
 /(?:(?s-i)more.*than).*million/i  
     more than million  
     more than MILLION  
     more \n than Million  
     *** Failers  
     MORE THAN MILLION  
     more \n than \n million  
   
 /(?>a(?i)b+)+c/  
     abc  
     aBbc  
     aBBc  
     *** Failers  
     Abc  
     abAb  
     abbC  
   
 /(?=a(?i)b)\w\wc/  
     abc  
     aBc  
     *** Failers  
     Ab  
     abC  
     aBC  
   
 /(?<=a(?i)b)(\w\w)c/  
     abxxc  
     aBxxc  
     *** Failers  
     Abxxc  
     ABxxc  
     abxxC  
   
 /(?:(a)|b)(?(1)A|B)/  
     aA  
     bB  
     *** Failers  
     aB  
     bA  
   
 /^(a)?(?(1)a|b)+$/  
     aa  
     b  
     bb  
     *** Failers  
     ab  
   
 /^(?(?=abc)\w{3}:|\d\d)$/  
     abc:  
     12  
     *** Failers  
     123  
     xyz  
   
 /^(?(?!abc)\d\d|\w{3}:)$/  
     abc:  
     12  
     *** Failers  
     123  
     xyz  
   
 /(?(?<=foo)bar|cat)/  
     foobar  
     cat  
     fcat  
     focat  
     *** Failers  
     foocat  
7    
8  /(?(?<!foo)cat|bar)/  /^[\w]+/
     foobar  
     cat  
     fcat  
     focat  
9      *** Failers      *** Failers
10      foocat      École
11    
12  /( \( )? [^()]+ (?(1) \) |) /x  /^[\W]+/
13      abcd      École
     (abcd)  
     the quick (abcd) fox  
     (abcd  
14    
15  /( \( )? [^()]+ (?(1) \) ) /x  /^[\W]+/Lfr
     abcd  
     (abcd)  
     the quick (abcd) fox  
     (abcd  
   
 /^(?(2)a|(1)(2))+$/  
     12  
     12a  
     12aa  
16      *** Failers      *** Failers
17      1234      École
18    
19  /((?i)blah)\s+\1/  /[\b]/
20      blah blah      \b
     BLAH BLAH  
     Blah Blah  
     blaH blaH  
21      *** Failers      *** Failers
     blah BLAH  
     Blah blah  
     blaH blah  
   
 /((?i)blah)\s+(?i:\1)/  
     blah blah  
     BLAH BLAH  
     Blah Blah  
     blaH blaH  
     blah BLAH  
     Blah blah  
     blaH blah  
   
 /(?>a*)*/  
22      a      a
     aa  
     aaaa  
   
 /(abc|)+/  
     abc  
     abcabc  
     abcabcabc  
     xyz  
   
 /([a]*)*/  
     a  
     aaaaa  
   
 /([ab]*)*/  
     a  
     b  
     ababab  
     aaaabcde  
     bbbb  
   
 /([^a]*)*/  
     b  
     bbbb  
     aaa  
   
 /([^ab]*)*/  
     cccc  
     abab  
   
 /([a]*?)*/  
     a  
     aaaa  
   
 /([ab]*?)*/  
     a  
     b  
     abab  
     baba  
   
 /([^a]*?)*/  
     b  
     bbbb  
     aaa  
   
 /([^ab]*?)*/  
     c  
     cccc  
     baba  
   
 /(?>a*)*/  
     a  
     aaabcde  
   
 /((?>a*))*/  
     aaaaa  
     aabbaa  
   
 /((?>a*?))*/  
     aaaaa  
     aabbaa  
   
 /(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /x  
     12-sep-98  
     12-09-98  
     *** Failers  
     sep-12-98  
   
 /(?<=(foo))bar\1/  
     foobarfoo  
     foobarfootling  
     *** Failers  
     foobar  
     barfoo  
   
 /(?i:saturday|sunday)/  
     saturday  
     sunday  
     Saturday  
     Sunday  
     SATURDAY  
     SUNDAY  
     SunDay  
   
 /(a(?i)bc|BB)x/  
     abcx  
     aBCx  
     bbx  
     BBx  
     *** Failers  
     abcX  
     aBCX  
     bbX  
     BBX  
   
 /^([ab](?i)[cd]|[ef])/  
     ac  
     aC  
     bD  
     elephant  
     Europe  
     frog  
     France  
     *** Failers  
     Africa  
   
 /^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)/  
     ab  
     aBd  
     xy  
     xY  
     zebra  
     Zambesi  
     *** Failers  
     aCD  
     XY  
   
 /(?<=foo\n)^bar/m  
     foo\nbar  
     *** Failers  
     bar  
     baz\nbar  
23    
24  /(?<=(?<!foo)bar)baz/  /[\b]/Lfr
25      barbaz      \b
     barbarbaz  
     koobarbaz  
26      *** Failers      *** Failers
     baz  
     foobarbaz  
   
 /The case of aaaaaa is missed out below because I think Perl 5.005_02 gets/  
 /it wrong; it sets $1 to aaa rather than aa. Compare the following test,/  
 /where it does set $1 to aa when matching aaaaaa./  
   
 /^(a\1?){4}$/  
     a  
     aa  
     aaa  
     aaaa  
     aaaaa  
     aaaaaaa  
     aaaaaaaa  
     aaaaaaaaa  
     aaaaaaaaaa  
     aaaaaaaaaaa  
     aaaaaaaaaaaa  
     aaaaaaaaaaaaa  
     aaaaaaaaaaaaaa  
     aaaaaaaaaaaaaaa  
     aaaaaaaaaaaaaaaa  
   
 /^(a\1?)(a\1?)(a\2?)(a\3?)$/  
27      a      a
     aa  
     aaa  
     aaaa  
     aaaaa  
     aaaaaa  
     aaaaaaa  
     aaaaaaaa  
     aaaaaaaaa  
     aaaaaaaaaa  
     aaaaaaaaaaa  
     aaaaaaaaaaaa  
     aaaaaaaaaaaaa  
     aaaaaaaaaaaaaa  
     aaaaaaaaaaaaaaa  
     aaaaaaaaaaaaaaaa  
   
 /The following tests are taken from the Perl 5.005 test suite; some of them/  
 /are compatible with 5.004, but I'd rather not have to sort them out./  
   
 /abc/  
     abc  
     xabcy  
     ababc  
     *** Failers  
     xbc  
     axc  
     abx  
   
 /ab*c/  
     abc  
   
 /ab*bc/  
     abc  
     abbc  
     abbbbc  
   
 /.{1}/  
     abbbbc  
   
 /.{3,4}/  
     abbbbc  
   
 /ab{0,}bc/  
     abbbbc  
   
 /ab+bc/  
     abbc  
     *** Failers  
     abc  
     abq  
   
 /ab{1,}bc/  
   
 /ab+bc/  
     abbbbc  
   
 /ab{1,}bc/  
     abbbbc  
   
 /ab{1,3}bc/  
     abbbbc  
   
 /ab{3,4}bc/  
     abbbbc  
   
 /ab{4,5}bc/  
     *** Failers  
     abq  
     abbbbc  
   
 /ab?bc/  
     abbc  
     abc  
   
 /ab{0,1}bc/  
     abc  
   
 /ab?bc/  
   
 /ab?c/  
     abc  
   
 /ab{0,1}c/  
     abc  
   
 /^abc$/  
     abc  
     *** Failers  
     abbbbc  
     abcc  
   
 /^abc/  
     abcc  
   
 /^abc$/  
28    
29  /abc$/  /^\w+/
     aabc  
30      *** Failers      *** Failers
31      aabc      École
     aabcd  
32    
33  /^/  /^\w+/Lfr
34      abc      École
35    
36  /$/  /(.+)\b(.+)/
37      abc      École
38    
39  /a.c/  /(.+)\b(.+)/Lfr
     abc  
     axc  
   
 /a.*c/  
     axyzc  
   
 /a[bc]d/  
     abd  
     *** Failers  
     axyzd  
     abc  
   
 /a[b-d]e/  
     ace  
   
 /a[b-d]/  
     aac  
   
 /a[-b]/  
     a-  
   
 /a[b-]/  
     a-  
   
 /a]/  
     a]  
   
 /a[]]b/  
     a]b  
   
 /a[^bc]d/  
     aed  
     *** Failers  
     abd  
     abd  
   
 /a[^-b]c/  
     adc  
   
 /a[^]b]c/  
     adc  
     *** Failers  
     a-c  
     a]c  
   
 /\ba\b/  
     a-  
     -a  
     -a-  
   
 /\by\b/  
40      *** Failers      *** Failers
41      xy      École
     yz  
     xyz  
42    
43  /\Ba\B/  /École/i
44        École
45      *** Failers      *** Failers
46      a-      école
     -a  
     -a-  
47    
48  /\By\b/  /École/iLfr
49      xy      École
50        école
51    
52  /\by\B/  /\w/IS
     yz  
53    
54  /\By\B/  /\w/ISLfr
     xyz  
55    
56  /\w/  /^[\xc8-\xc9]/iLfr
57      a      École
58        école
 /\W/  
     -  
     *** Failers  
     -  
     a  
   
 /a\sb/  
     a b  
   
 /a\Sb/  
     a-b  
     *** Failers  
     a-b  
     a b  
   
 /\d/  
     1  
   
 /\D/  
     -  
     *** Failers  
     -  
     1  
   
 /[\w]/  
     a  
   
 /[\W]/  
     -  
     *** Failers  
     -  
     a  
   
 /a[\s]b/  
     a b  
   
 /a[\S]b/  
     a-b  
     *** Failers  
     a-b  
     a b  
   
 /[\d]/  
     1  
   
 /[\D]/  
     -  
     *** Failers  
     -  
     1  
   
 /ab|cd/  
     abc  
     abcd  
   
 /()ef/  
     def  
   
 /$b/  
   
 /a\(b/  
     a(b  
   
 /a\(*b/  
     ab  
     a((b  
   
 /a\\b/  
     a\b  
   
 /((a))/  
     abc  
   
 /(a)b(c)/  
     abc  
   
 /a+b+c/  
     aabbabc  
   
 /a{1,}b{1,}c/  
     aabbabc  
   
 /a.+?c/  
     abcabc  
   
 /(a+|b)*/  
     ab  
   
 /(a+|b){0,}/  
     ab  
   
 /(a+|b)+/  
     ab  
   
 /(a+|b){1,}/  
     ab  
   
 /(a+|b)?/  
     ab  
   
 /(a+|b){0,1}/  
     ab  
   
 /[^ab]*/  
     cde  
   
 /abc/  
     *** Failers  
     b  
   
   
 /a*/  
   
   
 /([abc])*d/  
     abbbcd  
   
 /([abc])*bcd/  
     abcd  
   
 /a|b|c|d|e/  
     e  
   
 /(a|b|c|d|e)f/  
     ef  
   
 /abcd*efg/  
     abcdefg  
   
 /ab*/  
     xabyabbbz  
     xayabbbz  
   
 /(ab|cd)e/  
     abcde  
   
 /[abhgefdc]ij/  
     hij  
   
 /^(ab|cd)e/  
   
 /(abc|)ef/  
     abcdef  
   
 /(a|b)c*d/  
     abcd  
   
 /(ab|ab*)bc/  
     abc  
   
 /a([bc]*)c*/  
     abc  
   
 /a([bc]*)(c*d)/  
     abcd  
   
 /a([bc]+)(c*d)/  
     abcd  
   
 /a([bc]*)(c+d)/  
     abcd  
   
 /a[bcd]*dcdcde/  
     adcdcde  
   
 /a[bcd]+dcdcde/  
     *** Failers  
     abcde  
     adcdcde  
   
 /(ab|a)b*c/  
     abc  
   
 /((a)(b)c)(d)/  
     abcd  
   
 /[a-zA-Z_][a-zA-Z0-9_]*/  
     alpha  
   
 /^a(bc+|b[eh])g|.h$/  
     abh  
   
 /(bc+d$|ef*g.|h?i(j|k))/  
     effgz  
     ij  
     reffgz  
     *** Failers  
     effg  
     bcdd  
   
 /((((((((((a))))))))))/  
     a  
   
 /((((((((((a))))))))))\10/  
     aa  
   
 /(((((((((a)))))))))/  
     a  
   
 /multiple words of text/  
     *** Failers  
     aa  
     uh-uh  
   
 /multiple words/  
     multiple words, yeah  
   
 /(.*)c(.*)/  
     abcde  
   
 /\((.*), (.*)\)/  
     (a, b)  
   
 /[k]/  
   
 /abcd/  
     abcd  
   
 /a(bc)d/  
     abcd  
   
 /a[-]?c/  
     ac  
   
 /(abc)\1/  
     abcabc  
   
 /([a-c]*)\1/  
     abcabc  
   
 /(a)|\1/  
     a  
     *** Failers  
     ab  
     x  
   
 /(([a-c])b*?\2)*/  
     ababbbcbc  
   
 /(([a-c])b*?\2){3}/  
     ababbbcbc  
   
 /((\3|b)\2(a)x)+/  
     aaaxabaxbaaxbbax  
   
 /((\3|b)\2(a)){2,}/  
     bbaababbabaaaaabbaaaabba  
   
 /abc/i  
     ABC  
     XABCY  
     ABABC  
     *** Failers  
     aaxabxbaxbbx  
     XBC  
     AXC  
     ABX  
   
 /ab*c/i  
     ABC  
   
 /ab*bc/i  
     ABC  
     ABBC  
   
 /ab*?bc/i  
     ABBBBC  
   
 /ab{0,}?bc/i  
     ABBBBC  
   
 /ab+?bc/i  
     ABBC  
   
 /ab+bc/i  
     *** Failers  
     ABC  
     ABQ  
   
 /ab{1,}bc/i  
   
 /ab+bc/i  
     ABBBBC  
   
 /ab{1,}?bc/i  
     ABBBBC  
   
 /ab{1,3}?bc/i  
     ABBBBC  
   
 /ab{3,4}?bc/i  
     ABBBBC  
   
 /ab{4,5}?bc/i  
     *** Failers  
     ABQ  
     ABBBBC  
   
 /ab??bc/i  
     ABBC  
     ABC  
   
 /ab{0,1}?bc/i  
     ABC  
   
 /ab??bc/i  
   
 /ab??c/i  
     ABC  
   
 /ab{0,1}?c/i  
     ABC  
   
 /^abc$/i  
     ABC  
     *** Failers  
     ABBBBC  
     ABCC  
   
 /^abc/i  
     ABCC  
   
 /^abc$/i  
   
 /abc$/i  
     AABC  
   
 /^/i  
     ABC  
   
 /$/i  
     ABC  
   
 /a.c/i  
     ABC  
     AXC  
   
 /a.*?c/i  
     AXYZC  
   
 /a.*c/i  
     *** Failers  
     AABC  
     AXYZD  
   
 /a[bc]d/i  
     ABD  
   
 /a[b-d]e/i  
     ACE  
     *** Failers  
     ABC  
     ABD  
   
 /a[b-d]/i  
     AAC  
   
 /a[-b]/i  
     A-  
   
 /a[b-]/i  
     A-  
   
 /a]/i  
     A]  
   
 /a[]]b/i  
     A]B  
   
 /a[^bc]d/i  
     AED  
   
 /a[^-b]c/i  
     ADC  
     *** Failers  
     ABD  
     A-C  
   
 /a[^]b]c/i  
     ADC  
   
 /ab|cd/i  
     ABC  
     ABCD  
   
 /()ef/i  
     DEF  
   
 /$b/i  
     *** Failers  
     A]C  
     B  
59    
60  /a\(b/i  /^[\xc8-\xc9]/Lfr
61      A(B      École
62        *** Failers
63  /a\(*b/i      école
     AB  
     A((B  
   
 /a\\b/i  
     A\B  
   
 /((a))/i  
     ABC  
   
 /(a)b(c)/i  
     ABC  
   
 /a+b+c/i  
     AABBABC  
   
 /a{1,}b{1,}c/i  
     AABBABC  
   
 /a.+?c/i  
     ABCABC  
   
 /a.*?c/i  
     ABCABC  
   
 /a.{0,5}?c/i  
     ABCABC  
   
 /(a+|b)*/i  
     AB  
   
 /(a+|b){0,}/i  
     AB  
   
 /(a+|b)+/i  
     AB  
   
 /(a+|b){1,}/i  
     AB  
   
 /(a+|b)?/i  
     AB  
   
 /(a+|b){0,1}/i  
     AB  
   
 /(a+|b){0,1}?/i  
     AB  
   
 /[^ab]*/i  
     CDE  
   
 /abc/i  
   
 /a*/i  
   
   
 /([abc])*d/i  
     ABBBCD  
   
 /([abc])*bcd/i  
     ABCD  
   
 /a|b|c|d|e/i  
     E  
   
 /(a|b|c|d|e)f/i  
     EF  
   
 /abcd*efg/i  
     ABCDEFG  
   
 /ab*/i  
     XABYABBBZ  
     XAYABBBZ  
   
 /(ab|cd)e/i  
     ABCDE  
   
 /[abhgefdc]ij/i  
     HIJ  
   
 /^(ab|cd)e/i  
     ABCDE  
   
 /(abc|)ef/i  
     ABCDEF  
   
 /(a|b)c*d/i  
     ABCD  
   
 /(ab|ab*)bc/i  
     ABC  
   
 /a([bc]*)c*/i  
     ABC  
   
 /a([bc]*)(c*d)/i  
     ABCD  
   
 /a([bc]+)(c*d)/i  
     ABCD  
   
 /a([bc]*)(c+d)/i  
     ABCD  
   
 /a[bcd]*dcdcde/i  
     ADCDCDE  
   
 /a[bcd]+dcdcde/i  
   
 /(ab|a)b*c/i  
     ABC  
   
 /((a)(b)c)(d)/i  
     ABCD  
   
 /[a-zA-Z_][a-zA-Z0-9_]*/i  
     ALPHA  
   
 /^a(bc+|b[eh])g|.h$/i  
     ABH  
   
 /(bc+d$|ef*g.|h?i(j|k))/i  
     EFFGZ  
     IJ  
     REFFGZ  
     *** Failers  
     ADCDCDE  
     EFFG  
     BCDD  
   
 /((((((((((a))))))))))/i  
     A  
   
 /((((((((((a))))))))))\10/i  
     AA  
   
 /(((((((((a)))))))))/i  
     A  
   
 /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))/i  
     A  
   
 /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/i  
     C  
   
 /multiple words of text/i  
     *** Failers  
     AA  
     UH-UH  
   
 /multiple words/i  
     MULTIPLE WORDS, YEAH  
   
 /(.*)c(.*)/i  
     ABCDE  
   
 /\((.*), (.*)\)/i  
     (A, B)  
   
 /[k]/i  
   
 /abcd/i  
     ABCD  
   
 /a(bc)d/i  
     ABCD  
   
 /a[-]?c/i  
     AC  
   
 /(abc)\1/i  
     ABCABC  
   
 /([a-c]*)\1/i  
     ABCABC  
   
 /a(?!b)./  
     abad  
   
 /a(?=d)./  
     abad  
   
 /a(?=c|d)./  
     abad  
   
 /a(?:b|c|d)(.)/  
     ace  
   
 /a(?:b|c|d)*(.)/  
     ace  
   
 /a(?:b|c|d)+?(.)/  
     ace  
     acdbcdbe  
   
 /a(?:b|c|d)+(.)/  
     acdbcdbe  
   
 /a(?:b|c|d){2}(.)/  
     acdbcdbe  
   
 /a(?:b|c|d){4,5}(.)/  
     acdbcdbe  
   
 /a(?:b|c|d){4,5}?(.)/  
     acdbcdbe  
   
 /((foo)|(bar))*/  
     foobar  
   
 /a(?:b|c|d){6,7}(.)/  
     acdbcdbe  
   
 /a(?:b|c|d){6,7}?(.)/  
     acdbcdbe  
   
 /a(?:b|c|d){5,6}(.)/  
     acdbcdbe  
   
 /a(?:b|c|d){5,6}?(.)/  
     acdbcdbe  
   
 /a(?:b|c|d){5,7}(.)/  
     acdbcdbe  
   
 /a(?:b|c|d){5,7}?(.)/  
     acdbcdbe  
   
 /a(?:b|(c|e){1,2}?|d)+?(.)/  
     ace  
   
 /^(.+)?B/  
     AB  
   
 /^([^a-z])|(\^)$/  
     .  
   
 /^[<>]&/  
     <&OUT  
   
 /^(a\1?){4}$/  
     aaaaaaaaaa  
     *** Failers  
     AB  
     aaaaaaaaa  
     aaaaaaaaaaa  
   
 /^(a(?(1)\1)){4}$/  
     aaaaaaaaaa  
     *** Failers  
     aaaaaaaaa  
     aaaaaaaaaaa  
   
 /(?:(f)(o)(o)|(b)(a)(r))*/  
     foobar  
   
 /(?<=a)b/  
     ab  
     *** Failers  
     cb  
     b  
   
 /(?<!c)b/  
     ab  
     b  
     b  
   
 /(?:..)*a/  
     aba  
   
 /(?:..)*?a/  
     aba  
   
 /^(?:b|a(?=(.)))*\1/  
     abc  
   
 /^(){3,5}/  
     abc  
   
 /^(a+)*ax/  
     aax  
   
 /^((a|b)+)*ax/  
     aax  
   
 /^((a|bc)+)*ax/  
     aax  
   
 /(a|x)*ab/  
     cab  
   
 /(a)*ab/  
     cab  
   
 /(?:(?i)a)b/  
     ab  
   
 /((?i)a)b/  
     ab  
   
 /(?:(?i)a)b/  
     Ab  
   
 /((?i)a)b/  
     Ab  
   
 /(?:(?i)a)b/  
     *** Failers  
     cb  
     aB  
   
 /((?i)a)b/  
   
 /(?i:a)b/  
     ab  
   
 /((?i:a))b/  
     ab  
   
 /(?i:a)b/  
     Ab  
   
 /((?i:a))b/  
     Ab  
   
 /(?i:a)b/  
     *** Failers  
     aB  
     aB  
   
 /((?i:a))b/  
   
 /(?:(?-i)a)b/i  
     ab  
   
 /((?-i)a)b/i  
     ab  
   
 /(?:(?-i)a)b/i  
     aB  
   
 /((?-i)a)b/i  
     aB  
   
 /(?:(?-i)a)b/i  
     *** Failers  
     aB  
     Ab  
   
 /((?-i)a)b/i  
   
 /(?:(?-i)a)b/i  
     aB  
   
 /((?-i)a)b/i  
     aB  
   
 /(?:(?-i)a)b/i  
     *** Failers  
     Ab  
     AB  
   
 /((?-i)a)b/i  
   
 /(?-i:a)b/i  
     ab  
   
 /((?-i:a))b/i  
     ab  
   
 /(?-i:a)b/i  
     aB  
   
 /((?-i:a))b/i  
     aB  
   
 /(?-i:a)b/i  
     *** Failers  
     AB  
     Ab  
   
 /((?-i:a))b/i  
   
 /(?-i:a)b/i  
     aB  
   
 /((?-i:a))b/i  
     aB  
   
 /(?-i:a)b/i  
     *** Failers  
     Ab  
     AB  
   
 /((?-i:a))b/i  
   
 /((?-i:a.))b/i  
     *** Failers  
     AB  
     a\nB  
   
 /((?s-i:a.))b/i  
     a\nB  
   
 /(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))/  
     cabbbb  
   
 /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/  
     caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb  
   
 /(ab)\d\1/i  
     Ab4ab  
     ab4Ab  
   
 /foo\w*\d{4}baz/  
     foobar1234baz  
   
 /x(~~)*(?:(?:F)?)?/  
     x~~  
   
 /^a(?#xxx){3}c/  
     aaac  
   
 /^a (?#xxx) (?#yyy) {3}c/x  
     aaac  
   
 /(?<![cd])b/  
     *** Failers  
     B\nB  
     dbcb  
   
 /(?<![cd])[ab]/  
     dbaacb  
   
 /(?<!(c|d))b/  
   
 /(?<!(c|d))[ab]/  
     dbaacb  
   
 /(?<!cd)[ab]/  
     cdaccb  
   
 /^(?:a?b?)*$/  
     *** Failers  
     dbcb  
     a--  
   
 /((?s)^a(.))((?m)^b$)/  
     a\nb\nc\n  
   
 /((?m)^b$)/  
     a\nb\nc\n  
   
 /(?m)^b/  
     a\nb\n  
   
 /(?m)^(b)/  
     a\nb\n  
   
 /((?m)^b)/  
     a\nb\n  
   
 /\n((?m)^b)/  
     a\nb\n  
   
 /((?s).)c(?!.)/  
     a\nb\nc\n  
     a\nb\nc\n  
   
 /((?s)b.)c(?!.)/  
     a\nb\nc\n  
     a\nb\nc\n  
   
 /^b/  
   
 /()^b/  
     *** Failers  
     a\nb\nc\n  
     a\nb\nc\n  
   
 /((?m)^b)/  
     a\nb\nc\n  
   
 /(?(1)a|b)/  
   
 /(?(1)b|a)/  
     a  
   
 /(x)?(?(1)a|b)/  
     *** Failers  
     a  
     a  
   
 /(x)?(?(1)b|a)/  
     a  
   
 /()?(?(1)b|a)/  
     a  
   
 /()(?(1)b|a)/  
   
 /()?(?(1)a|b)/  
     a  
   
 /^(\()?blah(?(1)(\)))$/  
     (blah)  
     blah  
     *** Failers  
     a  
     blah)  
     (blah  
   
 /^(\(+)?blah(?(1)(\)))$/  
     (blah)  
     blah  
     *** Failers  
     blah)  
     (blah  
   
 /(?(?!a)a|b)/  
   
 /(?(?!a)b|a)/  
     a  
   
 /(?(?=a)b|a)/  
     *** Failers  
     a  
     a  
   
 /(?(?=a)a|b)/  
     a  
   
 /(?=(a+?))(\1ab)/  
     aaab  
   
 /^(?=(a+?))\1ab/  
   
 /(\w+:)+/  
     one:  
   
 /$(?<=^(a))/  
     a  
   
 /(?=(a+?))(\1ab)/  
     aaab  
   
 /^(?=(a+?))\1ab/  
     *** Failers  
     aaab  
     aaab  
   
 /([\w:]+::)?(\w+)$/  
     abcd  
     xy:z:::abcd  
   
 /^[^bcd]*(c+)/  
     aexycd  
   
 /(a*)b+/  
     caab  
   
 /([\w:]+::)?(\w+)$/  
     abcd  
     xy:z:::abcd  
     *** Failers  
     abcd:  
     abcd:  
   
 /^[^bcd]*(c+)/  
     aexycd  
   
 /(>a+)ab/  
   
 /(?>a+)b/  
     aaab  
   
 /([[:]+)/  
     a:[b]:  
   
 /([[=]+)/  
     a=[b]=  
   
 /([[.]+)/  
     a.[b].  
   
 /((?>a+)b)/  
     aaab  
   
 /(?>(a+))b/  
     aaab  
   
 /((?>[^()]+)|\([^()]*\))+/  
     ((abc(ade)ufh()()x  
   
 /a\Z/  
     *** Failers  
     aaab  
     a\nb\n  
   
 /b\Z/  
     a\nb\n  
   
 /b\z/  
   
 /b\Z/  
     a\nb  
   
 /b\z/  
     a\nb  
     *** Failers  
   
 /^(?>(?(1)\.|())[^\W_](?>[a-z0-9-]*[^\W_])?)+$/  
     a  
     abc  
     a-b  
     0-9  
     a.b  
     5.6.7  
     the.quick.brown.fox  
     a100.b200.300c  
     12-ab.1245  
     ***Failers  
     \  
     .a  
     -a  
     a-  
     a.  
     a_b  
     a.-  
     a..  
     ab..bc  
     the.quick.brown.fox-  
     the.quick.brown.fox.  
     the.quick.brown.fox_  
     the.quick.brown.fox+  
   
 /(?>.*)(?<=(abcd|wxyz))/  
     alphabetabcd  
     endingwxyz  
     *** Failers  
     a rather long string that doesn't end with one of them  
   
 /word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword/  
     word cat dog elephant mussel cow horse canary baboon snake shark otherword  
     word cat dog elephant mussel cow horse canary baboon snake shark  
   
 /word (?>[a-zA-Z0-9]+ ){0,30}otherword/  
     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  
   
 /(?<=\d{3}(?!999))foo/  
     999foo  
     123999foo  
     *** Failers  
     123abcfoo  
   
 /(?<=(?!...999)\d{3})foo/  
     999foo  
     123999foo  
     *** Failers  
     123abcfoo  
   
 /(?<=\d{3}(?!999)...)foo/  
     123abcfoo  
     123456foo  
     *** Failers  
     123999foo  
   
 /(?<=\d{3}...)(?<!999)foo/  
     123abcfoo  
     123456foo  
     *** Failers  
     123999foo  
   
 /<a[\s]+href[\s]*=[\s]*          # find <a href=  
  ([\"\'])?                       # find single or double quote  
  (?(1) (.*?)\1 | ([^\s]+))       # if quote found, match up to next matching  
                                  # quote, otherwise match up to next space  
 /isx  
     <a href=abcd xyz  
     <a href=\"abcd xyz pqr\" cats  
     <a href=\'abcd xyz pqr\' cats  
   
 /<a\s+href\s*=\s*                # find <a href=  
  (["'])?                         # find single or double quote  
  (?(1) (.*?)\1 | (\S+))          # if quote found, match up to next matching  
                                  # quote, otherwise match up to next space  
 /isx  
     <a href=abcd xyz  
     <a href=\"abcd xyz pqr\" cats  
     <a href       =       \'abcd xyz pqr\' cats  
   
 /<a\s+href(?>\s*)=(?>\s*)        # find <a href=  
  (["'])?                         # find single or double quote  
  (?(1) (.*?)\1 | (\S+))          # if quote found, match up to next matching  
                                  # quote, otherwise match up to next space  
 /isx  
     <a href=abcd xyz  
     <a href=\"abcd xyz pqr\" cats  
     <a href       =       \'abcd xyz pqr\' cats  
   
 /((Z)+|A)*/  
     ZABCDEFG  
   
 /(Z()|A)*/  
     ZABCDEFG  
   
 /(Z(())|A)*/  
     ZABCDEFG  
   
 /((?>Z)+|A)*/  
     ZABCDEFG  
   
 /((?>)+|A)*/  
     ZABCDEFG  
   
 /a*/g  
     abbab  
   
 /^[a-\d]/  
     abcde  
     -things  
     0digit  
     *** Failers  
     bcdef  
   
 /^[\d-a]/  
     abcde  
     -things  
     0digit  
     *** Failers  
     bcdef  
64    
65  / End of testinput3 /  / End of testinput3 /

Legend:
Removed from v.49  
changed lines
  Added in v.63

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12