Home | History | Annotate | Download | only in testdata
      1 /-- This set of tests check Unicode property support with the DFA matching 
      2     functionality of pcre_dfa_exec(). The -dfa flag must be used with pcretest
      3     when running it. --/
      4 
      5 /\pL\P{Nd}/8
      6     AB
      7     *** Failers
      8     A0
      9     00   
     10 
     11 /\X./8
     12     AB
     13     A\x{300}BC 
     14     A\x{300}\x{301}\x{302}BC 
     15     *** Failers
     16     \x{300}  
     17 
     18 /\X\X/8
     19     ABC
     20     A\x{300}B\x{300}\x{301}C 
     21     A\x{300}\x{301}\x{302}BC 
     22     *** Failers
     23     \x{300}  
     24 
     25 /^\pL+/8
     26     abcd
     27     a 
     28     *** Failers 
     29 
     30 /^\PL+/8
     31     1234
     32     = 
     33     *** Failers 
     34     abcd 
     35 
     36 /^\X+/8
     37     abcdA\x{300}\x{301}\x{302}
     38     A\x{300}\x{301}\x{302}
     39     A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}
     40     a 
     41     *** Failers 
     42     \x{300}\x{301}\x{302}
     43 
     44 /\X?abc/8
     45     abc
     46     A\x{300}abc
     47     A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz
     48     \x{300}abc  
     49     *** Failers
     50 
     51 /^\X?abc/8
     52     abc
     53     A\x{300}abc
     54     *** Failers
     55     A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz
     56     \x{300}abc  
     57 
     58 /\X*abc/8
     59     abc
     60     A\x{300}abc
     61     A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz
     62     \x{300}abc  
     63     *** Failers
     64 
     65 /^\X*abc/8
     66     abc
     67     A\x{300}abc
     68     A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz
     69     *** Failers
     70     \x{300}abc  
     71 
     72 /^\pL?=./8
     73     A=b
     74     =c 
     75     *** Failers
     76     1=2 
     77     AAAA=b  
     78 
     79 /^\pL*=./8
     80     AAAA=b
     81     =c 
     82     *** Failers
     83     1=2  
     84 
     85 /^\X{2,3}X/8
     86     A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}X
     87     A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}X 
     88     *** Failers
     89     X
     90     A\x{300}\x{301}\x{302}X
     91     A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}X
     92 
     93 /^\pC\pL\pM\pN\pP\pS\pZ</8
     94     \x7f\x{c0}\x{30f}\x{660}\x{66c}\x{f01}\x{1680}<
     95     \np\x{300}9!\$ < 
     96     ** Failers 
     97     ap\x{300}9!\$ < 
     98   
     99 /^\PC/8
    100     X
    101     ** Failers 
    102     \x7f
    103   
    104 /^\PL/8
    105     9
    106     ** Failers 
    107     \x{c0}
    108   
    109 /^\PM/8
    110     X
    111     ** Failers 
    112     \x{30f}
    113   
    114 /^\PN/8
    115     X
    116     ** Failers 
    117     \x{660}
    118   
    119 /^\PP/8
    120     X
    121     ** Failers 
    122     \x{66c}
    123   
    124 /^\PS/8
    125     X
    126     ** Failers 
    127     \x{f01}
    128   
    129 /^\PZ/8
    130     X
    131     ** Failers 
    132     \x{1680}
    133     
    134 /^\p{Cc}/8
    135     \x{017}
    136     \x{09f} 
    137     ** Failers
    138     \x{0600} 
    139   
    140 /^\p{Cf}/8
    141     \x{601}
    142     \x{180e}
    143     \x{061c}
    144     \x{2066}
    145     \x{2067}
    146     \x{2068}
    147     \x{2069}
    148     ** Failers
    149     \x{09f} 
    150   
    151 /^\p{Cn}/8
    152     ** Failers
    153     \x{09f} 
    154   
    155 /^\p{Co}/8
    156     \x{f8ff}
    157     ** Failers
    158     \x{09f} 
    159   
    160 /^\p{Cs}/8
    161     \?\x{dfff}
    162     ** Failers
    163     \x{09f} 
    164   
    165 /^\p{Ll}/8
    166     a
    167     ** Failers 
    168     Z
    169     \x{e000}  
    170   
    171 /^\p{Lm}/8
    172     \x{2b0}
    173     ** Failers
    174     a 
    175   
    176 /^\p{Lo}/8
    177     \x{1bb}
    178     ** Failers
    179     a 
    180     \x{2b0}
    181   
    182 /^\p{Lt}/8
    183     \x{1c5}
    184     ** Failers
    185     a 
    186     \x{2b0}
    187   
    188 /^\p{Lu}/8
    189     A
    190     ** Failers
    191     \x{2b0}
    192   
    193 /^\p{Mc}/8
    194     \x{903}
    195     ** Failers
    196     X
    197     \x{300}
    198        
    199 /^\p{Me}/8
    200     \x{488}
    201     ** Failers
    202     X
    203     \x{903}
    204     \x{300}
    205   
    206 /^\p{Mn}/8
    207     \x{300}
    208     \x{1a1b}
    209     ** Failers
    210     X
    211     \x{903}
    212   
    213 /^\p{Nd}+/8O
    214     0123456789\x{660}\x{661}\x{662}\x{663}\x{664}\x{665}\x{666}\x{667}\x{668}\x{669}\x{66a}
    215     \x{6f0}\x{6f1}\x{6f2}\x{6f3}\x{6f4}\x{6f5}\x{6f6}\x{6f7}\x{6f8}\x{6f9}\x{6fa}
    216     \x{966}\x{967}\x{968}\x{969}\x{96a}\x{96b}\x{96c}\x{96d}\x{96e}\x{96f}\x{970}
    217     ** Failers
    218     X
    219   
    220 /^\p{Nl}/8
    221     \x{16ee}
    222     ** Failers
    223     X
    224     \x{966}
    225   
    226 /^\p{No}/8
    227     \x{b2}
    228     \x{b3}
    229     ** Failers
    230     X
    231     \x{16ee}
    232   
    233 /^\p{Pc}/8
    234     \x5f
    235     \x{203f}
    236     ** Failers
    237     X
    238     -
    239     \x{58a}
    240   
    241 /^\p{Pd}/8
    242     -
    243     \x{58a}
    244     ** Failers
    245     X
    246     \x{203f}
    247   
    248 /^\p{Pe}/8
    249     )
    250     ]
    251     }
    252     \x{f3b}
    253     \x{2309}
    254     \x{230b}
    255     ** Failers
    256     X
    257     \x{203f}
    258     (
    259     [
    260     {
    261     \x{f3c}
    262 
    263 /^\p{Pf}/8
    264     \x{bb}
    265     \x{2019}
    266     ** Failers
    267     X
    268     \x{203f}
    269   
    270 /^\p{Pi}/8
    271     \x{ab}
    272     \x{2018}
    273     ** Failers
    274     X
    275     \x{203f}
    276   
    277 /^\p{Po}/8
    278     !
    279     \x{37e}
    280     ** Failers
    281     X
    282     \x{203f}
    283   
    284 /^\p{Ps}/8
    285     (
    286     [
    287     {
    288     \x{f3c}
    289     \x{2308}
    290     \x{230a}
    291     ** Failers
    292     X
    293     )
    294     ]
    295     }
    296     \x{f3b}
    297   
    298 /^\p{Sc}+/8
    299     $\x{a2}\x{a3}\x{a4}\x{a5}\x{a6}
    300     \x{9f2}
    301     ** Failers
    302     X
    303     \x{2c2}
    304   
    305 /^\p{Sk}/8
    306     \x{2c2}
    307     ** Failers
    308     X
    309     \x{9f2}
    310   
    311 /^\p{Sm}+/8
    312     +<|~\x{ac}\x{2044}
    313     ** Failers
    314     X
    315     \x{9f2}
    316   
    317 /^\p{So}/8
    318     \x{a6}
    319     \x{482} 
    320     ** Failers
    321     X
    322     \x{9f2}
    323   
    324 /^\p{Zl}/8
    325     \x{2028}
    326     ** Failers
    327     X
    328     \x{2029}
    329   
    330 /^\p{Zp}/8
    331     \x{2029}
    332     ** Failers
    333     X
    334     \x{2028}
    335   
    336 /^\p{Zs}/8
    337     \ \
    338     \x{a0}
    339     \x{1680}
    340     \x{2000}
    341     \x{2001}     
    342     ** Failers
    343     \x{2028}
    344     \x{200d} 
    345   
    346 /\p{Nd}+(..)/8
    347       \x{660}\x{661}\x{662}ABC
    348   
    349 /\p{Nd}+?(..)/8
    350       \x{660}\x{661}\x{662}ABC
    351   
    352 /\p{Nd}{2,}(..)/8
    353       \x{660}\x{661}\x{662}ABC
    354   
    355 /\p{Nd}{2,}?(..)/8
    356       \x{660}\x{661}\x{662}ABC
    357   
    358 /\p{Nd}*(..)/8
    359       \x{660}\x{661}\x{662}ABC
    360   
    361 /\p{Nd}*?(..)/8
    362       \x{660}\x{661}\x{662}ABC
    363   
    364 /\p{Nd}{2}(..)/8
    365       \x{660}\x{661}\x{662}ABC
    366   
    367 /\p{Nd}{2,3}(..)/8
    368       \x{660}\x{661}\x{662}ABC
    369   
    370 /\p{Nd}{2,3}?(..)/8
    371       \x{660}\x{661}\x{662}ABC
    372   
    373 /\p{Nd}?(..)/8
    374       \x{660}\x{661}\x{662}ABC
    375   
    376 /\p{Nd}??(..)/8
    377       \x{660}\x{661}\x{662}ABC
    378   
    379 /\p{Nd}*+(..)/8
    380       \x{660}\x{661}\x{662}ABC
    381   
    382 /\p{Nd}*+(...)/8
    383       \x{660}\x{661}\x{662}ABC
    384   
    385 /\p{Nd}*+(....)/8
    386       ** Failers
    387       \x{660}\x{661}\x{662}ABC
    388   
    389 /\p{Lu}/8i
    390     A
    391     a\x{10a0}B 
    392     ** Failers 
    393     a
    394     \x{1d00}  
    395 
    396 /\p{^Lu}/8i
    397     1234
    398     ** Failers
    399     ABC 
    400 
    401 /\P{Lu}/8i
    402     1234
    403     ** Failers
    404     ABC 
    405 
    406 /(?<=A\p{Nd})XYZ/8
    407     A2XYZ
    408     123A5XYZPQR
    409     ABA\x{660}XYZpqr
    410     ** Failers
    411     AXYZ
    412     XYZ     
    413     
    414 /(?<!\pL)XYZ/8
    415     1XYZ
    416     AB=XYZ.. 
    417     XYZ 
    418     ** Failers
    419     WXYZ 
    420 
    421 /[\p{Nd}]/8
    422     1234
    423 
    424 /[\p{Nd}+-]+/8
    425     1234
    426     12-34
    427     12+\x{661}-34  
    428     ** Failers
    429     abcd  
    430 
    431 /[\P{Nd}]+/8
    432     abcd
    433     ** Failers
    434     1234
    435 
    436 /\D+/8O
    437     11111111111111111111111111111111111111111111111111111111111111111111111
    438     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    439      
    440 /\P{Nd}+/8O
    441     11111111111111111111111111111111111111111111111111111111111111111111111
    442     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    443 
    444 /[\D]+/8O
    445     11111111111111111111111111111111111111111111111111111111111111111111111
    446     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    447 
    448 /[\P{Nd}]+/8O
    449     11111111111111111111111111111111111111111111111111111111111111111111111
    450     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    451 
    452 /[\D\P{Nd}]+/8O
    453     11111111111111111111111111111111111111111111111111111111111111111111111
    454     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    455 
    456 /\pL/8
    457     a
    458     A 
    459 
    460 /\pL/8i
    461     a
    462     A 
    463     
    464 /\p{Lu}/8 
    465     A
    466     aZ
    467     ** Failers
    468     abc   
    469 
    470 /\p{Lu}/8i
    471     A
    472     aZ
    473     ** Failers
    474     abc   
    475 
    476 /\p{Ll}/8 
    477     a
    478     Az
    479     ** Failers
    480     ABC   
    481 
    482 /\p{Ll}/8i 
    483     a
    484     Az
    485     ** Failers
    486     ABC   
    487 
    488 /^\x{c0}$/8i
    489     \x{c0}
    490     \x{e0} 
    491 
    492 /^\x{e0}$/8i
    493     \x{c0}
    494     \x{e0} 
    495 
    496 /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8
    497     A\x{391}\x{10427}\x{ff3a}\x{1fb0}
    498     ** Failers
    499     a\x{391}\x{10427}\x{ff3a}\x{1fb0}   
    500     A\x{3b1}\x{10427}\x{ff3a}\x{1fb0}
    501     A\x{391}\x{1044F}\x{ff3a}\x{1fb0}
    502     A\x{391}\x{10427}\x{ff5a}\x{1fb0}
    503     A\x{391}\x{10427}\x{ff3a}\x{1fb8}
    504 
    505 /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8i
    506     A\x{391}\x{10427}\x{ff3a}\x{1fb0}
    507     a\x{391}\x{10427}\x{ff3a}\x{1fb0}   
    508     A\x{3b1}\x{10427}\x{ff3a}\x{1fb0}
    509     A\x{391}\x{1044F}\x{ff3a}\x{1fb0}
    510     A\x{391}\x{10427}\x{ff5a}\x{1fb0}
    511     A\x{391}\x{10427}\x{ff3a}\x{1fb8}
    512 
    513 /\x{391}+/8i
    514     \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}
    515 
    516 /\x{391}{3,5}(.)/8i
    517     \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}X
    518 
    519 /\x{391}{3,5}?(.)/8i
    520     \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}X
    521 
    522 /[\x{391}\x{ff3a}]/8i
    523     \x{391}
    524     \x{ff3a}
    525     \x{3b1}
    526     \x{ff5a}   
    527     
    528 /[\x{c0}\x{391}]/8i
    529     \x{c0}
    530     \x{e0} 
    531 
    532 /[\x{105}-\x{109}]/8i
    533     \x{104}
    534     \x{105}
    535     \x{109}  
    536     ** Failers
    537     \x{100}
    538     \x{10a} 
    539     
    540 /[z-\x{100}]/8i 
    541     Z
    542     z
    543     \x{39c}
    544     \x{178}
    545     |
    546     \x{80}
    547     \x{ff}
    548     \x{100}
    549     \x{101} 
    550     ** Failers
    551     \x{102}
    552     Y
    553     y           
    554 
    555 /[z-\x{100}]/8i
    556 
    557 /^\X/8
    558     A
    559     A\x{300}BC 
    560     A\x{300}\x{301}\x{302}BC 
    561     *** Failers
    562     \x{300}  
    563 
    564 /^[\X]/8
    565     X123
    566     *** Failers
    567     AXYZ
    568 
    569 /^(\X*)C/8
    570     A\x{300}\x{301}\x{302}BCA\x{300}\x{301} 
    571     A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C 
    572 
    573 /^(\X*?)C/8
    574     A\x{300}\x{301}\x{302}BCA\x{300}\x{301} 
    575     A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C 
    576 
    577 /^(\X*)(.)/8
    578     A\x{300}\x{301}\x{302}BCA\x{300}\x{301} 
    579     A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C 
    580 
    581 /^(\X*?)(.)/8
    582     A\x{300}\x{301}\x{302}BCA\x{300}\x{301} 
    583     A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C 
    584 
    585 /^\X(.)/8
    586     *** Failers
    587     A\x{300}\x{301}\x{302}
    588 
    589 /^\X{2,3}(.)/8
    590     A\x{300}\x{301}B\x{300}X
    591     A\x{300}\x{301}B\x{300}C\x{300}\x{301}
    592     A\x{300}\x{301}B\x{300}C\x{300}\x{301}X
    593     A\x{300}\x{301}B\x{300}C\x{300}\x{301}DA\x{300}X
    594     
    595 /^\X{2,3}?(.)/8
    596     A\x{300}\x{301}B\x{300}X
    597     A\x{300}\x{301}B\x{300}C\x{300}\x{301}
    598     A\x{300}\x{301}B\x{300}C\x{300}\x{301}X
    599     A\x{300}\x{301}B\x{300}C\x{300}\x{301}DA\x{300}X
    600 
    601 /^\pN{2,3}X/
    602     12X
    603     123X
    604     *** Failers
    605     X
    606     1X
    607     1234X     
    608 
    609 /\x{100}/i8
    610     \x{100}   
    611     \x{101} 
    612     
    613 /^\p{Han}+/8
    614     \x{2e81}\x{3007}\x{2f804}\x{31a0}
    615     ** Failers
    616     \x{2e7f}  
    617 
    618 /^\P{Katakana}+/8
    619     \x{3105}
    620     ** Failers
    621     \x{30ff}  
    622 
    623 /^[\p{Arabic}]/8
    624     \x{06e9}
    625     \x{060b}
    626     ** Failers
    627     X\x{06e9}   
    628 
    629 /^[\P{Yi}]/8
    630     \x{2f800}
    631     ** Failers
    632     \x{a014}
    633     \x{a4c6}   
    634 
    635 /^\p{Any}X/8
    636     AXYZ
    637     \x{1234}XYZ 
    638     ** Failers
    639     X  
    640     
    641 /^\P{Any}X/8
    642     ** Failers
    643     AX
    644     
    645 /^\p{Any}?X/8
    646     XYZ
    647     AXYZ
    648     \x{1234}XYZ 
    649     ** Failers
    650     ABXYZ   
    651 
    652 /^\P{Any}?X/8
    653     XYZ
    654     ** Failers
    655     AXYZ
    656     \x{1234}XYZ 
    657     ABXYZ   
    658 
    659 /^\p{Any}+X/8
    660     AXYZ
    661     \x{1234}XYZ
    662     A\x{1234}XYZ
    663     ** Failers
    664     XYZ
    665 
    666 /^\P{Any}+X/8
    667     ** Failers
    668     AXYZ
    669     \x{1234}XYZ
    670     A\x{1234}XYZ
    671     XYZ
    672 
    673 /^\p{Any}*X/8
    674     XYZ
    675     AXYZ
    676     \x{1234}XYZ
    677     A\x{1234}XYZ
    678     ** Failers
    679 
    680 /^\P{Any}*X/8
    681     XYZ
    682     ** Failers
    683     AXYZ
    684     \x{1234}XYZ
    685     A\x{1234}XYZ
    686 
    687 /^[\p{Any}]X/8
    688     AXYZ
    689     \x{1234}XYZ 
    690     ** Failers
    691     X  
    692     
    693 /^[\P{Any}]X/8
    694     ** Failers
    695     AX
    696     
    697 /^[\p{Any}]?X/8
    698     XYZ
    699     AXYZ
    700     \x{1234}XYZ 
    701     ** Failers
    702     ABXYZ   
    703 
    704 /^[\P{Any}]?X/8
    705     XYZ
    706     ** Failers
    707     AXYZ
    708     \x{1234}XYZ 
    709     ABXYZ   
    710 
    711 /^[\p{Any}]+X/8
    712     AXYZ
    713     \x{1234}XYZ
    714     A\x{1234}XYZ
    715     ** Failers
    716     XYZ
    717 
    718 /^[\P{Any}]+X/8
    719     ** Failers
    720     AXYZ
    721     \x{1234}XYZ
    722     A\x{1234}XYZ
    723     XYZ
    724 
    725 /^[\p{Any}]*X/8
    726     XYZ
    727     AXYZ
    728     \x{1234}XYZ
    729     A\x{1234}XYZ
    730     ** Failers
    731 
    732 /^[\P{Any}]*X/8
    733     XYZ
    734     ** Failers
    735     AXYZ
    736     \x{1234}XYZ
    737     A\x{1234}XYZ
    738 
    739 /^\p{Any}{3,5}?/8
    740     abcdefgh
    741     \x{1234}\n\r\x{3456}xyz 
    742 
    743 /^\p{Any}{3,5}/8
    744     abcdefgh
    745     \x{1234}\n\r\x{3456}xyz 
    746 
    747 /^\P{Any}{3,5}?/8
    748     ** Failers
    749     abcdefgh
    750     \x{1234}\n\r\x{3456}xyz 
    751 
    752 /^\p{L&}X/8
    753      AXY
    754      aXY
    755      \x{1c5}XY
    756      ** Failers
    757      \x{1bb}XY
    758      \x{2b0}XY
    759      !XY      
    760 
    761 /^[\p{L&}]X/8
    762      AXY
    763      aXY
    764      \x{1c5}XY
    765      ** Failers
    766      \x{1bb}XY
    767      \x{2b0}XY
    768      !XY      
    769 
    770 /^\p{L&}+X/8
    771      AXY
    772      aXY
    773      AbcdeXyz 
    774      \x{1c5}AbXY
    775      abcDEXypqreXlmn 
    776      ** Failers
    777      \x{1bb}XY
    778      \x{2b0}XY
    779      !XY      
    780 
    781 /^[\p{L&}]+X/8
    782      AXY
    783      aXY
    784      AbcdeXyz 
    785      \x{1c5}AbXY
    786      abcDEXypqreXlmn 
    787      ** Failers
    788      \x{1bb}XY
    789      \x{2b0}XY
    790      !XY      
    791 
    792 /^\p{L&}+?X/8
    793      AXY
    794      aXY
    795      AbcdeXyz 
    796      \x{1c5}AbXY
    797      abcDEXypqreXlmn 
    798      ** Failers
    799      \x{1bb}XY
    800      \x{2b0}XY
    801      !XY      
    802 
    803 /^[\p{L&}]+?X/8
    804      AXY
    805      aXY
    806      AbcdeXyz 
    807      \x{1c5}AbXY
    808      abcDEXypqreXlmn 
    809      ** Failers
    810      \x{1bb}XY
    811      \x{2b0}XY
    812      !XY      
    813 
    814 /^\P{L&}X/8
    815      !XY
    816      \x{1bb}XY
    817      \x{2b0}XY
    818      ** Failers
    819      \x{1c5}XY
    820      AXY      
    821 
    822 /^[\P{L&}]X/8
    823      !XY
    824      \x{1bb}XY
    825      \x{2b0}XY
    826      ** Failers
    827      \x{1c5}XY
    828      AXY      
    829 
    830 /^\x{023a}+?(\x{0130}+)/8i
    831   \x{023a}\x{2c65}\x{0130}
    832   
    833 /^\x{023a}+([^X])/8i
    834   \x{023a}\x{2c65}X
    835  
    836 /\x{c0}+\x{116}+/8i
    837     \x{c0}\x{e0}\x{116}\x{117}
    838 
    839 /[\x{c0}\x{116}]+/8i
    840     \x{c0}\x{e0}\x{116}\x{117}
    841 
    842 /Check property support in non-UTF-8 mode/
    843  
    844 /\p{L}{4}/
    845     123abcdefg
    846     123abc\xc4\xc5zz
    847 
    848 /\p{Carian}\p{Cham}\p{Kayah_Li}\p{Lepcha}\p{Lycian}\p{Lydian}\p{Ol_Chiki}\p{Rejang}\p{Saurashtra}\p{Sundanese}\p{Vai}/8
    849     \x{102A4}\x{AA52}\x{A91D}\x{1C46}\x{10283}\x{1092E}\x{1C6B}\x{A93B}\x{A8BF}\x{1BA0}\x{A50A}====
    850 
    851 /\x{a77d}\x{1d79}/8i
    852     \x{a77d}\x{1d79}
    853     \x{1d79}\x{a77d} 
    854 
    855 /\x{a77d}\x{1d79}/8
    856     \x{a77d}\x{1d79}
    857     ** Failers 
    858     \x{1d79}\x{a77d} 
    859 
    860 /^\p{Xan}/8
    861     ABCD
    862     1234
    863     \x{6ca}
    864     \x{a6c}
    865     \x{10a7}   
    866     ** Failers
    867     _ABC   
    868 
    869 /^\p{Xan}+/8
    870     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
    871     ** Failers
    872     _ABC   
    873 
    874 /^\p{Xan}*/8
    875     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
    876     
    877 /^\p{Xan}{2,9}/8
    878     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
    879     
    880 /^[\p{Xan}]/8
    881     ABCD1234_
    882     1234abcd_
    883     \x{6ca}
    884     \x{a6c}
    885     \x{10a7}   
    886     ** Failers
    887     _ABC   
    888  
    889 /^[\p{Xan}]+/8
    890     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
    891     ** Failers
    892     _ABC   
    893 
    894 /^>\p{Xsp}/8
    895     >\x{1680}\x{2028}\x{0b}
    896     ** Failers
    897     \x{0b} 
    898 
    899 /^>\p{Xsp}+/8O
    900     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    901 
    902 /^>\p{Xsp}*/8O
    903     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    904     
    905 /^>\p{Xsp}{2,9}/8O
    906     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    907     
    908 /^>[\p{Xsp}]/8O
    909     >\x{2028}\x{0b}
    910  
    911 /^>[\p{Xsp}]+/8O
    912     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    913 
    914 /^>\p{Xps}/8
    915     >\x{1680}\x{2028}\x{0b}
    916     >\x{a0} 
    917     ** Failers
    918     \x{0b} 
    919 
    920 /^>\p{Xps}+/8
    921     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    922 
    923 /^>\p{Xps}+?/8
    924     >\x{1680}\x{2028}\x{0b}
    925 
    926 /^>\p{Xps}*/8
    927     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    928     
    929 /^>\p{Xps}{2,9}/8
    930     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    931     
    932 /^>\p{Xps}{2,9}?/8
    933     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    934     
    935 /^>[\p{Xps}]/8
    936     >\x{2028}\x{0b}
    937  
    938 /^>[\p{Xps}]+/8
    939     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    940 
    941 /^\p{Xwd}/8
    942     ABCD
    943     1234
    944     \x{6ca}
    945     \x{a6c}
    946     \x{10a7}
    947     _ABC    
    948     ** Failers
    949     [] 
    950 
    951 /^\p{Xwd}+/8
    952     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
    953 
    954 /^\p{Xwd}*/8
    955     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
    956     
    957 /^\p{Xwd}{2,9}/8
    958     A_12\x{6ca}\x{a6c}\x{10a7}
    959     
    960 /^[\p{Xwd}]/8
    961     ABCD1234_
    962     1234abcd_
    963     \x{6ca}
    964     \x{a6c}
    965     \x{10a7}   
    966     _ABC 
    967     ** Failers
    968     []   
    969  
    970 /^[\p{Xwd}]+/8
    971     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
    972 
    973 /-- Unicode properties for \b abd \B --/
    974 
    975 /\b...\B/8W
    976     abc_
    977     \x{37e}abc\x{376} 
    978     \x{37e}\x{376}\x{371}\x{393}\x{394} 
    979     !\x{c0}++\x{c1}\x{c2} 
    980     !\x{c0}+++++ 
    981 
    982 /-- Without PCRE_UCP, non-ASCII always fail, even if < 256  --/
    983 
    984 /\b...\B/8
    985     abc_
    986     ** Failers 
    987     \x{37e}abc\x{376} 
    988     \x{37e}\x{376}\x{371}\x{393}\x{394} 
    989     !\x{c0}++\x{c1}\x{c2} 
    990     !\x{c0}+++++ 
    991 
    992 /-- With PCRE_UCP, non-UTF8 chars that are < 256 still check properties  --/
    993 
    994 /\b...\B/W
    995     abc_
    996     !\x{c0}++\x{c1}\x{c2} 
    997     !\x{c0}+++++ 
    998     
    999 /-- Caseless single negated characters > 127 need UCP support --/
   1000 
   1001 /[^\x{100}]/8i
   1002     \x{100}\x{101}X
   1003 
   1004 /[^\x{100}]+/8i
   1005     \x{100}\x{101}XX
   1006 
   1007 /^\X/8
   1008     A\P
   1009     A\P\P 
   1010     A\x{300}\x{301}\P
   1011     A\x{300}\x{301}\P\P  
   1012     A\x{301}\P
   1013     A\x{301}\P\P  
   1014     
   1015 /^\X{2,3}/8
   1016     A\P
   1017     A\P\P 
   1018     AA\P
   1019     AA\P\P  
   1020     A\x{300}\x{301}\P
   1021     A\x{300}\x{301}\P\P  
   1022     A\x{300}\x{301}A\x{300}\x{301}\P
   1023     A\x{300}\x{301}A\x{300}\x{301}\P\P  
   1024 
   1025 /^\X{2}/8
   1026     AA\P
   1027     AA\P\P  
   1028     A\x{300}\x{301}A\x{300}\x{301}\P
   1029     A\x{300}\x{301}A\x{300}\x{301}\P\P  
   1030     
   1031 /^\X+/8
   1032     AA\P
   1033     AA\P\P  
   1034 
   1035 /^\X+?Z/8
   1036     AA\P
   1037     AA\P\P 
   1038 
   1039 /-- These are tests for extended grapheme clusters --/ 
   1040 
   1041 /^\X/8+
   1042     G\x{34e}\x{34e}X
   1043     \x{34e}\x{34e}X
   1044     \x04X
   1045     \x{1100}X
   1046     \x{1100}\x{34e}X
   1047     \x{1b04}\x{1b04}X 
   1048     *These match up to the roman letters
   1049     \x{1111}\x{1111}L,L
   1050     \x{1111}\x{1111}\x{1169}L,L,V
   1051     \x{1111}\x{ae4c}L, LV
   1052     \x{1111}\x{ad89}L, LVT
   1053     \x{1111}\x{ae4c}\x{1169}L, LV, V
   1054     \x{1111}\x{ae4c}\x{1169}\x{1169}L, LV, V, V
   1055     \x{1111}\x{ae4c}\x{1169}\x{11fe}L, LV, V, T
   1056     \x{1111}\x{ad89}\x{11fe}L, LVT, T
   1057     \x{1111}\x{ad89}\x{11fe}\x{11fe}L, LVT, T, T
   1058     \x{ad89}\x{11fe}\x{11fe}LVT, T, T
   1059     *These match just the first codepoint (invalid sequence)
   1060     \x{1111}\x{11fe}L, T
   1061     \x{ae4c}\x{1111}LV, L
   1062     \x{ae4c}\x{ae4c}LV, LV
   1063     \x{ae4c}\x{ad89}LV, LVT
   1064     \x{1169}\x{1111}V, L
   1065     \x{1169}\x{ae4c}V, LV
   1066     \x{1169}\x{ad89}V, LVT
   1067     \x{ad89}\x{1111}LVT, L
   1068     \x{ad89}\x{1169}LVT, V
   1069     \x{ad89}\x{ae4c}LVT, LV
   1070     \x{ad89}\x{ad89}LVT, LVT
   1071     \x{11fe}\x{1111}T, L
   1072     \x{11fe}\x{1169}T, V
   1073     \x{11fe}\x{ae4c}T, LV
   1074     \x{11fe}\x{ad89}T, LVT
   1075     *Test extend and spacing mark
   1076     \x{1111}\x{ae4c}\x{0711}L, LV, extend
   1077     \x{1111}\x{ae4c}\x{1b04}L, LV, spacing mark
   1078     \x{1111}\x{ae4c}\x{1b04}\x{0711}\x{1b04}L, LV, spacing mark, extend, spacing mark
   1079     *Test CR, LF, and control
   1080     \x0d\x{0711}CR, extend
   1081     \x0d\x{1b04}CR, spacingmark
   1082     \x0a\x{0711}LF, extend
   1083     \x0a\x{1b04}LF, spacingmark
   1084     \x0b\x{0711}Control, extend
   1085     \x09\x{1b04}Control, spacingmark
   1086     *There are no Prepend characters, so we can't test Prepend, CR
   1087     
   1088 /^(?>\X{2})X/8+
   1089     \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
   1090     
   1091 /^\X{2,4}X/8+
   1092     \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
   1093     \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
   1094     \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
   1095 
   1096 /^\X{2,4}?X/8+
   1097     \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
   1098     \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
   1099     \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
   1100 
   1101 /-- --/
   1102 
   1103 /\x{1e9e}+/8i
   1104     \x{1e9e}\x{00df}
   1105 
   1106 /[z\x{1e9e}]+/8i
   1107     \x{1e9e}\x{00df}
   1108 
   1109 /\x{00df}+/8i
   1110     \x{1e9e}\x{00df}
   1111 
   1112 /[z\x{00df}]+/8i
   1113     \x{1e9e}\x{00df}
   1114 
   1115 /\x{1f88}+/8i
   1116     \x{1f88}\x{1f80} 
   1117 
   1118 /[z\x{1f88}]+/8i
   1119     \x{1f88}\x{1f80} 
   1120 
   1121 /-- Perl matches these --/
   1122 
   1123 /\x{00b5}+/8i
   1124     \x{00b5}\x{039c}\x{03bc}
   1125 
   1126 /\x{039c}+/8i
   1127     \x{00b5}\x{039c}\x{03bc}
   1128 
   1129 /\x{03bc}+/8i
   1130     \x{00b5}\x{039c}\x{03bc}
   1131 
   1132 
   1133 /\x{00c5}+/8i
   1134     \x{00c5}\x{00e5}\x{212b}
   1135 
   1136 /\x{00e5}+/8i
   1137     \x{00c5}\x{00e5}\x{212b}
   1138 
   1139 /\x{212b}+/8i
   1140     \x{00c5}\x{00e5}\x{212b}
   1141 
   1142 
   1143 /\x{01c4}+/8i
   1144     \x{01c4}\x{01c5}\x{01c6}
   1145 
   1146 /\x{01c5}+/8i
   1147     \x{01c4}\x{01c5}\x{01c6}
   1148 
   1149 /\x{01c6}+/8i
   1150     \x{01c4}\x{01c5}\x{01c6}
   1151 
   1152 
   1153 /\x{01c7}+/8i
   1154     \x{01c7}\x{01c8}\x{01c9}
   1155 
   1156 /\x{01c8}+/8i
   1157     \x{01c7}\x{01c8}\x{01c9}
   1158 
   1159 /\x{01c9}+/8i
   1160     \x{01c7}\x{01c8}\x{01c9}
   1161 
   1162 
   1163 /\x{01ca}+/8i
   1164     \x{01ca}\x{01cb}\x{01cc}
   1165 
   1166 /\x{01cb}+/8i
   1167     \x{01ca}\x{01cb}\x{01cc}
   1168 
   1169 /\x{01cc}+/8i
   1170     \x{01ca}\x{01cb}\x{01cc}
   1171 
   1172 
   1173 /\x{01f1}+/8i
   1174     \x{01f1}\x{01f2}\x{01f3}
   1175 
   1176 /\x{01f2}+/8i
   1177     \x{01f1}\x{01f2}\x{01f3}
   1178 
   1179 /\x{01f3}+/8i
   1180     \x{01f1}\x{01f2}\x{01f3}
   1181 
   1182 
   1183 /\x{0345}+/8i
   1184     \x{0345}\x{0399}\x{03b9}\x{1fbe}
   1185 
   1186 /\x{0399}+/8i
   1187     \x{0345}\x{0399}\x{03b9}\x{1fbe}
   1188 
   1189 /\x{03b9}+/8i
   1190     \x{0345}\x{0399}\x{03b9}\x{1fbe}
   1191 
   1192 /\x{1fbe}+/8i
   1193     \x{0345}\x{0399}\x{03b9}\x{1fbe}
   1194 
   1195 
   1196 /\x{0392}+/8i
   1197     \x{0392}\x{03b2}\x{03d0}
   1198 
   1199 /\x{03b2}+/8i
   1200     \x{0392}\x{03b2}\x{03d0}
   1201 
   1202 /\x{03d0}+/8i
   1203     \x{0392}\x{03b2}\x{03d0}
   1204     
   1205 
   1206 /\x{0395}+/8i
   1207     \x{0395}\x{03b5}\x{03f5}
   1208 
   1209 /\x{03b5}+/8i
   1210     \x{0395}\x{03b5}\x{03f5}
   1211 
   1212 /\x{03f5}+/8i
   1213     \x{0395}\x{03b5}\x{03f5}
   1214 
   1215 
   1216 /\x{0398}+/8i
   1217     \x{0398}\x{03b8}\x{03d1}\x{03f4}
   1218 
   1219 /\x{03b8}+/8i
   1220     \x{0398}\x{03b8}\x{03d1}\x{03f4}
   1221 
   1222 /\x{03d1}+/8i
   1223     \x{0398}\x{03b8}\x{03d1}\x{03f4}
   1224 
   1225 /\x{03f4}+/8i
   1226     \x{0398}\x{03b8}\x{03d1}\x{03f4}
   1227     
   1228 
   1229 /\x{039a}+/8i
   1230     \x{039a}\x{03ba}\x{03f0}
   1231 
   1232 /\x{03ba}+/8i
   1233     \x{039a}\x{03ba}\x{03f0}
   1234 
   1235 /\x{03f0}+/8i
   1236     \x{039a}\x{03ba}\x{03f0}
   1237     
   1238 
   1239 /\x{03a0}+/8i
   1240     \x{03a0}\x{03c0}\x{03d6} 
   1241 
   1242 /\x{03c0}+/8i
   1243     \x{03a0}\x{03c0}\x{03d6} 
   1244 
   1245 /\x{03d6}+/8i
   1246     \x{03a0}\x{03c0}\x{03d6} 
   1247 
   1248 
   1249 /\x{03a1}+/8i
   1250     \x{03a1}\x{03c1}\x{03f1}
   1251 
   1252 /\x{03c1}+/8i
   1253     \x{03a1}\x{03c1}\x{03f1}
   1254 
   1255 /\x{03f1}+/8i
   1256     \x{03a1}\x{03c1}\x{03f1}
   1257 
   1258 
   1259 /\x{03a3}+/8i
   1260     \x{03A3}\x{03C2}\x{03C3}
   1261 
   1262 /\x{03c2}+/8i
   1263     \x{03A3}\x{03C2}\x{03C3}
   1264 
   1265 /\x{03c3}+/8i
   1266     \x{03A3}\x{03C2}\x{03C3}
   1267     
   1268 
   1269 /\x{03a6}+/8i
   1270     \x{03a6}\x{03c6}\x{03d5} 
   1271 
   1272 /\x{03c6}+/8i
   1273     \x{03a6}\x{03c6}\x{03d5} 
   1274 
   1275 /\x{03d5}+/8i
   1276     \x{03a6}\x{03c6}\x{03d5} 
   1277 
   1278 
   1279 /\x{03c9}+/8i
   1280     \x{03c9}\x{03a9}\x{2126}
   1281 
   1282 /\x{03a9}+/8i
   1283     \x{03c9}\x{03a9}\x{2126}
   1284 
   1285 /\x{2126}+/8i
   1286     \x{03c9}\x{03a9}\x{2126}
   1287     
   1288 
   1289 /\x{1e60}+/8i
   1290     \x{1e60}\x{1e61}\x{1e9b}
   1291 
   1292 /\x{1e61}+/8i
   1293     \x{1e60}\x{1e61}\x{1e9b}
   1294 
   1295 /\x{1e9b}+/8i
   1296     \x{1e60}\x{1e61}\x{1e9b}
   1297     
   1298 
   1299 /\x{1e9e}+/8i
   1300     \x{1e9e}\x{00df}
   1301 
   1302 /\x{00df}+/8i
   1303     \x{1e9e}\x{00df}
   1304     
   1305 
   1306 /\x{1f88}+/8i
   1307     \x{1f88}\x{1f80} 
   1308 
   1309 /\x{1f80}+/8i
   1310     \x{1f88}\x{1f80} 
   1311 
   1312 /\x{004b}+/8i
   1313     \x{004b}\x{006b}\x{212a}
   1314 
   1315 /\x{006b}+/8i
   1316     \x{004b}\x{006b}\x{212a}
   1317 
   1318 /\x{212a}+/8i
   1319     \x{004b}\x{006b}\x{212a}
   1320 
   1321 
   1322 /\x{0053}+/8i
   1323     \x{0053}\x{0073}\x{017f}
   1324 
   1325 /\x{0073}+/8i
   1326     \x{0053}\x{0073}\x{017f}
   1327 
   1328 /\x{017f}+/8i
   1329     \x{0053}\x{0073}\x{017f}
   1330 
   1331 /ist/8i
   1332     ikt
   1333 
   1334 /is+t/8i
   1335     iSs\x{17f}t
   1336     ikt
   1337 
   1338 /is+?t/8i
   1339     ikt
   1340 
   1341 /is?t/8i
   1342     ikt
   1343 
   1344 /is{2}t/8i
   1345     iskt
   1346 
   1347 /^\p{Xuc}/8
   1348     $abc
   1349     @abc
   1350     `abc
   1351     \x{1234}abc
   1352     ** Failers
   1353     abc     
   1354 
   1355 /^\p{Xuc}+/8
   1356     $@`\x{a0}\x{1234}\x{e000}**
   1357     ** Failers
   1358     \x{9f}
   1359 
   1360 /^\p{Xuc}+?/8
   1361     $@`\x{a0}\x{1234}\x{e000}**
   1362     ** Failers
   1363     \x{9f}
   1364 
   1365 /^\p{Xuc}+?\*/8
   1366     $@`\x{a0}\x{1234}\x{e000}**
   1367     ** Failers
   1368     \x{9f}
   1369 
   1370 /^\p{Xuc}++/8
   1371     $@`\x{a0}\x{1234}\x{e000}**
   1372     ** Failers
   1373     \x{9f}
   1374 
   1375 /^\p{Xuc}{3,5}/8
   1376     $@`\x{a0}\x{1234}\x{e000}**
   1377     ** Failers
   1378     \x{9f}
   1379 
   1380 /^\p{Xuc}{3,5}?/8
   1381     $@`\x{a0}\x{1234}\x{e000}**
   1382     ** Failers
   1383     \x{9f}
   1384 
   1385 /^[\p{Xuc}]/8
   1386     $@`\x{a0}\x{1234}\x{e000}**
   1387     ** Failers
   1388     \x{9f}
   1389 
   1390 /^[\p{Xuc}]+/8
   1391     $@`\x{a0}\x{1234}\x{e000}**
   1392     ** Failers
   1393     \x{9f}
   1394 
   1395 /^\P{Xuc}/8
   1396     abc
   1397     ** Failers
   1398     $abc
   1399     @abc
   1400     `abc
   1401     \x{1234}abc
   1402 
   1403 /^[\P{Xuc}]/8
   1404     abc
   1405     ** Failers
   1406     $abc
   1407     @abc
   1408     `abc
   1409     \x{1234}abc
   1410 
   1411 /^A\s+Z/8W
   1412     A\x{2005}Z
   1413     A\x{85}\x{180e}\x{2005}Z
   1414 
   1415 /^A[\s]+Z/8W
   1416     A\x{2005}Z
   1417     A\x{85}\x{180e}\x{2005}Z
   1418 
   1419 /-- End of testinput10 --/ 
   1420