Home | History | Annotate | Download | only in testdata
      1 /-- This set of tests checks UTF-8 support with the DFA matching functionality
      2     of pcre_dfa_exec(), excluding Unicode property support. The -dfa flag must
      3     be used with pcretest when running it. --/
      4     
      5 < forbid W 
      6 
      7 /\x{100}ab/8
      8   \x{100}ab
      9   
     10 /a\x{100}*b/8
     11     ab
     12     a\x{100}b  
     13     a\x{100}\x{100}b  
     14     
     15 /a\x{100}+b/8
     16     a\x{100}b  
     17     a\x{100}\x{100}b  
     18     *** Failers 
     19     ab
     20      
     21 /\bX/8
     22     Xoanon
     23     +Xoanon
     24     \x{300}Xoanon 
     25     *** Failers 
     26     YXoanon  
     27     
     28 /\BX/8
     29     YXoanon
     30     *** Failers
     31     Xoanon
     32     +Xoanon    
     33     \x{300}Xoanon 
     34 
     35 /X\b/8
     36     X+oanon
     37     ZX\x{300}oanon 
     38     FAX 
     39     *** Failers 
     40     Xoanon  
     41     
     42 /X\B/8
     43     Xoanon  
     44     *** Failers
     45     X+oanon
     46     ZX\x{300}oanon 
     47     FAX 
     48     
     49 /[^a]/8
     50     abcd
     51     a\x{100}   
     52 
     53 /^[abc\x{123}\x{400}-\x{402}]{2,3}\d/8
     54     ab99
     55     \x{123}\x{123}45
     56     \x{400}\x{401}\x{402}6  
     57     *** Failers
     58     d99
     59     \x{123}\x{122}4   
     60     \x{400}\x{403}6  
     61     \x{400}\x{401}\x{402}\x{402}6  
     62 
     63 /a.b/8
     64     acb
     65     a\x7fb
     66     a\x{100}b 
     67     *** Failers
     68     a\nb  
     69 
     70 /a(.{3})b/8
     71     a\x{4000}xyb 
     72     a\x{4000}\x7fyb 
     73     a\x{4000}\x{100}yb 
     74     *** Failers
     75     a\x{4000}b 
     76     ac\ncb 
     77 
     78 /a(.*?)(.)/
     79     a\xc0\x88b
     80 
     81 /a(.*?)(.)/8
     82     a\x{100}b
     83 
     84 /a(.*)(.)/
     85     a\xc0\x88b
     86 
     87 /a(.*)(.)/8
     88     a\x{100}b
     89 
     90 /a(.)(.)/
     91     a\xc0\x92bcd
     92 
     93 /a(.)(.)/8
     94     a\x{240}bcd
     95 
     96 /a(.?)(.)/
     97     a\xc0\x92bcd
     98 
     99 /a(.?)(.)/8
    100     a\x{240}bcd
    101 
    102 /a(.??)(.)/
    103     a\xc0\x92bcd
    104 
    105 /a(.??)(.)/8
    106     a\x{240}bcd
    107 
    108 /a(.{3})b/8
    109     a\x{1234}xyb 
    110     a\x{1234}\x{4321}yb 
    111     a\x{1234}\x{4321}\x{3412}b 
    112     *** Failers
    113     a\x{1234}b 
    114     ac\ncb 
    115 
    116 /a(.{3,})b/8
    117     a\x{1234}xyb 
    118     a\x{1234}\x{4321}yb 
    119     a\x{1234}\x{4321}\x{3412}b 
    120     axxxxbcdefghijb 
    121     a\x{1234}\x{4321}\x{3412}\x{3421}b 
    122     *** Failers
    123     a\x{1234}b 
    124 
    125 /a(.{3,}?)b/8
    126     a\x{1234}xyb 
    127     a\x{1234}\x{4321}yb 
    128     a\x{1234}\x{4321}\x{3412}b 
    129     axxxxbcdefghijb 
    130     a\x{1234}\x{4321}\x{3412}\x{3421}b 
    131     *** Failers
    132     a\x{1234}b 
    133 
    134 /a(.{3,5})b/8
    135     a\x{1234}xyb 
    136     a\x{1234}\x{4321}yb 
    137     a\x{1234}\x{4321}\x{3412}b 
    138     axxxxbcdefghijb 
    139     a\x{1234}\x{4321}\x{3412}\x{3421}b 
    140     axbxxbcdefghijb 
    141     axxxxxbcdefghijb 
    142     *** Failers
    143     a\x{1234}b 
    144     axxxxxxbcdefghijb 
    145 
    146 /a(.{3,5}?)b/8
    147     a\x{1234}xyb 
    148     a\x{1234}\x{4321}yb 
    149     a\x{1234}\x{4321}\x{3412}b 
    150     axxxxbcdefghijb 
    151     a\x{1234}\x{4321}\x{3412}\x{3421}b 
    152     axbxxbcdefghijb 
    153     axxxxxbcdefghijb 
    154     *** Failers
    155     a\x{1234}b 
    156     axxxxxxbcdefghijb 
    157 
    158 /^[a\x{c0}]/8
    159     *** Failers
    160     \x{100}
    161 
    162 /(?<=aXb)cd/8
    163     aXbcd
    164 
    165 /(?<=a\x{100}b)cd/8
    166     a\x{100}bcd
    167 
    168 /(?<=a\x{100000}b)cd/8
    169     a\x{100000}bcd
    170     
    171 /(?:\x{100}){3}b/8
    172     \x{100}\x{100}\x{100}b
    173     *** Failers 
    174     \x{100}\x{100}b
    175 
    176 /\x{ab}/8
    177     \x{ab} 
    178     \xc2\xab
    179     *** Failers 
    180     \x00{ab}
    181 
    182 /(?<=(.))X/8
    183     WXYZ
    184     \x{256}XYZ 
    185     *** Failers
    186     XYZ 
    187 
    188 /[^a]+/8g
    189     bcd
    190     \x{100}aY\x{256}Z 
    191     
    192 /^[^a]{2}/8
    193     \x{100}bc
    194  
    195 /^[^a]{2,}/8
    196     \x{100}bcAa
    197 
    198 /^[^a]{2,}?/8
    199     \x{100}bca
    200 
    201 /[^a]+/8ig
    202     bcd
    203     \x{100}aY\x{256}Z 
    204     
    205 /^[^a]{2}/8i
    206     \x{100}bc
    207  
    208 /^[^a]{2,}/8i
    209     \x{100}bcAa
    210 
    211 /^[^a]{2,}?/8i
    212     \x{100}bca
    213 
    214 /\x{100}{0,0}/8
    215     abcd
    216  
    217 /\x{100}?/8
    218     abcd
    219     \x{100}\x{100} 
    220 
    221 /\x{100}{0,3}/8 
    222     \x{100}\x{100} 
    223     \x{100}\x{100}\x{100}\x{100} 
    224     
    225 /\x{100}*/8
    226     abce
    227     \x{100}\x{100}\x{100}\x{100} 
    228 
    229 /\x{100}{1,1}/8
    230     abcd\x{100}\x{100}\x{100}\x{100} 
    231 
    232 /\x{100}{1,3}/8
    233     abcd\x{100}\x{100}\x{100}\x{100} 
    234 
    235 /\x{100}+/8
    236     abcd\x{100}\x{100}\x{100}\x{100} 
    237 
    238 /\x{100}{3}/8
    239     abcd\x{100}\x{100}\x{100}XX
    240 
    241 /\x{100}{3,5}/8
    242     abcd\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}XX
    243 
    244 /\x{100}{3,}/8O
    245     abcd\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}XX
    246 
    247 /(?<=a\x{100}{2}b)X/8
    248     Xyyya\x{100}\x{100}bXzzz
    249 
    250 /\D*/8O
    251   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    252 
    253 /\D*/8O
    254   \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
    255 
    256 /\D/8
    257     1X2
    258     1\x{100}2 
    259   
    260 />\S/8
    261     > >X Y
    262     > >\x{100} Y
    263   
    264 /\d/8
    265     \x{100}3
    266     
    267 /\s/8
    268     \x{100} X
    269     
    270 /\D+/8
    271     12abcd34
    272     *** Failers
    273     1234  
    274 
    275 /\D{2,3}/8
    276     12abcd34
    277     12ab34
    278     *** Failers  
    279     1234
    280     12a34  
    281 
    282 /\D{2,3}?/8
    283     12abcd34
    284     12ab34
    285     *** Failers  
    286     1234
    287     12a34  
    288 
    289 /\d+/8
    290     12abcd34
    291     *** Failers
    292 
    293 /\d{2,3}/8
    294     12abcd34
    295     1234abcd
    296     *** Failers  
    297     1.4 
    298 
    299 /\d{2,3}?/8
    300     12abcd34
    301     1234abcd
    302     *** Failers  
    303     1.4 
    304 
    305 /\S+/8
    306     12abcd34
    307     *** Failers
    308     \    \ 
    309 
    310 /\S{2,3}/8
    311     12abcd34
    312     1234abcd
    313     *** Failers
    314     \     \  
    315 
    316 /\S{2,3}?/8
    317     12abcd34
    318     1234abcd
    319     *** Failers
    320     \     \  
    321 
    322 />\s+</8
    323     12>      <34
    324     *** Failers
    325 
    326 />\s{2,3}</8
    327     ab>  <cd
    328     ab>   <ce
    329     *** Failers
    330     ab>    <cd 
    331 
    332 />\s{2,3}?</8
    333     ab>  <cd
    334     ab>   <ce
    335     *** Failers
    336     ab>    <cd 
    337 
    338 /\w+/8
    339     12      34
    340     *** Failers
    341     +++=*! 
    342 
    343 /\w{2,3}/8
    344     ab  cd
    345     abcd ce
    346     *** Failers
    347     a.b.c
    348 
    349 /\w{2,3}?/8
    350     ab  cd
    351     abcd ce
    352     *** Failers
    353     a.b.c
    354 
    355 /\W+/8
    356     12====34
    357     *** Failers
    358     abcd 
    359 
    360 /\W{2,3}/8
    361     ab====cd
    362     ab==cd
    363     *** Failers
    364     a.b.c
    365 
    366 /\W{2,3}?/8
    367     ab====cd
    368     ab==cd
    369     *** Failers
    370     a.b.c
    371 
    372 /[\x{100}]/8
    373     \x{100}
    374     Z\x{100}
    375     \x{100}Z
    376     *** Failers 
    377 
    378 /[Z\x{100}]/8
    379     Z\x{100}
    380     \x{100}
    381     \x{100}Z
    382     *** Failers 
    383 
    384 /[\x{100}\x{200}]/8
    385    ab\x{100}cd
    386    ab\x{200}cd
    387    *** Failers  
    388 
    389 /[\x{100}-\x{200}]/8
    390    ab\x{100}cd
    391    ab\x{200}cd
    392    ab\x{111}cd 
    393    *** Failers  
    394 
    395 /[z-\x{200}]/8
    396    ab\x{100}cd
    397    ab\x{200}cd
    398    ab\x{111}cd 
    399    abzcd
    400    ab|cd  
    401    *** Failers  
    402 
    403 /[Q\x{100}\x{200}]/8
    404    ab\x{100}cd
    405    ab\x{200}cd
    406    Q? 
    407    *** Failers  
    408 
    409 /[Q\x{100}-\x{200}]/8
    410    ab\x{100}cd
    411    ab\x{200}cd
    412    ab\x{111}cd 
    413    Q? 
    414    *** Failers  
    415 
    416 /[Qz-\x{200}]/8
    417    ab\x{100}cd
    418    ab\x{200}cd
    419    ab\x{111}cd 
    420    abzcd
    421    ab|cd  
    422    Q? 
    423    *** Failers  
    424 
    425 /[\x{100}\x{200}]{1,3}/8
    426    ab\x{100}cd
    427    ab\x{200}cd
    428    ab\x{200}\x{100}\x{200}\x{100}cd
    429    *** Failers  
    430 
    431 /[\x{100}\x{200}]{1,3}?/8
    432    ab\x{100}cd
    433    ab\x{200}cd
    434    ab\x{200}\x{100}\x{200}\x{100}cd
    435    *** Failers  
    436 
    437 /[Q\x{100}\x{200}]{1,3}/8
    438    ab\x{100}cd
    439    ab\x{200}cd
    440    ab\x{200}\x{100}\x{200}\x{100}cd
    441    *** Failers  
    442 
    443 /[Q\x{100}\x{200}]{1,3}?/8
    444    ab\x{100}cd
    445    ab\x{200}cd
    446    ab\x{200}\x{100}\x{200}\x{100}cd
    447    *** Failers  
    448 
    449 /(?<=[\x{100}\x{200}])X/8
    450     abc\x{200}X
    451     abc\x{100}X 
    452     *** Failers
    453     X  
    454 
    455 /(?<=[Q\x{100}\x{200}])X/8
    456     abc\x{200}X
    457     abc\x{100}X 
    458     abQX 
    459     *** Failers
    460     X  
    461 
    462 /(?<=[\x{100}\x{200}]{3})X/8
    463     abc\x{100}\x{200}\x{100}X
    464     *** Failers
    465     abc\x{200}X
    466     X  
    467 
    468 /[^\x{100}\x{200}]X/8
    469     AX
    470     \x{150}X
    471     \x{500}X 
    472     *** Failers
    473     \x{100}X
    474     \x{200}X   
    475 
    476 /[^Q\x{100}\x{200}]X/8
    477     AX
    478     \x{150}X
    479     \x{500}X 
    480     *** Failers
    481     \x{100}X
    482     \x{200}X   
    483     QX 
    484 
    485 /[^\x{100}-\x{200}]X/8
    486     AX
    487     \x{500}X 
    488     *** Failers
    489     \x{100}X
    490     \x{150}X
    491     \x{200}X   
    492 
    493 /[z-\x{100}]/8i
    494     z
    495     Z 
    496     \x{100}
    497     *** Failers
    498     \x{102}
    499     y    
    500 
    501 /[\xFF]/
    502     >\xff<
    503 
    504 /[\xff]/8
    505     >\x{ff}<
    506 
    507 /[^\xFF]/
    508     XYZ
    509 
    510 /[^\xff]/8
    511     XYZ
    512     \x{123} 
    513 
    514 /^[ac]*b/8
    515   xb
    516 
    517 /^[ac\x{100}]*b/8
    518   xb
    519 
    520 /^[^x]*b/8i
    521   xb
    522 
    523 /^[^x]*b/8
    524   xb
    525   
    526 /^\d*b/8
    527   xb 
    528 
    529 /(|a)/g8
    530     catac
    531     a\x{256}a 
    532 
    533 /^\x{85}$/8i
    534     \x{85}
    535 
    536 /^abc./mgx8<any>
    537     abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x{0085}abc7 \x{2028}abc8 \x{2029}abc9 JUNK
    538 
    539 /abc.$/mgx8<any>
    540     abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x{0085} abc7\x{2028} abc8\x{2029} abc9
    541 
    542 /^a\Rb/8<bsr_unicode>
    543     a\nb
    544     a\rb
    545     a\r\nb
    546     a\x0bb
    547     a\x0cb
    548     a\x{85}b   
    549     a\x{2028}b 
    550     a\x{2029}b 
    551     ** Failers
    552     a\n\rb    
    553 
    554 /^a\R*b/8<bsr_unicode>
    555     ab
    556     a\nb
    557     a\rb
    558     a\r\nb
    559     a\x0bb
    560     a\x0c\x{2028}\x{2029}b
    561     a\x{85}b   
    562     a\n\rb    
    563     a\n\r\x{85}\x0cb 
    564 
    565 /^a\R+b/8<bsr_unicode>
    566     a\nb
    567     a\rb
    568     a\r\nb
    569     a\x0bb
    570     a\x0c\x{2028}\x{2029}b
    571     a\x{85}b   
    572     a\n\rb    
    573     a\n\r\x{85}\x0cb 
    574     ** Failers
    575     ab  
    576 
    577 /^a\R{1,3}b/8<bsr_unicode>
    578     a\nb
    579     a\n\rb
    580     a\n\r\x{85}b
    581     a\r\n\r\nb 
    582     a\r\n\r\n\r\nb 
    583     a\n\r\n\rb
    584     a\n\n\r\nb 
    585     ** Failers
    586     a\n\n\n\rb
    587     a\r
    588 
    589 /\h+\V?\v{3,4}/8O
    590     \x09\x20\x{a0}X\x0a\x0b\x0c\x0d\x0a
    591 
    592 /\V?\v{3,4}/8O 
    593     \x20\x{a0}X\x0a\x0b\x0c\x0d\x0a
    594 
    595 /\h+\V?\v{3,4}/8O
    596     >\x09\x20\x{a0}X\x0a\x0a\x0a<
    597 
    598 /\V?\v{3,4}/8O
    599     >\x09\x20\x{a0}X\x0a\x0a\x0a<
    600 
    601 /\H\h\V\v/8
    602     X X\x0a
    603     X\x09X\x0b
    604     ** Failers
    605     \x{a0} X\x0a   
    606     
    607 /\H*\h+\V?\v{3,4}/8O 
    608     \x09\x20\x{a0}X\x0a\x0b\x0c\x0d\x0a
    609     \x09\x20\x{a0}\x0a\x0b\x0c\x0d\x0a
    610     \x09\x20\x{a0}\x0a\x0b\x0c
    611     ** Failers 
    612     \x09\x20\x{a0}\x0a\x0b
    613      
    614 /\H\h\V\v/8
    615     \x{3001}\x{3000}\x{2030}\x{2028}
    616     X\x{180e}X\x{85}
    617     ** Failers
    618     \x{2009} X\x0a   
    619     
    620 /\H*\h+\V?\v{3,4}/8O 
    621     \x{1680}\x{180e}\x{2007}X\x{2028}\x{2029}\x0c\x0d\x0a
    622     \x09\x{205f}\x{a0}\x0a\x{2029}\x0c\x{2028}\x0a
    623     \x09\x20\x{202f}\x0a\x0b\x0c
    624     ** Failers 
    625     \x09\x{200a}\x{a0}\x{2028}\x0b
    626      
    627 /a\Rb/I8<bsr_anycrlf>
    628     a\rb
    629     a\nb
    630     a\r\nb
    631     ** Failers
    632     a\x{85}b
    633     a\x0bb     
    634 
    635 /a\Rb/I8<bsr_unicode>
    636     a\rb
    637     a\nb
    638     a\r\nb
    639     a\x{85}b
    640     a\x0bb     
    641     ** Failers 
    642     a\x{85}b\<bsr_anycrlf>
    643     a\x0bb\<bsr_anycrlf>
    644     
    645 /a\R?b/I8<bsr_anycrlf>
    646     a\rb
    647     a\nb
    648     a\r\nb
    649     ** Failers
    650     a\x{85}b
    651     a\x0bb     
    652 
    653 /a\R?b/I8<bsr_unicode>
    654     a\rb
    655     a\nb
    656     a\r\nb
    657     a\x{85}b
    658     a\x0bb     
    659     ** Failers 
    660     a\x{85}b\<bsr_anycrlf>
    661     a\x0bb\<bsr_anycrlf>
    662  
    663 /X/8f<any> 
    664     A\x{1ec5}ABCXYZ
    665 
    666 /abcd*/8
    667     xxxxabcd\P
    668     xxxxabcd\P\P
    669 
    670 /abcd*/i8
    671     xxxxabcd\P
    672     xxxxabcd\P\P
    673     XXXXABCD\P
    674     XXXXABCD\P\P
    675 
    676 /abc\d*/8
    677     xxxxabc1\P
    678     xxxxabc1\P\P
    679 
    680 /abc[de]*/8
    681     xxxxabcde\P
    682     xxxxabcde\P\P
    683 
    684 /\bthe cat\b/8
    685     the cat\P
    686     the cat\P\P
    687 
    688 /ab\Cde/8
    689     abXde
    690 
    691 /(?<=ab\Cde)X/8
    692 
    693 /./8<CRLF>
    694     \r\P
    695     \r\P\P 
    696   
    697 /.{2,3}/8<CRLF>
    698     \r\P 
    699     \r\P\P
    700     \r\r\P
    701     \r\r\P\P
    702     \r\r\r\P
    703     \r\r\r\P\P     
    704 
    705 /.{2,3}?/8<CRLF>
    706     \r\P 
    707     \r\P\P
    708     \r\r\P
    709     \r\r\P\P
    710     \r\r\r\P
    711     \r\r\r\P\P     
    712 
    713 /[^\x{100}]/8
    714     \x{100}\x{101}X
    715 
    716 /[^\x{100}]+/8
    717     \x{100}\x{101}X
    718 
    719 /-- End of testinput9 --/ 
    720