Home | History | Annotate | Download | only in testdata
      1 /-- These tests for Unicode property support test PCRE's API and show some of
      2     the compiled code. They are not Perl-compatible. --/
      3 
      4 /[\p{L}]/DZ
      5 ------------------------------------------------------------------
      6         Bra
      7         [\p{L}]
      8         Ket
      9         End
     10 ------------------------------------------------------------------
     11 Capturing subpattern count = 0
     12 No options
     13 No first char
     14 No need char
     15 
     16 /[\p{^L}]/DZ
     17 ------------------------------------------------------------------
     18         Bra
     19         [\P{L}]
     20         Ket
     21         End
     22 ------------------------------------------------------------------
     23 Capturing subpattern count = 0
     24 No options
     25 No first char
     26 No need char
     27 
     28 /[\P{L}]/DZ
     29 ------------------------------------------------------------------
     30         Bra
     31         [\P{L}]
     32         Ket
     33         End
     34 ------------------------------------------------------------------
     35 Capturing subpattern count = 0
     36 No options
     37 No first char
     38 No need char
     39 
     40 /[\P{^L}]/DZ
     41 ------------------------------------------------------------------
     42         Bra
     43         [\p{L}]
     44         Ket
     45         End
     46 ------------------------------------------------------------------
     47 Capturing subpattern count = 0
     48 No options
     49 No first char
     50 No need char
     51 
     52 /[abc\p{L}\x{0660}]/8DZ
     53 ------------------------------------------------------------------
     54         Bra
     55         [a-c\p{L}\x{660}]
     56         Ket
     57         End
     58 ------------------------------------------------------------------
     59 Capturing subpattern count = 0
     60 Options: utf8
     61 No first char
     62 No need char
     63 
     64 /[\p{Nd}]/8DZ
     65 ------------------------------------------------------------------
     66         Bra
     67         [\p{Nd}]
     68         Ket
     69         End
     70 ------------------------------------------------------------------
     71 Capturing subpattern count = 0
     72 Options: utf8
     73 No first char
     74 No need char
     75     1234
     76  0: 1
     77 
     78 /[\p{Nd}+-]+/8DZ
     79 ------------------------------------------------------------------
     80         Bra
     81         [+\-\p{Nd}]+
     82         Ket
     83         End
     84 ------------------------------------------------------------------
     85 Capturing subpattern count = 0
     86 Options: utf8
     87 No first char
     88 No need char
     89     1234
     90  0: 1234
     91     12-34
     92  0: 12-34
     93     12+\x{661}-34  
     94  0: 12+\x{661}-34
     95     ** Failers
     96 No match
     97     abcd  
     98 No match
     99 
    100 /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8iDZ
    101 ------------------------------------------------------------------
    102         Bra
    103      NC A\x{391}\x{10427}\x{ff3a}\x{1fb0}
    104         Ket
    105         End
    106 ------------------------------------------------------------------
    107 Capturing subpattern count = 0
    108 Options: caseless utf8
    109 First char = 'A' (caseless)
    110 No need char
    111 
    112 /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8DZ
    113 ------------------------------------------------------------------
    114         Bra
    115         A\x{391}\x{10427}\x{ff3a}\x{1fb0}
    116         Ket
    117         End
    118 ------------------------------------------------------------------
    119 Capturing subpattern count = 0
    120 Options: utf8
    121 First char = 'A'
    122 Need char = 176
    123 
    124 /AB\x{1fb0}/8DZ
    125 ------------------------------------------------------------------
    126         Bra
    127         AB\x{1fb0}
    128         Ket
    129         End
    130 ------------------------------------------------------------------
    131 Capturing subpattern count = 0
    132 Options: utf8
    133 First char = 'A'
    134 Need char = 176
    135 
    136 /AB\x{1fb0}/8DZi
    137 ------------------------------------------------------------------
    138         Bra
    139      NC AB\x{1fb0}
    140         Ket
    141         End
    142 ------------------------------------------------------------------
    143 Capturing subpattern count = 0
    144 Options: caseless utf8
    145 First char = 'A' (caseless)
    146 Need char = 'B' (caseless)
    147 
    148 /[\x{105}-\x{109}]/8iDZ
    149 ------------------------------------------------------------------
    150         Bra
    151         [\x{104}-\x{109}]
    152         Ket
    153         End
    154 ------------------------------------------------------------------
    155 Capturing subpattern count = 0
    156 Options: caseless utf8
    157 No first char
    158 No need char
    159     \x{104}
    160  0: \x{104}
    161     \x{105}
    162  0: \x{105}
    163     \x{109}  
    164  0: \x{109}
    165     ** Failers
    166 No match
    167     \x{100}
    168 No match
    169     \x{10a} 
    170 No match
    171     
    172 /[z-\x{100}]/8iDZ 
    173 ------------------------------------------------------------------
    174         Bra
    175         [Z\x{39c}\x{178}z-\x{101}]
    176         Ket
    177         End
    178 ------------------------------------------------------------------
    179 Capturing subpattern count = 0
    180 Options: caseless utf8
    181 No first char
    182 No need char
    183     Z
    184  0: Z
    185     z
    186  0: z
    187     \x{39c}
    188  0: \x{39c}
    189     \x{178}
    190  0: \x{178}
    191     |
    192  0: |
    193     \x{80}
    194  0: \x{80}
    195     \x{ff}
    196  0: \x{ff}
    197     \x{100}
    198  0: \x{100}
    199     \x{101} 
    200  0: \x{101}
    201     ** Failers
    202 No match
    203     \x{102}
    204 No match
    205     Y
    206 No match
    207     y           
    208 No match
    209 
    210 /[z-\x{100}]/8DZi
    211 ------------------------------------------------------------------
    212         Bra
    213         [Z\x{39c}\x{178}z-\x{101}]
    214         Ket
    215         End
    216 ------------------------------------------------------------------
    217 Capturing subpattern count = 0
    218 Options: caseless utf8
    219 No first char
    220 No need char
    221 
    222 /(?:[\PPa*]*){8,}/
    223 
    224 /[\P{Any}]/BZ
    225 ------------------------------------------------------------------
    226         Bra
    227         [\P{Any}]
    228         Ket
    229         End
    230 ------------------------------------------------------------------
    231 
    232 /[\P{Any}\E]/BZ
    233 ------------------------------------------------------------------
    234         Bra
    235         [\P{Any}]
    236         Ket
    237         End
    238 ------------------------------------------------------------------
    239 
    240 /(\P{Yi}+\277)/
    241 
    242 /(\P{Yi}+\277)?/
    243 
    244 /(?<=\P{Yi}{3}A)X/
    245 
    246 /\p{Yi}+(\P{Yi}+)(?1)/
    247 
    248 /(\P{Yi}{2}\277)?/
    249 
    250 /[\P{Yi}A]/
    251 
    252 /[\P{Yi}\P{Yi}\P{Yi}A]/
    253 
    254 /[^\P{Yi}A]/
    255 
    256 /[^\P{Yi}\P{Yi}\P{Yi}A]/
    257 
    258 /(\P{Yi}*\277)*/
    259 
    260 /(\P{Yi}*?\277)*/
    261 
    262 /(\p{Yi}*+\277)*/
    263 
    264 /(\P{Yi}?\277)*/
    265 
    266 /(\P{Yi}??\277)*/
    267 
    268 /(\p{Yi}?+\277)*/
    269 
    270 /(\P{Yi}{0,3}\277)*/
    271 
    272 /(\P{Yi}{0,3}?\277)*/
    273 
    274 /(\p{Yi}{0,3}+\277)*/
    275 
    276 /\p{Zl}{2,3}+/8BZ
    277 ------------------------------------------------------------------
    278         Bra
    279         prop Zl {2}
    280         prop Zl ?+
    281         Ket
    282         End
    283 ------------------------------------------------------------------
    284     \xe2\x80\xa8\xe2\x80\xa8
    285  0: \x{2028}\x{2028}
    286     \x{2028}\x{2028}\x{2028}
    287  0: \x{2028}\x{2028}\x{2028}
    288     
    289 /\p{Zl}/8BZ
    290 ------------------------------------------------------------------
    291         Bra
    292         prop Zl
    293         Ket
    294         End
    295 ------------------------------------------------------------------
    296 
    297 /\p{Lu}{3}+/8BZ
    298 ------------------------------------------------------------------
    299         Bra
    300         prop Lu {3}
    301         Ket
    302         End
    303 ------------------------------------------------------------------
    304 
    305 /\pL{2}+/8BZ
    306 ------------------------------------------------------------------
    307         Bra
    308         prop L {2}
    309         Ket
    310         End
    311 ------------------------------------------------------------------
    312 
    313 /\p{Cc}{2}+/8BZ
    314 ------------------------------------------------------------------
    315         Bra
    316         prop Cc {2}
    317         Ket
    318         End
    319 ------------------------------------------------------------------
    320 
    321 /^\p{Cs}/8
    322     \?\x{dfff}
    323  0: \x{dfff}
    324     ** Failers
    325 No match
    326     \x{09f} 
    327 No match
    328   
    329 /^\p{Sc}+/8
    330     $\x{a2}\x{a3}\x{a4}\x{a5}\x{a6}
    331  0: $\x{a2}\x{a3}\x{a4}\x{a5}
    332     \x{9f2}
    333  0: \x{9f2}
    334     ** Failers
    335 No match
    336     X
    337 No match
    338     \x{2c2}
    339 No match
    340   
    341 /^\p{Zs}/8
    342     \ \
    343  0:  
    344     \x{a0}
    345  0: \x{a0}
    346     \x{1680}
    347  0: \x{1680}
    348     \x{180e}
    349  0: \x{180e}
    350     \x{2000}
    351  0: \x{2000}
    352     \x{2001}     
    353  0: \x{2001}
    354     ** Failers
    355 No match
    356     \x{2028}
    357 No match
    358     \x{200d} 
    359 No match
    360   
    361 /-- These four are here rather than in test 6 because Perl has problems with
    362     the negative versions of the properties. --/
    363       
    364 /\p{^Lu}/8i
    365     1234
    366  0: 1
    367     ** Failers
    368  0: *
    369     ABC 
    370 No match
    371 
    372 /\P{Lu}/8i
    373     1234
    374  0: 1
    375     ** Failers
    376  0: *
    377     ABC 
    378 No match
    379 
    380 /\p{Ll}/8i 
    381     a
    382  0: a
    383     Az
    384  0: z
    385     ** Failers
    386  0: a
    387     ABC   
    388 No match
    389 
    390 /\p{Lu}/8i
    391     A
    392  0: A
    393     a\x{10a0}B 
    394  0: \x{10a0}
    395     ** Failers 
    396  0: F
    397     a
    398 No match
    399     \x{1d00}  
    400 No match
    401 
    402 /[\x{c0}\x{391}]/8i
    403     \x{c0}
    404  0: \x{c0}
    405     \x{e0} 
    406  0: \x{e0}
    407 
    408 /-- The next two are special cases where the lengths of the different cases of
    409 the same character differ. The first went wrong with heap frame storage; the
    410 second was broken in all cases. --/
    411 
    412 /^\x{023a}+?(\x{0130}+)/8i
    413   \x{023a}\x{2c65}\x{0130}
    414  0: \x{23a}\x{2c65}\x{130}
    415  1: \x{130}
    416   
    417 /^\x{023a}+([^X])/8i
    418   \x{023a}\x{2c65}X
    419  0: \x{23a}\x{2c65}
    420  1: \x{2c65}
    421 
    422 /\x{c0}+\x{116}+/8i
    423     \x{c0}\x{e0}\x{116}\x{117}
    424  0: \x{c0}\x{e0}\x{116}\x{117}
    425 
    426 /[\x{c0}\x{116}]+/8i
    427     \x{c0}\x{e0}\x{116}\x{117}
    428  0: \x{c0}\x{e0}\x{116}\x{117}
    429 
    430 /(\x{de})\1/8i
    431     \x{de}\x{de}
    432  0: \x{de}\x{de}
    433  1: \x{de}
    434     \x{de}\x{fe}
    435  0: \x{de}\x{fe}
    436  1: \x{de}
    437     \x{fe}\x{fe}
    438  0: \x{fe}\x{fe}
    439  1: \x{fe}
    440     \x{fe}\x{de}
    441  0: \x{fe}\x{de}
    442  1: \x{fe}
    443 
    444 /^\x{c0}$/8i
    445     \x{c0}
    446  0: \x{c0}
    447     \x{e0} 
    448  0: \x{e0}
    449 
    450 /^\x{e0}$/8i
    451     \x{c0}
    452  0: \x{c0}
    453     \x{e0} 
    454  0: \x{e0}
    455 
    456 /-- The next two should be Perl-compatible, but it fails to match \x{e0}. PCRE
    457 will match it only with UCP support, because without that it has no notion
    458 of case for anything other than the ASCII letters. --/ 
    459 
    460 /((?i)[\x{c0}])/8
    461     \x{c0}
    462  0: \x{c0}
    463  1: \x{c0}
    464     \x{e0} 
    465  0: \x{e0}
    466  1: \x{e0}
    467 
    468 /(?i:[\x{c0}])/8
    469     \x{c0}
    470  0: \x{c0}
    471     \x{e0} 
    472  0: \x{e0}
    473 
    474 /-- This should be Perl-compatible but Perl 5.11 gets \x{300} wrong. --/8
    475     
    476 /^\X/8
    477     A
    478  0: A
    479     A\x{300}BC 
    480  0: A\x{300}
    481     A\x{300}\x{301}\x{302}BC 
    482  0: A\x{300}\x{301}\x{302}
    483     *** Failers
    484  0: *
    485     \x{300}  
    486 No match
    487     
    488 /-- These are PCRE's extra properties to help with Unicodizing \d etc. --/
    489 
    490 /^\p{Xan}/8
    491     ABCD
    492  0: A
    493     1234
    494  0: 1
    495     \x{6ca}
    496  0: \x{6ca}
    497     \x{a6c}
    498  0: \x{a6c}
    499     \x{10a7}   
    500  0: \x{10a7}
    501     ** Failers
    502 No match
    503     _ABC   
    504 No match
    505 
    506 /^\p{Xan}+/8
    507     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
    508  0: ABCD1234\x{6ca}\x{a6c}\x{10a7}
    509     ** Failers
    510 No match
    511     _ABC   
    512 No match
    513 
    514 /^\p{Xan}+?/8
    515     \x{6ca}\x{a6c}\x{10a7}_
    516  0: \x{6ca}
    517 
    518 /^\p{Xan}*/8
    519     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
    520  0: ABCD1234\x{6ca}\x{a6c}\x{10a7}
    521     
    522 /^\p{Xan}{2,9}/8
    523     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
    524  0: ABCD1234\x{6ca}
    525     
    526 /^\p{Xan}{2,9}?/8
    527     \x{6ca}\x{a6c}\x{10a7}_
    528  0: \x{6ca}\x{a6c}
    529     
    530 /^[\p{Xan}]/8
    531     ABCD1234_
    532  0: A
    533     1234abcd_
    534  0: 1
    535     \x{6ca}
    536  0: \x{6ca}
    537     \x{a6c}
    538  0: \x{a6c}
    539     \x{10a7}   
    540  0: \x{10a7}
    541     ** Failers
    542 No match
    543     _ABC   
    544 No match
    545  
    546 /^[\p{Xan}]+/8
    547     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
    548  0: ABCD1234\x{6ca}\x{a6c}\x{10a7}
    549     ** Failers
    550 No match
    551     _ABC   
    552 No match
    553 
    554 /^>\p{Xsp}/8
    555     >\x{1680}\x{2028}\x{0b}
    556  0: >\x{1680}
    557     >\x{a0} 
    558  0: >\x{a0}
    559     ** Failers
    560 No match
    561     \x{0b} 
    562 No match
    563 
    564 /^>\p{Xsp}+/8
    565     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    566  0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}
    567 
    568 /^>\p{Xsp}+?/8
    569     >\x{1680}\x{2028}\x{0b}
    570  0: >\x{1680}
    571 
    572 /^>\p{Xsp}*/8
    573     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    574  0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}
    575     
    576 /^>\p{Xsp}{2,9}/8
    577     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    578  0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}
    579     
    580 /^>\p{Xsp}{2,9}?/8
    581     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    582  0: > \x{09}
    583     
    584 /^>[\p{Xsp}]/8
    585     >\x{2028}\x{0b}
    586  0: >\x{2028}
    587  
    588 /^>[\p{Xsp}]+/8
    589     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    590  0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}
    591 
    592 /^>\p{Xps}/8
    593     >\x{1680}\x{2028}\x{0b}
    594  0: >\x{1680}
    595     >\x{a0} 
    596  0: >\x{a0}
    597     ** Failers
    598 No match
    599     \x{0b} 
    600 No match
    601 
    602 /^>\p{Xps}+/8
    603     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    604  0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    605 
    606 /^>\p{Xps}+?/8
    607     >\x{1680}\x{2028}\x{0b}
    608  0: >\x{1680}
    609 
    610 /^>\p{Xps}*/8
    611     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    612  0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    613     
    614 /^>\p{Xps}{2,9}/8
    615     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    616  0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    617     
    618 /^>\p{Xps}{2,9}?/8
    619     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    620  0: > \x{09}
    621     
    622 /^>[\p{Xps}]/8
    623     >\x{2028}\x{0b}
    624  0: >\x{2028}
    625  
    626 /^>[\p{Xps}]+/8
    627     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    628  0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    629 
    630 /^\p{Xwd}/8
    631     ABCD
    632  0: A
    633     1234
    634  0: 1
    635     \x{6ca}
    636  0: \x{6ca}
    637     \x{a6c}
    638  0: \x{a6c}
    639     \x{10a7}
    640  0: \x{10a7}
    641     _ABC    
    642  0: _
    643     ** Failers
    644 No match
    645     [] 
    646 No match
    647 
    648 /^\p{Xwd}+/8
    649     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
    650  0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
    651 
    652 /^\p{Xwd}+?/8
    653     \x{6ca}\x{a6c}\x{10a7}_
    654  0: \x{6ca}
    655 
    656 /^\p{Xwd}*/8
    657     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
    658  0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
    659     
    660 /^\p{Xwd}{2,9}/8
    661     A_B12\x{6ca}\x{a6c}\x{10a7}
    662  0: A_B12\x{6ca}\x{a6c}\x{10a7}
    663     
    664 /^\p{Xwd}{2,9}?/8
    665     \x{6ca}\x{a6c}\x{10a7}_
    666  0: \x{6ca}\x{a6c}
    667     
    668 /^[\p{Xwd}]/8
    669     ABCD1234_
    670  0: A
    671     1234abcd_
    672  0: 1
    673     \x{6ca}
    674  0: \x{6ca}
    675     \x{a6c}
    676  0: \x{a6c}
    677     \x{10a7}   
    678  0: \x{10a7}
    679     _ABC 
    680  0: _
    681     ** Failers
    682 No match
    683     []   
    684 No match
    685  
    686 /^[\p{Xwd}]+/8
    687     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
    688  0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
    689 
    690 /-- A check not in UTF-8 mode --/
    691 
    692 /^[\p{Xwd}]+/
    693     ABCD1234_
    694  0: ABCD1234_
    695     
    696 /-- Some negative checks --/
    697 
    698 /^[\P{Xwd}]+/8
    699     !.+\x{019}\x{35a}AB
    700  0: !.+\x{19}\x{35a}
    701 
    702 /^[\p{^Xwd}]+/8
    703     !.+\x{019}\x{35a}AB
    704  0: !.+\x{19}\x{35a}
    705 
    706 /[\D]/WBZ8
    707 ------------------------------------------------------------------
    708         Bra
    709         [\P{Nd}]
    710         Ket
    711         End
    712 ------------------------------------------------------------------
    713     1\x{3c8}2
    714  0: \x{3c8}
    715 
    716 /[\d]/WBZ8
    717 ------------------------------------------------------------------
    718         Bra
    719         [\p{Nd}]
    720         Ket
    721         End
    722 ------------------------------------------------------------------
    723     >\x{6f4}<
    724  0: \x{6f4}
    725 
    726 /[\S]/WBZ8
    727 ------------------------------------------------------------------
    728         Bra
    729         [\P{Xsp}]
    730         Ket
    731         End
    732 ------------------------------------------------------------------
    733     \x{1680}\x{6f4}\x{1680}
    734  0: \x{6f4}
    735 
    736 /[\s]/WBZ8
    737 ------------------------------------------------------------------
    738         Bra
    739         [\p{Xsp}]
    740         Ket
    741         End
    742 ------------------------------------------------------------------
    743     >\x{1680}<
    744  0: \x{1680}
    745 
    746 /[\W]/WBZ8
    747 ------------------------------------------------------------------
    748         Bra
    749         [\P{Xwd}]
    750         Ket
    751         End
    752 ------------------------------------------------------------------
    753     A\x{1712}B
    754  0: \x{1712}
    755 
    756 /[\w]/WBZ8
    757 ------------------------------------------------------------------
    758         Bra
    759         [\p{Xwd}]
    760         Ket
    761         End
    762 ------------------------------------------------------------------
    763     >\x{1723}<
    764  0: \x{1723}
    765 
    766 /\D/WBZ8
    767 ------------------------------------------------------------------
    768         Bra
    769         notprop Nd
    770         Ket
    771         End
    772 ------------------------------------------------------------------
    773     1\x{3c8}2
    774  0: \x{3c8}
    775 
    776 /\d/WBZ8
    777 ------------------------------------------------------------------
    778         Bra
    779         prop Nd
    780         Ket
    781         End
    782 ------------------------------------------------------------------
    783     >\x{6f4}<
    784  0: \x{6f4}
    785 
    786 /\S/WBZ8
    787 ------------------------------------------------------------------
    788         Bra
    789         notprop Xsp
    790         Ket
    791         End
    792 ------------------------------------------------------------------
    793     \x{1680}\x{6f4}\x{1680}
    794  0: \x{6f4}
    795 
    796 /\s/WBZ8
    797 ------------------------------------------------------------------
    798         Bra
    799         prop Xsp
    800         Ket
    801         End
    802 ------------------------------------------------------------------
    803     >\x{1680}>
    804  0: \x{1680}
    805 
    806 /\W/WBZ8
    807 ------------------------------------------------------------------
    808         Bra
    809         notprop Xwd
    810         Ket
    811         End
    812 ------------------------------------------------------------------
    813     A\x{1712}B
    814  0: \x{1712}
    815 
    816 /\w/WBZ8
    817 ------------------------------------------------------------------
    818         Bra
    819         prop Xwd
    820         Ket
    821         End
    822 ------------------------------------------------------------------
    823     >\x{1723}<
    824  0: \x{1723}
    825 
    826 /[[:alpha:]]/WBZ
    827 ------------------------------------------------------------------
    828         Bra
    829         [\p{L}]
    830         Ket
    831         End
    832 ------------------------------------------------------------------
    833 
    834 /[[:lower:]]/WBZ
    835 ------------------------------------------------------------------
    836         Bra
    837         [\p{Ll}]
    838         Ket
    839         End
    840 ------------------------------------------------------------------
    841 
    842 /[[:upper:]]/WBZ
    843 ------------------------------------------------------------------
    844         Bra
    845         [\p{Lu}]
    846         Ket
    847         End
    848 ------------------------------------------------------------------
    849 
    850 /[[:alnum:]]/WBZ
    851 ------------------------------------------------------------------
    852         Bra
    853         [\p{Xan}]
    854         Ket
    855         End
    856 ------------------------------------------------------------------
    857 
    858 /[[:ascii:]]/WBZ
    859 ------------------------------------------------------------------
    860         Bra
    861         [\x00-\x7f]
    862         Ket
    863         End
    864 ------------------------------------------------------------------
    865 
    866 /[[:blank:]]/WBZ
    867 ------------------------------------------------------------------
    868         Bra
    869         [\x09 \xa0]
    870         Ket
    871         End
    872 ------------------------------------------------------------------
    873 
    874 /[[:cntrl:]]/WBZ
    875 ------------------------------------------------------------------
    876         Bra
    877         [\x00-\x1f\x7f]
    878         Ket
    879         End
    880 ------------------------------------------------------------------
    881 
    882 /[[:digit:]]/WBZ
    883 ------------------------------------------------------------------
    884         Bra
    885         [\p{Nd}]
    886         Ket
    887         End
    888 ------------------------------------------------------------------
    889 
    890 /[[:graph:]]/WBZ
    891 ------------------------------------------------------------------
    892         Bra
    893         [!-~]
    894         Ket
    895         End
    896 ------------------------------------------------------------------
    897 
    898 /[[:print:]]/WBZ
    899 ------------------------------------------------------------------
    900         Bra
    901         [ -~]
    902         Ket
    903         End
    904 ------------------------------------------------------------------
    905 
    906 /[[:punct:]]/WBZ
    907 ------------------------------------------------------------------
    908         Bra
    909         [!-/:-@[-`{-~]
    910         Ket
    911         End
    912 ------------------------------------------------------------------
    913 
    914 /[[:space:]]/WBZ
    915 ------------------------------------------------------------------
    916         Bra
    917         [\p{Xps}]
    918         Ket
    919         End
    920 ------------------------------------------------------------------
    921 
    922 /[[:word:]]/WBZ
    923 ------------------------------------------------------------------
    924         Bra
    925         [\p{Xwd}]
    926         Ket
    927         End
    928 ------------------------------------------------------------------
    929 
    930 /[[:xdigit:]]/WBZ
    931 ------------------------------------------------------------------
    932         Bra
    933         [0-9A-Fa-f]
    934         Ket
    935         End
    936 ------------------------------------------------------------------
    937 
    938 /-- Unicode properties for \b abd \B --/
    939 
    940 /\b...\B/8W
    941     abc_
    942  0: abc
    943     \x{37e}abc\x{376} 
    944  0: abc
    945     \x{37e}\x{376}\x{371}\x{393}\x{394} 
    946  0: \x{376}\x{371}\x{393}
    947     !\x{c0}++\x{c1}\x{c2} 
    948  0: ++\x{c1}
    949     !\x{c0}+++++ 
    950  0: \x{c0}++
    951 
    952 /-- Without PCRE_UCP, non-ASCII always fail, even if < 256  --/
    953 
    954 /\b...\B/8
    955     abc_
    956  0: abc
    957     ** Failers 
    958  0: Fai
    959     \x{37e}abc\x{376} 
    960 No match
    961     \x{37e}\x{376}\x{371}\x{393}\x{394} 
    962 No match
    963     !\x{c0}++\x{c1}\x{c2} 
    964 No match
    965     !\x{c0}+++++ 
    966 No match
    967 
    968 /-- With PCRE_UCP, non-UTF8 chars that are < 256 still check properties  --/
    969 
    970 /\b...\B/W
    971     abc_
    972  0: abc
    973     !\x{c0}++\x{c1}\x{c2} 
    974  0: ++\xc1
    975     !\x{c0}+++++ 
    976  0: \xc0++
    977 
    978 /-- POSIX interface --/
    979 
    980 /\w/P
    981     +++\x{c2}
    982 No match: POSIX code 17: match failed
    983 
    984 /\w/WP
    985     +++\x{c2}
    986  0: \xc2
    987     
    988 /-- Some of these are silly, but they check various combinations --/
    989 
    990 /[[:^alpha:][:^cntrl:]]+/8WBZ
    991 ------------------------------------------------------------------
    992         Bra
    993         [ -~\x80-\xff\P{L}]+
    994         Ket
    995         End
    996 ------------------------------------------------------------------
    997     123
    998  0: 123
    999     abc 
   1000  0: abc
   1001 
   1002 /[[:^cntrl:][:^alpha:]]+/8WBZ
   1003 ------------------------------------------------------------------
   1004         Bra
   1005         [ -~\x80-\xff\P{L}]+
   1006         Ket
   1007         End
   1008 ------------------------------------------------------------------
   1009     123
   1010  0: 123
   1011     abc 
   1012  0: abc
   1013 
   1014 /[[:alpha:]]+/8WBZ
   1015 ------------------------------------------------------------------
   1016         Bra
   1017         [\p{L}]+
   1018         Ket
   1019         End
   1020 ------------------------------------------------------------------
   1021     abc
   1022  0: abc
   1023 
   1024 /[[:^alpha:]\S]+/8WBZ
   1025 ------------------------------------------------------------------
   1026         Bra
   1027         [\P{L}\P{Xsp}]+
   1028         Ket
   1029         End
   1030 ------------------------------------------------------------------
   1031     123
   1032  0: 123
   1033     abc 
   1034  0: abc
   1035 
   1036 /[^\d]+/8WBZ
   1037 ------------------------------------------------------------------
   1038         Bra
   1039         [^\p{Nd}]+
   1040         Ket
   1041         End
   1042 ------------------------------------------------------------------
   1043     abc123
   1044  0: abc
   1045     abc\x{123}
   1046  0: abc\x{123}
   1047     \x{660}abc   
   1048  0: abc
   1049 
   1050 /\x{401}\x{420}\x{421}\x{422}\x{423}\x{424}\x{425}\x{426}\x{427}\x{428}\x{429}\x{42a}\x{42b}\x{42c}\x{42d}\x{42e}\x{42f}/8iSI
   1051 Capturing subpattern count = 0
   1052 Options: caseless utf8
   1053 No first char
   1054 No need char
   1055 Subject length lower bound = 17
   1056 Starting byte set: \xd0 \xd1 
   1057     \x{401}\x{420}\x{421}\x{422}\x{423}\x{424}\x{425}\x{426}\x{427}\x{428}\x{429}\x{42a}\x{42b}\x{42c}\x{42d}\x{42e}\x{42f}
   1058  0: \x{401}\x{420}\x{421}\x{422}\x{423}\x{424}\x{425}\x{426}\x{427}\x{428}\x{429}\x{42a}\x{42b}\x{42c}\x{42d}\x{42e}\x{42f}
   1059     \x{451}\x{440}\x{441}\x{442}\x{443}\x{444}\x{445}\x{446}\x{447}\x{448}\x{449}\x{44a}\x{44b}\x{44c}\x{44d}\x{44e}\x{44f}
   1060  0: \x{451}\x{440}\x{441}\x{442}\x{443}\x{444}\x{445}\x{446}\x{447}\x{448}\x{449}\x{44a}\x{44b}\x{44c}\x{44d}\x{44e}\x{44f}
   1061 
   1062 /\p{Xps}*/SI
   1063 Capturing subpattern count = 0
   1064 No options
   1065 No first char
   1066 No need char
   1067 Subject length lower bound = 0
   1068 No set of starting bytes
   1069 
   1070 /\p{Lu}+9\p{Lu}+B\p{Lu}+b/BZ
   1071 ------------------------------------------------------------------
   1072         Bra
   1073         prop Lu ++
   1074         9
   1075         prop Lu +
   1076         B
   1077         prop Lu ++
   1078         b
   1079         Ket
   1080         End
   1081 ------------------------------------------------------------------
   1082 
   1083 /\p{^Lu}+9\p{^Lu}+B\p{^Lu}+b/BZ
   1084 ------------------------------------------------------------------
   1085         Bra
   1086         notprop Lu +
   1087         9
   1088         notprop Lu ++
   1089         B
   1090         notprop Lu +
   1091         b
   1092         Ket
   1093         End
   1094 ------------------------------------------------------------------
   1095 
   1096 /\P{Lu}+9\P{Lu}+B\P{Lu}+b/BZ
   1097 ------------------------------------------------------------------
   1098         Bra
   1099         notprop Lu +
   1100         9
   1101         notprop Lu ++
   1102         B
   1103         notprop Lu +
   1104         b
   1105         Ket
   1106         End
   1107 ------------------------------------------------------------------
   1108 
   1109 /\p{Han}+X\p{Greek}+\x{370}/BZ8
   1110 ------------------------------------------------------------------
   1111         Bra
   1112         prop Han ++
   1113         X
   1114         prop Greek +
   1115         \x{370}
   1116         Ket
   1117         End
   1118 ------------------------------------------------------------------
   1119 
   1120 /\p{Xan}+!\p{Xan}+A/BZ
   1121 ------------------------------------------------------------------
   1122         Bra
   1123         prop Xan ++
   1124         !
   1125         prop Xan +
   1126         A
   1127         Ket
   1128         End
   1129 ------------------------------------------------------------------
   1130 
   1131 /\p{Xsp}+!\p{Xsp}\t/BZ
   1132 ------------------------------------------------------------------
   1133         Bra
   1134         prop Xsp ++
   1135         !
   1136         prop Xsp
   1137         \x09
   1138         Ket
   1139         End
   1140 ------------------------------------------------------------------
   1141 
   1142 /\p{Xps}+!\p{Xps}\t/BZ
   1143 ------------------------------------------------------------------
   1144         Bra
   1145         prop Xps ++
   1146         !
   1147         prop Xps
   1148         \x09
   1149         Ket
   1150         End
   1151 ------------------------------------------------------------------
   1152 
   1153 /\p{Xwd}+!\p{Xwd}_/BZ
   1154 ------------------------------------------------------------------
   1155         Bra
   1156         prop Xwd ++
   1157         !
   1158         prop Xwd
   1159         _
   1160         Ket
   1161         End
   1162 ------------------------------------------------------------------
   1163 
   1164 /A+\p{N}A+\dB+\p{N}*B+\d*/WBZ
   1165 ------------------------------------------------------------------
   1166         Bra
   1167         A++
   1168         prop N
   1169         A++
   1170         prop Nd
   1171         B+
   1172         prop N *+
   1173         B+
   1174         prop Nd *
   1175         Ket
   1176         End
   1177 ------------------------------------------------------------------
   1178 
   1179 /-- End of testinput12 --/
   1180