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

Diff of /code/trunk/testdata/testinput2

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

revision 428 by ph10, Mon Aug 31 17:10:26 2009 UTC revision 450 by ph10, Wed Sep 16 10:56:40 2009 UTC
# Line 1  Line 1 
1    /-- This set of tests is not Perl-compatible. It checks on special features
2        of PCRE's API, error diagnostics, and the compiled code of some patterns.
3        It also checks the non-Perl syntax the PCRE supports (Python, .NET,
4        Oniguruma). Finally, there are some tests where PCRE and Perl differ,
5        either because PCRE can't be compatible, or there is potential Perl
6        bug. --/
7    
8    /-- Originally, the Perl 5.10 things were in here too, but now I have separated
9        many (most?) of them out into test 11. However, there may still be some
10        that were overlooked. --/
11    
12  /(a)b|/I  /(a)b|/I
13    
14  /abc/I  /abc/I
# Line 123  Line 134 
134      defabc      defabc
135      \Zdefabc      \Zdefabc
136    
137  /abc/IP  /abc/P
138      abc      abc
139      *** Failers      *** Failers
140    
141  /^abc|def/IP  /^abc|def/P
142      abcdef      abcdef
143      abcdef\B      abcdef\B
144    
145  /.*((abc)$|(def))/IP  /.*((abc)$|(def))/P
146      defabc      defabc
147      \Zdefabc      \Zdefabc
148    
149  /the quick brown fox/IP  /the quick brown fox/P
150      the quick brown fox      the quick brown fox
151      *** Failers      *** Failers
152      The Quick Brown Fox      The Quick Brown Fox
153    
154  /the quick brown fox/IPi  /the quick brown fox/Pi
155      the quick brown fox      the quick brown fox
156      The Quick Brown Fox      The Quick Brown Fox
157    
158  /abc.def/IP  /abc.def/P
159      *** Failers      *** Failers
160      abc\ndef      abc\ndef
161    
162  /abc$/IP  /abc$/P
163      abc      abc
164      abc\n      abc\n
165    
166  /(abc)\2/IP  /(abc)\2/P
167    
168  /(abc\1)/IP  /(abc\1)/P
169      abc      abc
170    
171  /)/  /)/
# Line 593  Line 604 
604      *** Failers      *** Failers
605      \Nabc      \Nabc
606    
607  /a*(b+)(z)(z)/IP  /a*(b+)(z)(z)/P
608      aaaabbbbzzzz      aaaabbbbzzzz
609      aaaabbbbzzzz\O0      aaaabbbbzzzz\O0
610      aaaabbbbzzzz\O1      aaaabbbbzzzz\O1
# Line 1419  Line 1430 
1430      ** Failers      ** Failers
1431      line one\nthis is a line\nbreak in the second line      line one\nthis is a line\nbreak in the second line
1432    
1433  /ab.cd/IP  /ab.cd/P
1434      ab-cd      ab-cd
1435      ab=cd      ab=cd
1436      ** Failers      ** Failers
1437      ab\ncd      ab\ncd
1438    
1439  /ab.cd/IPs  /ab.cd/Ps
1440      ab-cd      ab-cd
1441      ab=cd      ab=cd
1442      ab\ncd      ab\ncd
# Line 1480  Line 1491 
1491      (this)      (this)
1492      ((this))      ((this))
1493    
1494  /a(b)c/IPN  /a(b)c/PN
1495      abc      abc
1496    
1497  /a(?P<name>b)c/IPN  /a(?P<name>b)c/PN
1498      abc      abc
1499    
1500  /\x{100}/I  /\x{100}/I
# Line 1915  a random value. /Ix Line 1926  a random value. /Ix
1926  /(?=(?'abc'\w+))\k<abc>:/I  /(?=(?'abc'\w+))\k<abc>:/I
1927      abcd:      abcd:
1928    
 /(?'abc'\w+):\k<abc>{2}/  
     a:aaxyz  
     ab:ababxyz  
     ** Failers  
     a:axyz  
     ab:abxyz  
   
1929  /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J  /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J
1930      adaa      adaa
1931      ** Failers      ** Failers
# Line 1934  a random value. /Ix Line 1938  a random value. /Ix
1938      ** Failers      ** Failers
1939      bddd      bddd
1940    
 /^(?<ab>a)? (?(<ab>)b|c) (?('ab')d|e)/x  
     abd  
     ce  
   
1941  /(?(<bc))/  /(?(<bc))/
1942    
1943  /(?(''))/  /(?(''))/
# Line 1955  a random value. /Ix Line 1955  a random value. /Ix
1955  /(?<1> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x  /(?<1> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x
1956      abcabc1Xabc2XabcXabcabc      abcabc1Xabc2XabcXabcabc
1957    
 /^(?(DEFINE) (?<A> a) (?<B> b) )  (?&A) (?&B) /x  
     abcd  
   
 /(?<NAME>(?&NAME_PAT))\s+(?<ADDR>(?&ADDRESS_PAT))  
   (?(DEFINE)  
   (?<NAME_PAT>[a-z]+)  
   (?<ADDRESS_PAT>\d+)  
   )/x  
     metcalfe 33  
   
1958  /^(?(DEFINE) abc | xyz ) /x  /^(?(DEFINE) abc | xyz ) /x
1959    
1960  /(?(DEFINE) abc) xyz/xI  /(?(DEFINE) abc) xyz/xI
# Line 2053  a random value. /Ix Line 2043  a random value. /Ix
2043  /(?1)X(?<abc>P)/I  /(?1)X(?<abc>P)/I
2044      abcPXP123      abcPXP123
2045    
 /(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))\b(?&byte)(\.(?&byte)){3}/  
     1.2.3.4  
     131.111.10.206  
     10.0.0.0  
     ** Failers  
     10.6  
     455.3.4.5  
   
 /\b(?&byte)(\.(?&byte)){3}(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))/  
     1.2.3.4  
     131.111.10.206  
     10.0.0.0  
     ** Failers  
     10.6  
     455.3.4.5  
   
2046  /(?:a(?&abc)b)*(?<abc>x)/  /(?:a(?&abc)b)*(?<abc>x)/
2047      123axbaxbaxbx456      123axbaxbaxbx456
2048      123axbaxbaxb456      123axbaxbaxb456
# Line 2090  a random value. /Ix Line 2064  a random value. /Ix
2064     defabcabcxyz     defabcabcxyz
2065     DEFabcABCXYZ     DEFabcABCXYZ
2066    
 /^(a(b))\1\g1\g{1}\g-1\g{-1}\g{-02}Z/  
     ababababbbabZXXXX  
   
2067  /^(a)\g-2/  /^(a)\g-2/
2068    
2069  /^(a)\g/  /^(a)\g/
# Line 2191  a random value. /Ix Line 2162  a random value. /Ix
2162  /^(?(+1)X|Y)(.)/BZ  /^(?(+1)X|Y)(.)/BZ
2163      Y!      Y!
2164    
 /(foo)\Kbar/  
     foobar  
   
 /(foo)(\Kbar|baz)/  
     foobar  
     foobaz  
   
 /(foo\Kbar)baz/  
     foobarbaz  
   
2165  /(?<A>tom|bon)-\k{A}/  /(?<A>tom|bon)-\k{A}/
2166      tom-tom      tom-tom
2167      bon-bon      bon-bon
2168      ** Failers      ** Failers
2169      tom-bon      tom-bon
2170    
 /(?<A>tom|bon)-\g{A}/  
     tom-tom  
     bon-bon  
   
2171  /\g{A/  /\g{A/
2172    
2173  /(?|(abc)|(xyz))/BZ  /(?|(abc)|(xyz))/BZ
# Line 2225  a random value. /Ix Line 2182  a random value. /Ix
2182      xabcpqrx      xabcpqrx
2183      xxyzx      xxyzx
2184    
 /(?|(abc)|(xyz))\1/  
     abcabc  
     xyzxyz  
     ** Failers  
     abcxyz  
     xyzabc  
   
 /(?|(abc)|(xyz))(?1)/  
     abcabc  
     xyzabc  
     ** Failers  
     xyzxyz  
   
 /\H\h\V\v/  
     X X\x0a  
     X\x09X\x0b  
     ** Failers  
     \xa0 X\x0a  
   
 /\H*\h+\V?\v{3,4}/  
     \x09\x20\xa0X\x0a\x0b\x0c\x0d\x0a  
     \x09\x20\xa0\x0a\x0b\x0c\x0d\x0a  
     \x09\x20\xa0\x0a\x0b\x0c  
     ** Failers  
     \x09\x20\xa0\x0a\x0b  
   
 /\H{3,4}/  
     XY  ABCDE  
     XY  PQR ST  
   
 /.\h{3,4}./  
     XY  AB    PQRS  
   
 /\h*X\h?\H+Y\H?Z/  
     >XNNNYZ  
     >  X NYQZ  
     ** Failers  
     >XYZ  
     >  X NY Z  
   
 /\v*X\v?Y\v+Z\V*\x0a\V+\x0b\V{2,3}\x0c/  
     >XY\x0aZ\x0aA\x0bNN\x0c  
     >\x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c  
   
2185  /[\h]/BZ  /[\h]/BZ
2186      >\x09<      >\x09<
2187    
# Line 2341  a random value. /Ix Line 2254  a random value. /Ix
2254    
2255  /A(*PRUNE)B(*SKIP)C(*THEN)D(*COMMIT)E(*F)F(*FAIL)G(?!)H(*ACCEPT)I/BZ  /A(*PRUNE)B(*SKIP)C(*THEN)D(*COMMIT)E(*F)F(*FAIL)G(?!)H(*ACCEPT)I/BZ
2256    
 /^a+(*FAIL)/  
     aaaaaa  
   
 /a+b?c+(*FAIL)/  
     aaabccc  
   
 /a+b?(*PRUNE)c+(*FAIL)/  
     aaabccc  
   
 /a+b?(*COMMIT)c+(*FAIL)/  
     aaabccc  
   
 /a+b?(*SKIP)c+(*FAIL)/  
     aaabcccaaabccc  
   
 /^(?:aaa(*THEN)\w{6}|bbb(*THEN)\w{5}|ccc(*THEN)\w{4}|\w{3})/  
     aaaxxxxxx  
     aaa++++++  
     bbbxxxxx  
     bbb+++++  
     cccxxxx  
     ccc++++  
     dddddddd  
   
 /^(aaa(*THEN)\w{6}|bbb(*THEN)\w{5}|ccc(*THEN)\w{4}|\w{3})/  
     aaaxxxxxx  
     aaa++++++  
     bbbxxxxx  
     bbb+++++  
     cccxxxx  
     ccc++++  
     dddddddd  
   
 /a+b?(*THEN)c+(*FAIL)/  
     aaabccc  
   
 /(A (A|B(*ACCEPT)|C) D)(E)/x  
     ABX  
     AADE  
     ACDE  
     ** Failers  
     AD  
   
2257  /^a+(*FAIL)/C  /^a+(*FAIL)/C
2258      aaaaaa      aaaaaa
2259    
# Line 2589  a random value. /Ix Line 2459  a random value. /Ix
2459    
2460  /[[:a\dz:]]/  /[[:a\dz:]]/
2461    
 /^(?<name>a|b\g<name>c)/  
     aaaa  
     bacxxx  
     bbaccxxx  
     bbbacccxx  
   
 /^(?<name>a|b\g'name'c)/  
     aaaa  
     bacxxx  
     bbaccxxx  
     bbbacccxx  
   
 /^(a|b\g<1>c)/  
     aaaa  
     bacxxx  
     bbaccxxx  
     bbbacccxx  
   
 /^(a|b\g'1'c)/  
     aaaa  
     bacxxx  
     bbaccxxx  
     bbbacccxx  
   
 /^(a|b\g'-1'c)/  
     aaaa  
     bacxxx  
     bbaccxxx  
     bbbacccxx  
   
 /(^(a|b\g<-1>c))/  
     aaaa  
     bacxxx  
     bbaccxxx  
     bbbacccxx  
   
2462  /(^(a|b\g<-1'c))/  /(^(a|b\g<-1'c))/
2463    
 /(^(a|b\g{-1}))/  
     bacxxx  
   
 /(?-i:\g<name>)(?i:(?<name>a))/  
     XaaX  
     XAAX  
   
 /(?i:\g<name>)(?-i:(?<name>a))/  
     XaaX  
     ** Failers  
     XAAX  
   
 /(?-i:\g<+1>)(?i:(a))/  
     XaaX  
     XAAX  
   
 /(?=(?<regex>(?#simplesyntax)\$(?<name>[a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)(?:\[(?<index>[a-zA-Z0-9_\x{7f}-\x{ff}]+|\$\g<name>)\]|->\g<name>(\(.*?\))?)?|(?#simple syntax withbraces)\$\{(?:\g<name>(?<indices>\[(?:\g<index>|'(?:\\.|[^'\\])*'|"(?:\g<regex>|\\.|[^"\\])*")\])?|\g<complex>|\$\{\g<complex>\})\}|(?#complexsyntax)\{(?<complex>\$(?<segment>\g<name>(\g<indices>*|\(.*?\))?)(?:->\g<segment>)*|\$\g<complex>|\$\{\g<complex>\})\}))\{/  
   
 /(?<n>a|b|c)\g<n>*/  
    abc  
    accccbbb  
   
2464  /^(?+1)(?<a>x|y){0}z/  /^(?+1)(?<a>x|y){0}z/
2465      xzxx      xzxx
2466      yzyy      yzyy
# Line 2755  a random value. /Ix Line 2567  a random value. /Ix
2567  /^"((?(?=[a])[^"])|b)*"$/  /^"((?(?=[a])[^"])|b)*"$/
2568      "ab"      "ab"
2569    
 /^X(?5)(a)(?|(b)|(q))(c)(d)(Y)/  
     XYabcdY  
   
2570  /^X(?5)(a)(?|(b)|(q))(c)(d)Y/  /^X(?5)(a)(?|(b)|(q))(c)(d)Y/
2571      XYabcdY      XYabcdY
2572    
2573  /^X(?&N)(a)(?|(b)|(q))(c)(d)(?<N>Y)/  /^X(?&N)(a)(?|(b)|(q))(c)(d)(?<N>Y)/
2574      XYabcdY      XYabcdY
2575    
 /^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/  
     XYabcdY  
   
 /^X(?7)(a)(?|(b|(r)(s))|(q))(c)(d)(Y)/  
     XYabcdY  
   
 /^X(?7)(a)(?|(b|(?|(r)|(t))(s))|(q))(c)(d)(Y)/  
     XYabcdY  
   
2576  /Xa{2,4}b/  /Xa{2,4}b/
2577      X\P      X\P
2578      Xa\P      Xa\P
# Line 2935  a random value. /Ix Line 2735  a random value. /Ix
2735  /abc/  /abc/
2736     abc\P     abc\P
2737     abc\P\P     abc\P\P
2738    
2739    /\w+A/P
2740       CDAAAAB
2741    
2742    /\w+A/PU
2743       CDAAAAB
2744    
2745    /abc\K123/
2746        xyzabc123pqr
2747        xyzabc12\P
2748        xyzabc12\P\P
2749    
2750    /(?<=abc)123/
2751        xyzabc123pqr
2752        xyzabc12\P
2753        xyzabc12\P\P
2754    
2755    /\babc\b/
2756        +++abc+++
2757        +++ab\P
2758        +++ab\P\P
2759    
2760    /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
2761    
2762    /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
2763    
2764    /(ab)(x(y)z(cd(*ACCEPT)))pq/BZ
2765    
2766    /abc\K/+
2767        abcdef
2768        abcdef\N\N
2769        xyzabcdef\N\N
2770        ** Failers
2771        abcdef\N
2772        xyzabcdef\N
2773    
2774    /^(?:(?=abc)|abc\K)/+
2775        abcdef
2776        abcdef\N\N
2777        ** Failers
2778        abcdef\N
2779    
2780    /a?b?/+
2781        xyz
2782        xyzabc
2783        xyzabc\N
2784        xyzabc\N\N
2785        xyz\N\N
2786        ** Failers
2787        xyz\N
2788    
2789    /^a?b?/+
2790        xyz
2791        xyzabc
2792        ** Failers
2793        xyzabc\N
2794        xyzabc\N\N
2795        xyz\N\N
2796        xyz\N
2797    
2798    /^(?<name>a|b\g<name>c)/
2799        aaaa
2800        bacxxx
2801        bbaccxxx
2802        bbbacccxx
2803    
2804    /^(?<name>a|b\g'name'c)/
2805        aaaa
2806        bacxxx
2807        bbaccxxx
2808        bbbacccxx
2809    
2810    /^(a|b\g<1>c)/
2811        aaaa
2812        bacxxx
2813        bbaccxxx
2814        bbbacccxx
2815    
2816    /^(a|b\g'1'c)/
2817        aaaa
2818        bacxxx
2819        bbaccxxx
2820        bbbacccxx
2821    
2822    /^(a|b\g'-1'c)/
2823        aaaa
2824        bacxxx
2825        bbaccxxx
2826        bbbacccxx
2827    
2828    /(^(a|b\g<-1>c))/
2829        aaaa
2830        bacxxx
2831        bbaccxxx
2832        bbbacccxx
2833    
2834    /(?-i:\g<name>)(?i:(?<name>a))/
2835        XaaX
2836        XAAX
2837    
2838    /(?i:\g<name>)(?-i:(?<name>a))/
2839        XaaX
2840        ** Failers
2841        XAAX
2842    
2843    /(?-i:\g<+1>)(?i:(a))/
2844        XaaX
2845        XAAX
2846    
2847    /(?=(?<regex>(?#simplesyntax)\$(?<name>[a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)(?:\[(?<index>[a-zA-Z0-9_\x{7f}-\x{ff}]+|\$\g<name>)\]|->\g<name>(\(.*?\))?)?|(?#simple syntax withbraces)\$\{(?:\g<name>(?<indices>\[(?:\g<index>|'(?:\\.|[^'\\])*'|"(?:\g<regex>|\\.|[^"\\])*")\])?|\g<complex>|\$\{\g<complex>\})\}|(?#complexsyntax)\{(?<complex>\$(?<segment>\g<name>(\g<indices>*|\(.*?\))?)(?:->\g<segment>)*|\$\g<complex>|\$\{\g<complex>\})\}))\{/
2848    
2849    /(?<n>a|b|c)\g<n>*/
2850       abc
2851       accccbbb
2852    
2853    /^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/
2854        XYabcdY
2855    
2856  / End of testinput2 /  /-- End of testinput2 --/

Legend:
Removed from v.428  
changed lines
  Added in v.450

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12