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: utf
     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: utf
     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: utf
     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 /[\x{105}-\x{109}]/8iDZ
    101 ------------------------------------------------------------------
    102         Bra
    103         [\x{104}-\x{109}]
    104         Ket
    105         End
    106 ------------------------------------------------------------------
    107 Capturing subpattern count = 0
    108 Options: caseless utf
    109 No first char
    110 No need char
    111     \x{104}
    112  0: \x{104}
    113     \x{105}
    114  0: \x{105}
    115     \x{109}  
    116  0: \x{109}
    117     ** Failers
    118 No match
    119     \x{100}
    120 No match
    121     \x{10a} 
    122 No match
    123     
    124 /[z-\x{100}]/8iDZ 
    125 ------------------------------------------------------------------
    126         Bra
    127         [Zz-\xff\x{39c}\x{3bc}\x{212b}\x{1e9e}\x{212b}\x{178}\x{100}-\x{101}]
    128         Ket
    129         End
    130 ------------------------------------------------------------------
    131 Capturing subpattern count = 0
    132 Options: caseless utf
    133 No first char
    134 No need char
    135     Z
    136  0: Z
    137     z
    138  0: z
    139     \x{39c}
    140  0: \x{39c}
    141     \x{178}
    142  0: \x{178}
    143     |
    144  0: |
    145     \x{80}
    146  0: \x{80}
    147     \x{ff}
    148  0: \x{ff}
    149     \x{100}
    150  0: \x{100}
    151     \x{101} 
    152  0: \x{101}
    153     ** Failers
    154 No match
    155     \x{102}
    156 No match
    157     Y
    158 No match
    159     y           
    160 No match
    161 
    162 /[z-\x{100}]/8DZi
    163 ------------------------------------------------------------------
    164         Bra
    165         [Zz-\xff\x{39c}\x{3bc}\x{212b}\x{1e9e}\x{212b}\x{178}\x{100}-\x{101}]
    166         Ket
    167         End
    168 ------------------------------------------------------------------
    169 Capturing subpattern count = 0
    170 Options: caseless utf
    171 No first char
    172 No need char
    173 
    174 /(?:[\PPa*]*){8,}/
    175 
    176 /[\P{Any}]/BZ
    177 ------------------------------------------------------------------
    178         Bra
    179         [\P{Any}]
    180         Ket
    181         End
    182 ------------------------------------------------------------------
    183 
    184 /[\P{Any}\E]/BZ
    185 ------------------------------------------------------------------
    186         Bra
    187         [\P{Any}]
    188         Ket
    189         End
    190 ------------------------------------------------------------------
    191 
    192 /(\P{Yi}+\277)/
    193 
    194 /(\P{Yi}+\277)?/
    195 
    196 /(?<=\P{Yi}{3}A)X/
    197 
    198 /\p{Yi}+(\P{Yi}+)(?1)/
    199 
    200 /(\P{Yi}{2}\277)?/
    201 
    202 /[\P{Yi}A]/
    203 
    204 /[\P{Yi}\P{Yi}\P{Yi}A]/
    205 
    206 /[^\P{Yi}A]/
    207 
    208 /[^\P{Yi}\P{Yi}\P{Yi}A]/
    209 
    210 /(\P{Yi}*\277)*/
    211 
    212 /(\P{Yi}*?\277)*/
    213 
    214 /(\p{Yi}*+\277)*/
    215 
    216 /(\P{Yi}?\277)*/
    217 
    218 /(\P{Yi}??\277)*/
    219 
    220 /(\p{Yi}?+\277)*/
    221 
    222 /(\P{Yi}{0,3}\277)*/
    223 
    224 /(\P{Yi}{0,3}?\277)*/
    225 
    226 /(\p{Yi}{0,3}+\277)*/
    227 
    228 /\p{Zl}{2,3}+/8BZ
    229 ------------------------------------------------------------------
    230         Bra
    231         prop Zl {2}
    232         prop Zl ?+
    233         Ket
    234         End
    235 ------------------------------------------------------------------
    236     
    237  0: \x{2028}\x{2028}
    238     \x{2028}\x{2028}\x{2028}
    239  0: \x{2028}\x{2028}\x{2028}
    240     
    241 /\p{Zl}/8BZ
    242 ------------------------------------------------------------------
    243         Bra
    244         prop Zl
    245         Ket
    246         End
    247 ------------------------------------------------------------------
    248 
    249 /\p{Lu}{3}+/8BZ
    250 ------------------------------------------------------------------
    251         Bra
    252         prop Lu {3}
    253         Ket
    254         End
    255 ------------------------------------------------------------------
    256 
    257 /\pL{2}+/8BZ
    258 ------------------------------------------------------------------
    259         Bra
    260         prop L {2}
    261         Ket
    262         End
    263 ------------------------------------------------------------------
    264 
    265 /\p{Cc}{2}+/8BZ
    266 ------------------------------------------------------------------
    267         Bra
    268         prop Cc {2}
    269         Ket
    270         End
    271 ------------------------------------------------------------------
    272 
    273 /^\p{Cf}/8
    274     \x{180e}
    275  0: \x{180e}
    276     \x{061c}
    277  0: \x{61c}
    278     \x{2066}
    279  0: \x{2066}
    280     \x{2067}
    281  0: \x{2067}
    282     \x{2068}
    283  0: \x{2068}
    284     \x{2069}
    285  0: \x{2069}
    286 
    287 /^\p{Cs}/8
    288     \?\x{dfff}
    289  0: \x{dfff}
    290     ** Failers
    291 No match
    292     \x{09f} 
    293 No match
    294   
    295 /^\p{Mn}/8
    296     \x{1a1b}
    297  0: \x{1a1b}
    298 
    299 /^\p{Pe}/8
    300     \x{2309}
    301  0: \x{2309}
    302     \x{230b}
    303  0: \x{230b}
    304 
    305 /^\p{Ps}/8
    306     \x{2308}
    307  0: \x{2308}
    308     \x{230a}
    309  0: \x{230a}
    310 
    311 /^\p{Sc}+/8
    312     $\x{a2}\x{a3}\x{a4}\x{a5}\x{a6}
    313  0: $\x{a2}\x{a3}\x{a4}\x{a5}
    314     \x{9f2}
    315  0: \x{9f2}
    316     ** Failers
    317 No match
    318     X
    319 No match
    320     \x{2c2}
    321 No match
    322   
    323 /^\p{Zs}/8
    324     \ \
    325  0:  
    326     \x{a0}
    327  0: \x{a0}
    328     \x{1680}
    329  0: \x{1680}
    330     \x{2000}
    331  0: \x{2000}
    332     \x{2001}     
    333  0: \x{2001}
    334     ** Failers
    335 No match
    336     \x{2028}
    337 No match
    338     \x{200d} 
    339 No match
    340   
    341 /-- These are here rather than in test 6 because Perl has problems with
    342     the negative versions of the properties and behaves has changed how
    343     it behaves for caseless matching. --/
    344       
    345 /\p{^Lu}/8i
    346     1234
    347  0: 1
    348     ** Failers
    349  0: *
    350     ABC 
    351 No match
    352 
    353 /\P{Lu}/8i
    354     1234
    355  0: 1
    356     ** Failers
    357  0: *
    358     ABC 
    359 No match
    360 
    361 /\p{Ll}/8i 
    362     a
    363  0: a
    364     Az
    365  0: z
    366     ** Failers
    367  0: a
    368     ABC   
    369 No match
    370 
    371 /\p{Lu}/8i
    372     A
    373  0: A
    374     a\x{10a0}B 
    375  0: \x{10a0}
    376     ** Failers 
    377  0: F
    378     a
    379 No match
    380     \x{1d00}  
    381 No match
    382 
    383 /\p{Lu}/8i
    384     A
    385  0: A
    386     aZ
    387  0: Z
    388     ** Failers
    389  0: F
    390     abc   
    391 No match
    392 
    393 /[\x{c0}\x{391}]/8i
    394     \x{c0}
    395  0: \x{c0}
    396     \x{e0} 
    397  0: \x{e0}
    398 
    399 /-- The next two are special cases where the lengths of the different cases of
    400 the same character differ. The first went wrong with heap frame storage; the
    401 second was broken in all cases. --/
    402 
    403 /^\x{023a}+?(\x{0130}+)/8i
    404   \x{023a}\x{2c65}\x{0130}
    405  0: \x{23a}\x{2c65}\x{130}
    406  1: \x{130}
    407   
    408 /^\x{023a}+([^X])/8i
    409   \x{023a}\x{2c65}X
    410  0: \x{23a}\x{2c65}
    411  1: \x{2c65}
    412 
    413 /\x{c0}+\x{116}+/8i
    414     \x{c0}\x{e0}\x{116}\x{117}
    415  0: \x{c0}\x{e0}\x{116}\x{117}
    416 
    417 /[\x{c0}\x{116}]+/8i
    418     \x{c0}\x{e0}\x{116}\x{117}
    419  0: \x{c0}\x{e0}\x{116}\x{117}
    420 
    421 /(\x{de})\1/8i
    422     \x{de}\x{de}
    423  0: \x{de}\x{de}
    424  1: \x{de}
    425     \x{de}\x{fe}
    426  0: \x{de}\x{fe}
    427  1: \x{de}
    428     \x{fe}\x{fe}
    429  0: \x{fe}\x{fe}
    430  1: \x{fe}
    431     \x{fe}\x{de}
    432  0: \x{fe}\x{de}
    433  1: \x{fe}
    434 
    435 /^\x{c0}$/8i
    436     \x{c0}
    437  0: \x{c0}
    438     \x{e0} 
    439  0: \x{e0}
    440 
    441 /^\x{e0}$/8i
    442     \x{c0}
    443  0: \x{c0}
    444     \x{e0} 
    445  0: \x{e0}
    446 
    447 /-- The next two should be Perl-compatible, but it fails to match \x{e0}. PCRE
    448 will match it only with UCP support, because without that it has no notion
    449 of case for anything other than the ASCII letters. --/ 
    450 
    451 /((?i)[\x{c0}])/8
    452     \x{c0}
    453  0: \x{c0}
    454  1: \x{c0}
    455     \x{e0} 
    456  0: \x{e0}
    457  1: \x{e0}
    458 
    459 /(?i:[\x{c0}])/8
    460     \x{c0}
    461  0: \x{c0}
    462     \x{e0} 
    463  0: \x{e0}
    464 
    465 /-- These are PCRE's extra properties to help with Unicodizing \d etc. --/
    466 
    467 /^\p{Xan}/8
    468     ABCD
    469  0: A
    470     1234
    471  0: 1
    472     \x{6ca}
    473  0: \x{6ca}
    474     \x{a6c}
    475  0: \x{a6c}
    476     \x{10a7}   
    477  0: \x{10a7}
    478     ** Failers
    479 No match
    480     _ABC   
    481 No match
    482 
    483 /^\p{Xan}+/8
    484     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
    485  0: ABCD1234\x{6ca}\x{a6c}\x{10a7}
    486     ** Failers
    487 No match
    488     _ABC   
    489 No match
    490 
    491 /^\p{Xan}+?/8
    492     \x{6ca}\x{a6c}\x{10a7}_
    493  0: \x{6ca}
    494 
    495 /^\p{Xan}*/8
    496     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
    497  0: ABCD1234\x{6ca}\x{a6c}\x{10a7}
    498     
    499 /^\p{Xan}{2,9}/8
    500     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
    501  0: ABCD1234\x{6ca}
    502     
    503 /^\p{Xan}{2,9}?/8
    504     \x{6ca}\x{a6c}\x{10a7}_
    505  0: \x{6ca}\x{a6c}
    506     
    507 /^[\p{Xan}]/8
    508     ABCD1234_
    509  0: A
    510     1234abcd_
    511  0: 1
    512     \x{6ca}
    513  0: \x{6ca}
    514     \x{a6c}
    515  0: \x{a6c}
    516     \x{10a7}   
    517  0: \x{10a7}
    518     ** Failers
    519 No match
    520     _ABC   
    521 No match
    522  
    523 /^[\p{Xan}]+/8
    524     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
    525  0: ABCD1234\x{6ca}\x{a6c}\x{10a7}
    526     ** Failers
    527 No match
    528     _ABC   
    529 No match
    530 
    531 /^>\p{Xsp}/8
    532     >\x{1680}\x{2028}\x{0b}
    533  0: >\x{1680}
    534     >\x{a0} 
    535  0: >\x{a0}
    536     ** Failers
    537 No match
    538     \x{0b} 
    539 No match
    540 
    541 /^>\p{Xsp}+/8
    542     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    543  0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    544 
    545 /^>\p{Xsp}+?/8
    546     >\x{1680}\x{2028}\x{0b}
    547  0: >\x{1680}
    548 
    549 /^>\p{Xsp}*/8
    550     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    551  0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    552     
    553 /^>\p{Xsp}{2,9}/8
    554     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    555  0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    556     
    557 /^>\p{Xsp}{2,9}?/8
    558     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    559  0: > \x{09}
    560     
    561 /^>[\p{Xsp}]/8
    562     >\x{2028}\x{0b}
    563  0: >\x{2028}
    564  
    565 /^>[\p{Xsp}]+/8
    566     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    567  0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    568 
    569 /^>\p{Xps}/8
    570     >\x{1680}\x{2028}\x{0b}
    571  0: >\x{1680}
    572     >\x{a0} 
    573  0: >\x{a0}
    574     ** Failers
    575 No match
    576     \x{0b} 
    577 No match
    578 
    579 /^>\p{Xps}+/8
    580     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    581  0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    582 
    583 /^>\p{Xps}+?/8
    584     >\x{1680}\x{2028}\x{0b}
    585  0: >\x{1680}
    586 
    587 /^>\p{Xps}*/8
    588     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    589  0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    590     
    591 /^>\p{Xps}{2,9}/8
    592     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    593  0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    594     
    595 /^>\p{Xps}{2,9}?/8
    596     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    597  0: > \x{09}
    598     
    599 /^>[\p{Xps}]/8
    600     >\x{2028}\x{0b}
    601  0: >\x{2028}
    602  
    603 /^>[\p{Xps}]+/8
    604     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    605  0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    606 
    607 /^\p{Xwd}/8
    608     ABCD
    609  0: A
    610     1234
    611  0: 1
    612     \x{6ca}
    613  0: \x{6ca}
    614     \x{a6c}
    615  0: \x{a6c}
    616     \x{10a7}
    617  0: \x{10a7}
    618     _ABC    
    619  0: _
    620     ** Failers
    621 No match
    622     [] 
    623 No match
    624 
    625 /^\p{Xwd}+/8
    626     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
    627  0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
    628 
    629 /^\p{Xwd}+?/8
    630     \x{6ca}\x{a6c}\x{10a7}_
    631  0: \x{6ca}
    632 
    633 /^\p{Xwd}*/8
    634     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
    635  0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
    636     
    637 /^\p{Xwd}{2,9}/8
    638     A_B12\x{6ca}\x{a6c}\x{10a7}
    639  0: A_B12\x{6ca}\x{a6c}\x{10a7}
    640     
    641 /^\p{Xwd}{2,9}?/8
    642     \x{6ca}\x{a6c}\x{10a7}_
    643  0: \x{6ca}\x{a6c}
    644     
    645 /^[\p{Xwd}]/8
    646     ABCD1234_
    647  0: A
    648     1234abcd_
    649  0: 1
    650     \x{6ca}
    651  0: \x{6ca}
    652     \x{a6c}
    653  0: \x{a6c}
    654     \x{10a7}   
    655  0: \x{10a7}
    656     _ABC 
    657  0: _
    658     ** Failers
    659 No match
    660     []   
    661 No match
    662  
    663 /^[\p{Xwd}]+/8
    664     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
    665  0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
    666 
    667 /-- A check not in UTF-8 mode --/
    668 
    669 /^[\p{Xwd}]+/
    670     ABCD1234_
    671  0: ABCD1234_
    672     
    673 /-- Some negative checks --/
    674 
    675 /^[\P{Xwd}]+/8
    676     !.+\x{019}\x{35a}AB
    677  0: !.+\x{19}\x{35a}
    678 
    679 /^[\p{^Xwd}]+/8
    680     !.+\x{019}\x{35a}AB
    681  0: !.+\x{19}\x{35a}
    682 
    683 /[\D]/WBZ8
    684 ------------------------------------------------------------------
    685         Bra
    686         [\P{Nd}]
    687         Ket
    688         End
    689 ------------------------------------------------------------------
    690     1\x{3c8}2
    691  0: \x{3c8}
    692 
    693 /[\d]/WBZ8
    694 ------------------------------------------------------------------
    695         Bra
    696         [\p{Nd}]
    697         Ket
    698         End
    699 ------------------------------------------------------------------
    700     >\x{6f4}<
    701  0: \x{6f4}
    702 
    703 /[\S]/WBZ8
    704 ------------------------------------------------------------------
    705         Bra
    706         [\P{Xsp}]
    707         Ket
    708         End
    709 ------------------------------------------------------------------
    710     \x{1680}\x{6f4}\x{1680}
    711  0: \x{6f4}
    712 
    713 /[\s]/WBZ8
    714 ------------------------------------------------------------------
    715         Bra
    716         [\p{Xsp}]
    717         Ket
    718         End
    719 ------------------------------------------------------------------
    720     >\x{1680}<
    721  0: \x{1680}
    722 
    723 /[\W]/WBZ8
    724 ------------------------------------------------------------------
    725         Bra
    726         [\P{Xwd}]
    727         Ket
    728         End
    729 ------------------------------------------------------------------
    730     A\x{1712}B
    731  0: \x{1712}
    732 
    733 /[\w]/WBZ8
    734 ------------------------------------------------------------------
    735         Bra
    736         [\p{Xwd}]
    737         Ket
    738         End
    739 ------------------------------------------------------------------
    740     >\x{1723}<
    741  0: \x{1723}
    742 
    743 /\D/WBZ8
    744 ------------------------------------------------------------------
    745         Bra
    746         notprop Nd
    747         Ket
    748         End
    749 ------------------------------------------------------------------
    750     1\x{3c8}2
    751  0: \x{3c8}
    752 
    753 /\d/WBZ8
    754 ------------------------------------------------------------------
    755         Bra
    756         prop Nd
    757         Ket
    758         End
    759 ------------------------------------------------------------------
    760     >\x{6f4}<
    761  0: \x{6f4}
    762 
    763 /\S/WBZ8
    764 ------------------------------------------------------------------
    765         Bra
    766         notprop Xsp
    767         Ket
    768         End
    769 ------------------------------------------------------------------
    770     \x{1680}\x{6f4}\x{1680}
    771  0: \x{6f4}
    772 
    773 /\s/WBZ8
    774 ------------------------------------------------------------------
    775         Bra
    776         prop Xsp
    777         Ket
    778         End
    779 ------------------------------------------------------------------
    780     >\x{1680}>
    781  0: \x{1680}
    782 
    783 /\W/WBZ8
    784 ------------------------------------------------------------------
    785         Bra
    786         notprop Xwd
    787         Ket
    788         End
    789 ------------------------------------------------------------------
    790     A\x{1712}B
    791  0: \x{1712}
    792 
    793 /\w/WBZ8
    794 ------------------------------------------------------------------
    795         Bra
    796         prop Xwd
    797         Ket
    798         End
    799 ------------------------------------------------------------------
    800     >\x{1723}<
    801  0: \x{1723}
    802 
    803 /[[:alpha:]]/WBZ
    804 ------------------------------------------------------------------
    805         Bra
    806         [\p{L}]
    807         Ket
    808         End
    809 ------------------------------------------------------------------
    810 
    811 /[[:lower:]]/WBZ
    812 ------------------------------------------------------------------
    813         Bra
    814         [\p{Ll}]
    815         Ket
    816         End
    817 ------------------------------------------------------------------
    818 
    819 /[[:upper:]]/WBZ
    820 ------------------------------------------------------------------
    821         Bra
    822         [\p{Lu}]
    823         Ket
    824         End
    825 ------------------------------------------------------------------
    826 
    827 /[[:alnum:]]/WBZ
    828 ------------------------------------------------------------------
    829         Bra
    830         [\p{Xan}]
    831         Ket
    832         End
    833 ------------------------------------------------------------------
    834 
    835 /[[:ascii:]]/WBZ
    836 ------------------------------------------------------------------
    837         Bra
    838         [\x00-\x7f]
    839         Ket
    840         End
    841 ------------------------------------------------------------------
    842 
    843 /[[:cntrl:]]/WBZ
    844 ------------------------------------------------------------------
    845         Bra
    846         [\x00-\x1f\x7f]
    847         Ket
    848         End
    849 ------------------------------------------------------------------
    850 
    851 /[[:digit:]]/WBZ
    852 ------------------------------------------------------------------
    853         Bra
    854         [\p{Nd}]
    855         Ket
    856         End
    857 ------------------------------------------------------------------
    858 
    859 /[[:graph:]]/WBZ
    860 ------------------------------------------------------------------
    861         Bra
    862         [[:graph:]]
    863         Ket
    864         End
    865 ------------------------------------------------------------------
    866 
    867 /[[:print:]]/WBZ
    868 ------------------------------------------------------------------
    869         Bra
    870         [[:print:]]
    871         Ket
    872         End
    873 ------------------------------------------------------------------
    874 
    875 /[[:punct:]]/WBZ
    876 ------------------------------------------------------------------
    877         Bra
    878         [[:punct:]]
    879         Ket
    880         End
    881 ------------------------------------------------------------------
    882 
    883 /[[:space:]]/WBZ
    884 ------------------------------------------------------------------
    885         Bra
    886         [\p{Xps}]
    887         Ket
    888         End
    889 ------------------------------------------------------------------
    890 
    891 /[[:word:]]/WBZ
    892 ------------------------------------------------------------------
    893         Bra
    894         [\p{Xwd}]
    895         Ket
    896         End
    897 ------------------------------------------------------------------
    898 
    899 /[[:xdigit:]]/WBZ
    900 ------------------------------------------------------------------
    901         Bra
    902         [0-9A-Fa-f]
    903         Ket
    904         End
    905 ------------------------------------------------------------------
    906 
    907 /-- Unicode properties for \b abd \B --/
    908 
    909 /\b...\B/8W
    910     abc_
    911  0: abc
    912     \x{37e}abc\x{376} 
    913  0: abc
    914     \x{37e}\x{376}\x{371}\x{393}\x{394} 
    915  0: \x{376}\x{371}\x{393}
    916     !\x{c0}++\x{c1}\x{c2} 
    917  0: ++\x{c1}
    918     !\x{c0}+++++ 
    919  0: \x{c0}++
    920 
    921 /-- Without PCRE_UCP, non-ASCII always fail, even if < 256  --/
    922 
    923 /\b...\B/8
    924     abc_
    925  0: abc
    926     ** Failers 
    927  0: Fai
    928     \x{37e}abc\x{376} 
    929 No match
    930     \x{37e}\x{376}\x{371}\x{393}\x{394} 
    931 No match
    932     !\x{c0}++\x{c1}\x{c2} 
    933 No match
    934     !\x{c0}+++++ 
    935 No match
    936 
    937 /-- With PCRE_UCP, non-UTF8 chars that are < 256 still check properties  --/
    938 
    939 /\b...\B/W
    940     abc_
    941  0: abc
    942     !\x{c0}++\x{c1}\x{c2} 
    943  0: ++\xc1
    944     !\x{c0}+++++ 
    945  0: \xc0++
    946 
    947 /-- Some of these are silly, but they check various combinations --/
    948 
    949 /[[:^alpha:][:^cntrl:]]+/8WBZ
    950 ------------------------------------------------------------------
    951         Bra
    952         [ -~\x80-\xff\P{L}]++
    953         Ket
    954         End
    955 ------------------------------------------------------------------
    956     123
    957  0: 123
    958     abc 
    959  0: abc
    960 
    961 /[[:^cntrl:][:^alpha:]]+/8WBZ
    962 ------------------------------------------------------------------
    963         Bra
    964         [ -~\x80-\xff\P{L}]++
    965         Ket
    966         End
    967 ------------------------------------------------------------------
    968     123
    969  0: 123
    970     abc 
    971  0: abc
    972 
    973 /[[:alpha:]]+/8WBZ
    974 ------------------------------------------------------------------
    975         Bra
    976         [\p{L}]++
    977         Ket
    978         End
    979 ------------------------------------------------------------------
    980     abc
    981  0: abc
    982 
    983 /[[:^alpha:]\S]+/8WBZ
    984 ------------------------------------------------------------------
    985         Bra
    986         [\P{L}\P{Xsp}]++
    987         Ket
    988         End
    989 ------------------------------------------------------------------
    990     123
    991  0: 123
    992     abc 
    993  0: abc
    994 
    995 /[^\d]+/8WBZ
    996 ------------------------------------------------------------------
    997         Bra
    998         [^\p{Nd}]++
    999         Ket
   1000         End
   1001 ------------------------------------------------------------------
   1002     abc123
   1003  0: abc
   1004     abc\x{123}
   1005  0: abc\x{123}
   1006     \x{660}abc   
   1007  0: abc
   1008 
   1009 /\p{Lu}+9\p{Lu}+B\p{Lu}+b/BZ
   1010 ------------------------------------------------------------------
   1011         Bra
   1012         prop Lu ++
   1013         9
   1014         prop Lu +
   1015         B
   1016         prop Lu ++
   1017         b
   1018         Ket
   1019         End
   1020 ------------------------------------------------------------------
   1021 
   1022 /\p{^Lu}+9\p{^Lu}+B\p{^Lu}+b/BZ
   1023 ------------------------------------------------------------------
   1024         Bra
   1025         notprop Lu +
   1026         9
   1027         notprop Lu ++
   1028         B
   1029         notprop Lu +
   1030         b
   1031         Ket
   1032         End
   1033 ------------------------------------------------------------------
   1034 
   1035 /\P{Lu}+9\P{Lu}+B\P{Lu}+b/BZ
   1036 ------------------------------------------------------------------
   1037         Bra
   1038         notprop Lu +
   1039         9
   1040         notprop Lu ++
   1041         B
   1042         notprop Lu +
   1043         b
   1044         Ket
   1045         End
   1046 ------------------------------------------------------------------
   1047 
   1048 /\p{Han}+X\p{Greek}+\x{370}/BZ8
   1049 ------------------------------------------------------------------
   1050         Bra
   1051         prop Han ++
   1052         X
   1053         prop Greek +
   1054         \x{370}
   1055         Ket
   1056         End
   1057 ------------------------------------------------------------------
   1058 
   1059 /\p{Xan}+!\p{Xan}+A/BZ
   1060 ------------------------------------------------------------------
   1061         Bra
   1062         prop Xan ++
   1063         !
   1064         prop Xan +
   1065         A
   1066         Ket
   1067         End
   1068 ------------------------------------------------------------------
   1069 
   1070 /\p{Xsp}+!\p{Xsp}\t/BZ
   1071 ------------------------------------------------------------------
   1072         Bra
   1073         prop Xsp ++
   1074         !
   1075         prop Xsp
   1076         \x09
   1077         Ket
   1078         End
   1079 ------------------------------------------------------------------
   1080 
   1081 /\p{Xps}+!\p{Xps}\t/BZ
   1082 ------------------------------------------------------------------
   1083         Bra
   1084         prop Xps ++
   1085         !
   1086         prop Xps
   1087         \x09
   1088         Ket
   1089         End
   1090 ------------------------------------------------------------------
   1091 
   1092 /\p{Xwd}+!\p{Xwd}_/BZ
   1093 ------------------------------------------------------------------
   1094         Bra
   1095         prop Xwd ++
   1096         !
   1097         prop Xwd
   1098         _
   1099         Ket
   1100         End
   1101 ------------------------------------------------------------------
   1102 
   1103 /A+\p{N}A+\dB+\p{N}*B+\d*/WBZ
   1104 ------------------------------------------------------------------
   1105         Bra
   1106         A++
   1107         prop N
   1108         A++
   1109         prop Nd
   1110         B+
   1111         prop N *+
   1112         B++
   1113         prop Nd *+
   1114         Ket
   1115         End
   1116 ------------------------------------------------------------------
   1117 
   1118 /-- These behaved oddly in Perl, so they are kept in this test --/
   1119 
   1120 /(\x{23a}\x{23a}\x{23a})?\1/8i
   1121     \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}
   1122 No match
   1123 
   1124 /()?\1/8i
   1125     
   1126 No match
   1127 
   1128 /(\x{23a}\x{23a}\x{23a})?\1/8i
   1129     \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
   1130  0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
   1131  1: \x{23a}\x{23a}\x{23a}
   1132 
   1133 /()?\1/8i
   1134     
   1135  0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
   1136  1: \x{23a}\x{23a}\x{23a}
   1137 
   1138 /(\x{23a}\x{23a}\x{23a})\1/8i
   1139     \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}
   1140 No match
   1141 
   1142 /()\1/8i
   1143     
   1144 No match
   1145 
   1146 /(\x{23a}\x{23a}\x{23a})\1/8i
   1147     \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
   1148  0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
   1149  1: \x{23a}\x{23a}\x{23a}
   1150 
   1151 /()\1/8i
   1152     
   1153  0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
   1154  1: \x{23a}\x{23a}\x{23a}
   1155 
   1156 /(\x{2c65}\x{2c65})\1/8i
   1157     \x{2c65}\x{2c65}\x{23a}\x{23a}
   1158  0: \x{2c65}\x{2c65}\x{23a}\x{23a}
   1159  1: \x{2c65}\x{2c65}
   1160     
   1161 /()\1/8i
   1162      
   1163  0: \x{2c65}\x{2c65}\x{23a}\x{23a}
   1164  1: \x{2c65}\x{2c65}
   1165     
   1166 /(\x{23a}\x{23a}\x{23a})\1Y/8i
   1167     X\x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}YZ
   1168  0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}Y
   1169  1: \x{23a}\x{23a}\x{23a}
   1170 
   1171 /(\x{2c65}\x{2c65})\1Y/8i
   1172     X\x{2c65}\x{2c65}\x{23a}\x{23a}YZ
   1173  0: \x{2c65}\x{2c65}\x{23a}\x{23a}Y
   1174  1: \x{2c65}\x{2c65}
   1175 
   1176 /-- --/ 
   1177 
   1178 /-- These scripts weren't yet in Perl when I added Unicode 6.0.0 to PCRE --/
   1179 
   1180 /^[\p{Batak}]/8
   1181     \x{1bc0}
   1182  0: \x{1bc0}
   1183     \x{1bff}
   1184  0: \x{1bff}
   1185     ** Failers
   1186 No match
   1187     \x{1bf4}
   1188 No match
   1189     
   1190 /^[\p{Brahmi}]/8
   1191     \x{11000}
   1192  0: \x{11000}
   1193     \x{1106f}
   1194  0: \x{1106f}
   1195     ** Failers
   1196 No match
   1197     \x{1104e}
   1198 No match
   1199     
   1200 /^[\p{Mandaic}]/8
   1201     \x{840}
   1202  0: \x{840}
   1203     \x{85e}
   1204  0: \x{85e}
   1205     ** Failers
   1206 No match
   1207     \x{85c}
   1208 No match
   1209     \x{85d}    
   1210 No match
   1211 
   1212 /-- --/ 
   1213 
   1214 /(\X*)(.)/s8
   1215     A\x{300}
   1216  0: A
   1217  1: 
   1218  2: A
   1219 
   1220 /^S(\X*)e(\X*)$/8
   1221     Stereo
   1222  0: Ste\x{301}re\x{301}o
   1223  1: te\x{301}r
   1224  2: \x{301}o
   1225     
   1226 /^\X/8 
   1227     reo
   1228  0: \x{301}
   1229 
   1230 /^a\X41z/<JS>
   1231     aX41z
   1232  0: aX41z
   1233     *** Failers
   1234 No match
   1235     aAz
   1236 No match
   1237 
   1238 /(?<=ab\Cde)X/8
   1239 Failed: \C not allowed in lookbehind assertion at offset 10
   1240 
   1241 /\X/
   1242     a\P
   1243  0: a
   1244     a\P\P
   1245 Partial match: a
   1246 
   1247 /\Xa/
   1248     aa\P
   1249  0: aa
   1250     aa\P\P
   1251  0: aa
   1252 
   1253 /\X{2}/
   1254     aa\P
   1255  0: aa
   1256     aa\P\P
   1257 Partial match: aa
   1258 
   1259 /\X+a/
   1260     a\P
   1261 Partial match: a
   1262     aa\P
   1263  0: aa
   1264     aa\P\P
   1265 Partial match: aa
   1266 
   1267 /\X+?a/
   1268     a\P
   1269 Partial match: a
   1270     ab\P
   1271 Partial match: ab
   1272     aa\P
   1273  0: aa
   1274     aa\P\P
   1275  0: aa
   1276     aba\P
   1277  0: aba
   1278     
   1279 /-- These Unicode 6.1.0 scripts are not known to Perl. --/ 
   1280 
   1281 /\p{Chakma}\d/8W
   1282     \x{11100}\x{1113c}
   1283  0: \x{11100}\x{1113c}
   1284 
   1285 /\p{Takri}\d/8W
   1286     \x{11680}\x{116c0}
   1287  0: \x{11680}\x{116c0}
   1288 
   1289 /^\X/8
   1290     A\P
   1291  0: A
   1292     A\P\P 
   1293 Partial match: A
   1294     A\x{300}\x{301}\P
   1295  0: A\x{300}\x{301}
   1296     A\x{300}\x{301}\P\P  
   1297 Partial match: A\x{300}\x{301}
   1298     A\x{301}\P
   1299  0: A\x{301}
   1300     A\x{301}\P\P  
   1301 Partial match: A\x{301}
   1302     
   1303 /^\X{2,3}/8
   1304     A\P
   1305 Partial match: A
   1306     A\P\P 
   1307 Partial match: A
   1308     AA\P
   1309  0: AA
   1310     AA\P\P  
   1311 Partial match: AA
   1312     A\x{300}\x{301}\P
   1313 Partial match: A\x{300}\x{301}
   1314     A\x{300}\x{301}\P\P  
   1315 Partial match: A\x{300}\x{301}
   1316     A\x{300}\x{301}A\x{300}\x{301}\P
   1317  0: A\x{300}\x{301}A\x{300}\x{301}
   1318     A\x{300}\x{301}A\x{300}\x{301}\P\P  
   1319 Partial match: A\x{300}\x{301}A\x{300}\x{301}
   1320 
   1321 /^\X{2}/8
   1322     AA\P
   1323  0: AA
   1324     AA\P\P  
   1325 Partial match: AA
   1326     A\x{300}\x{301}A\x{300}\x{301}\P
   1327  0: A\x{300}\x{301}A\x{300}\x{301}
   1328     A\x{300}\x{301}A\x{300}\x{301}\P\P  
   1329 Partial match: A\x{300}\x{301}A\x{300}\x{301}
   1330     
   1331 /^\X+/8
   1332     AA\P
   1333  0: AA
   1334     AA\P\P  
   1335 Partial match: AA
   1336 
   1337 /^\X+?Z/8
   1338     AA\P
   1339 Partial match: AA
   1340     AA\P\P 
   1341 Partial match: AA
   1342 
   1343 /A\x{3a3}B/8iDZ
   1344 ------------------------------------------------------------------
   1345         Bra
   1346      /i A
   1347         clist 03a3 03c2 03c3
   1348      /i B
   1349         Ket
   1350         End
   1351 ------------------------------------------------------------------
   1352 Capturing subpattern count = 0
   1353 Options: caseless utf
   1354 First char = 'A' (caseless)
   1355 Need char = 'B' (caseless)
   1356 
   1357 /\x{3a3}B/8iDZ
   1358 ------------------------------------------------------------------
   1359         Bra
   1360         clist 03a3 03c2 03c3
   1361      /i B
   1362         Ket
   1363         End
   1364 ------------------------------------------------------------------
   1365 Capturing subpattern count = 0
   1366 Options: caseless utf
   1367 No first char
   1368 Need char = 'B' (caseless)
   1369 
   1370 /[\x{3a3}]/8iBZ
   1371 ------------------------------------------------------------------
   1372         Bra
   1373         clist 03a3 03c2 03c3
   1374         Ket
   1375         End
   1376 ------------------------------------------------------------------
   1377 
   1378 /[^\x{3a3}]/8iBZ
   1379 ------------------------------------------------------------------
   1380         Bra
   1381         not clist 03a3 03c2 03c3
   1382         Ket
   1383         End
   1384 ------------------------------------------------------------------
   1385 
   1386 /[\x{3a3}]+/8iBZ
   1387 ------------------------------------------------------------------
   1388         Bra
   1389         clist 03a3 03c2 03c3 ++
   1390         Ket
   1391         End
   1392 ------------------------------------------------------------------
   1393 
   1394 /[^\x{3a3}]+/8iBZ
   1395 ------------------------------------------------------------------
   1396         Bra
   1397         not clist 03a3 03c2 03c3 ++
   1398         Ket
   1399         End
   1400 ------------------------------------------------------------------
   1401 
   1402 /a*\x{3a3}/8iBZ
   1403 ------------------------------------------------------------------
   1404         Bra
   1405      /i a*+
   1406         clist 03a3 03c2 03c3
   1407         Ket
   1408         End
   1409 ------------------------------------------------------------------
   1410 
   1411 /\x{3a3}+a/8iBZ
   1412 ------------------------------------------------------------------
   1413         Bra
   1414         clist 03a3 03c2 03c3 ++
   1415      /i a
   1416         Ket
   1417         End
   1418 ------------------------------------------------------------------
   1419 
   1420 /\x{3a3}*\x{3c2}/8iBZ
   1421 ------------------------------------------------------------------
   1422         Bra
   1423         clist 03a3 03c2 03c3 *
   1424         clist 03a3 03c2 03c3
   1425         Ket
   1426         End
   1427 ------------------------------------------------------------------
   1428 
   1429 /\x{3a3}{3}/8i+
   1430     \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2}
   1431  0: \x{3a3}\x{3c3}\x{3c2}
   1432  0+ \x{3a3}\x{3c3}\x{3c2}
   1433 
   1434 /\x{3a3}{2,4}/8i+
   1435     \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2}
   1436  0: \x{3a3}\x{3c3}\x{3c2}\x{3a3}
   1437  0+ \x{3c3}\x{3c2}
   1438 
   1439 /\x{3a3}{2,4}?/8i+
   1440     \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2}
   1441  0: \x{3a3}\x{3c3}
   1442  0+ \x{3c2}\x{3a3}\x{3c3}\x{3c2}
   1443 
   1444 /\x{3a3}+./8i+
   1445     \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2}
   1446  0: \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2}
   1447  0+ 
   1448 
   1449 /\x{3a3}++./8i+
   1450     ** Failers
   1451 No match
   1452     \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2}
   1453 No match
   1454 
   1455 /\x{3a3}*\x{3c2}/8iBZ
   1456 ------------------------------------------------------------------
   1457         Bra
   1458         clist 03a3 03c2 03c3 *
   1459         clist 03a3 03c2 03c3
   1460         Ket
   1461         End
   1462 ------------------------------------------------------------------
   1463 
   1464 /[^\x{3a3}]*\x{3c2}/8iBZ
   1465 ------------------------------------------------------------------
   1466         Bra
   1467         not clist 03a3 03c2 03c3 *+
   1468         clist 03a3 03c2 03c3
   1469         Ket
   1470         End
   1471 ------------------------------------------------------------------
   1472 
   1473 /[^a]*\x{3c2}/8iBZ
   1474 ------------------------------------------------------------------
   1475         Bra
   1476      /i [^a]*
   1477         clist 03a3 03c2 03c3
   1478         Ket
   1479         End
   1480 ------------------------------------------------------------------
   1481 
   1482 /ist/8iBZ
   1483 ------------------------------------------------------------------
   1484         Bra
   1485      /i i
   1486         clist 0053 0073 017f
   1487      /i t
   1488         Ket
   1489         End
   1490 ------------------------------------------------------------------
   1491     ikt
   1492 No match
   1493 
   1494 /is+t/8i
   1495     iSs\x{17f}t
   1496  0: iSs\x{17f}t
   1497     ikt
   1498 No match
   1499 
   1500 /is+?t/8i
   1501     ikt
   1502 No match
   1503 
   1504 /is?t/8i
   1505     ikt
   1506 No match
   1507 
   1508 /is{2}t/8i
   1509     iskt
   1510 No match
   1511     
   1512 /-- This property is a PCRE special --/
   1513 
   1514 /^\p{Xuc}/8
   1515     $abc
   1516  0: $
   1517     @abc
   1518  0: @
   1519     `abc
   1520  0: `
   1521     \x{1234}abc
   1522  0: \x{1234}
   1523     ** Failers
   1524 No match
   1525     abc     
   1526 No match
   1527 
   1528 /^\p{Xuc}+/8
   1529     $@`\x{a0}\x{1234}\x{e000}**
   1530  0: $@`\x{a0}\x{1234}\x{e000}
   1531     ** Failers
   1532 No match
   1533     \x{9f}
   1534 No match
   1535 
   1536 /^\p{Xuc}+?/8
   1537     $@`\x{a0}\x{1234}\x{e000}**
   1538  0: $
   1539     ** Failers
   1540 No match
   1541     \x{9f}
   1542 No match
   1543 
   1544 /^\p{Xuc}+?\*/8
   1545     $@`\x{a0}\x{1234}\x{e000}**
   1546  0: $@`\x{a0}\x{1234}\x{e000}*
   1547     ** Failers
   1548 No match
   1549     \x{9f}
   1550 No match
   1551 
   1552 /^\p{Xuc}++/8
   1553     $@`\x{a0}\x{1234}\x{e000}**
   1554  0: $@`\x{a0}\x{1234}\x{e000}
   1555     ** Failers
   1556 No match
   1557     \x{9f}
   1558 No match
   1559 
   1560 /^\p{Xuc}{3,5}/8
   1561     $@`\x{a0}\x{1234}\x{e000}**
   1562  0: $@`\x{a0}\x{1234}
   1563     ** Failers
   1564 No match
   1565     \x{9f}
   1566 No match
   1567 
   1568 /^\p{Xuc}{3,5}?/8
   1569     $@`\x{a0}\x{1234}\x{e000}**
   1570  0: $@`
   1571     ** Failers
   1572 No match
   1573     \x{9f}
   1574 No match
   1575 
   1576 /^[\p{Xuc}]/8
   1577     $@`\x{a0}\x{1234}\x{e000}**
   1578  0: $
   1579     ** Failers
   1580 No match
   1581     \x{9f}
   1582 No match
   1583 
   1584 /^[\p{Xuc}]+/8
   1585     $@`\x{a0}\x{1234}\x{e000}**
   1586  0: $@`\x{a0}\x{1234}\x{e000}
   1587     ** Failers
   1588 No match
   1589     \x{9f}
   1590 No match
   1591 
   1592 /^\P{Xuc}/8
   1593     abc
   1594  0: a
   1595     ** Failers
   1596  0: *
   1597     $abc
   1598 No match
   1599     @abc
   1600 No match
   1601     `abc
   1602 No match
   1603     \x{1234}abc
   1604 No match
   1605 
   1606 /^[\P{Xuc}]/8
   1607     abc
   1608  0: a
   1609     ** Failers
   1610  0: *
   1611     $abc
   1612 No match
   1613     @abc
   1614 No match
   1615     `abc
   1616 No match
   1617     \x{1234}abc
   1618 No match
   1619     
   1620 /-- Some auto-possessification tests --/
   1621 
   1622 /\pN+\z/BZ
   1623 ------------------------------------------------------------------
   1624         Bra
   1625         prop N ++
   1626         \z
   1627         Ket
   1628         End
   1629 ------------------------------------------------------------------
   1630 
   1631 /\PN+\z/BZ
   1632 ------------------------------------------------------------------
   1633         Bra
   1634         notprop N ++
   1635         \z
   1636         Ket
   1637         End
   1638 ------------------------------------------------------------------
   1639 
   1640 /\pN+/BZ
   1641 ------------------------------------------------------------------
   1642         Bra
   1643         prop N ++
   1644         Ket
   1645         End
   1646 ------------------------------------------------------------------
   1647 
   1648 /\PN+/BZ
   1649 ------------------------------------------------------------------
   1650         Bra
   1651         notprop N ++
   1652         Ket
   1653         End
   1654 ------------------------------------------------------------------
   1655 
   1656 /\p{Any}+\p{Any} \p{Any}+\P{Any} \p{Any}+\p{L&} \p{Any}+\p{L} \p{Any}+\p{Lu} \p{Any}+\p{Han} \p{Any}+\p{Xan} \p{Any}+\p{Xsp} \p{Any}+\p{Xps} \p{Xwd}+\p{Any} \p{Any}+\p{Xuc}/BWZx  
   1657 ------------------------------------------------------------------
   1658         Bra
   1659         prop Any +
   1660         prop Any
   1661         prop Any +
   1662         notprop Any
   1663         prop Any +
   1664         prop L&
   1665         prop Any +
   1666         prop L
   1667         prop Any +
   1668         prop Lu
   1669         prop Any +
   1670         prop Han
   1671         prop Any +
   1672         prop Xan
   1673         prop Any +
   1674         prop Xsp
   1675         prop Any +
   1676         prop Xps
   1677         prop Xwd +
   1678         prop Any
   1679         prop Any +
   1680         prop Xuc
   1681         Ket
   1682         End
   1683 ------------------------------------------------------------------
   1684 
   1685 /\p{L&}+\p{Any} \p{L&}+\p{L&} \P{L&}+\p{L&} \p{L&}+\p{L} \p{L&}+\p{Lu} \p{L&}+\p{Han} \p{L&}+\p{Xan} \p{L&}+\P{Xan} \p{L&}+\p{Xsp} \p{L&}+\p{Xps} \p{Xwd}+\p{L&} \p{L&}+\p{Xuc}/BWZx  
   1686 ------------------------------------------------------------------
   1687         Bra
   1688         prop L& +
   1689         prop Any
   1690         prop L& +
   1691         prop L&
   1692         notprop L& ++
   1693         prop L&
   1694         prop L& +
   1695         prop L
   1696         prop L& +
   1697         prop Lu
   1698         prop L& +
   1699         prop Han
   1700         prop L& +
   1701         prop Xan
   1702         prop L& ++
   1703         notprop Xan
   1704         prop L& ++
   1705         prop Xsp
   1706         prop L& ++
   1707         prop Xps
   1708         prop Xwd +
   1709         prop L&
   1710         prop L& +
   1711         prop Xuc
   1712         Ket
   1713         End
   1714 ------------------------------------------------------------------
   1715 
   1716 /\p{N}+\p{Any} \p{N}+\p{L&} \p{N}+\p{L} \p{N}+\P{L} \p{N}+\P{N} \p{N}+\p{Lu} \p{N}+\p{Han} \p{N}+\p{Xan} \p{N}+\p{Xsp} \p{N}+\p{Xps} \p{Xwd}+\p{N} \p{N}+\p{Xuc}/BWZx  
   1717 ------------------------------------------------------------------
   1718         Bra
   1719         prop N +
   1720         prop Any
   1721         prop N +
   1722         prop L&
   1723         prop N ++
   1724         prop L
   1725         prop N +
   1726         notprop L
   1727         prop N ++
   1728         notprop N
   1729         prop N ++
   1730         prop Lu
   1731         prop N +
   1732         prop Han
   1733         prop N +
   1734         prop Xan
   1735         prop N ++
   1736         prop Xsp
   1737         prop N ++
   1738         prop Xps
   1739         prop Xwd +
   1740         prop N
   1741         prop N +
   1742         prop Xuc
   1743         Ket
   1744         End
   1745 ------------------------------------------------------------------
   1746 
   1747 /\p{Lu}+\p{Any} \p{Lu}+\p{L&} \p{Lu}+\p{L} \p{Lu}+\p{Lu} \P{Lu}+\p{Lu} \p{Lu}+\p{Nd} \p{Lu}+\P{Nd} \p{Lu}+\p{Han} \p{Lu}+\p{Xan} \p{Lu}+\p{Xsp} \p{Lu}+\p{Xps} \p{Xwd}+\p{Lu} \p{Lu}+\p{Xuc}/BWZx  
   1748 ------------------------------------------------------------------
   1749         Bra
   1750         prop Lu +
   1751         prop Any
   1752         prop Lu +
   1753         prop L&
   1754         prop Lu +
   1755         prop L
   1756         prop Lu +
   1757         prop Lu
   1758         notprop Lu ++
   1759         prop Lu
   1760         prop Lu ++
   1761         prop Nd
   1762         prop Lu +
   1763         notprop Nd
   1764         prop Lu +
   1765         prop Han
   1766         prop Lu +
   1767         prop Xan
   1768         prop Lu ++
   1769         prop Xsp
   1770         prop Lu ++
   1771         prop Xps
   1772         prop Xwd +
   1773         prop Lu
   1774         prop Lu +
   1775         prop Xuc
   1776         Ket
   1777         End
   1778 ------------------------------------------------------------------
   1779 
   1780 /\p{Han}+\p{Lu} \p{Han}+\p{L&} \p{Han}+\p{L} \p{Han}+\p{Lu} \p{Han}+\p{Arabic} \p{Arabic}+\p{Arabic} \p{Han}+\p{Xan} \p{Han}+\p{Xsp} \p{Han}+\p{Xps} \p{Xwd}+\p{Han} \p{Han}+\p{Xuc}/BWZx  
   1781 ------------------------------------------------------------------
   1782         Bra
   1783         prop Han +
   1784         prop Lu
   1785         prop Han +
   1786         prop L&
   1787         prop Han +
   1788         prop L
   1789         prop Han +
   1790         prop Lu
   1791         prop Han ++
   1792         prop Arabic
   1793         prop Arabic +
   1794         prop Arabic
   1795         prop Han +
   1796         prop Xan
   1797         prop Han +
   1798         prop Xsp
   1799         prop Han +
   1800         prop Xps
   1801         prop Xwd +
   1802         prop Han
   1803         prop Han +
   1804         prop Xuc
   1805         Ket
   1806         End
   1807 ------------------------------------------------------------------
   1808 
   1809 /\p{Xan}+\p{Any} \p{Xan}+\p{L&} \P{Xan}+\p{L&} \p{Xan}+\p{L} \p{Xan}+\p{Lu} \p{Xan}+\p{Han} \p{Xan}+\p{Xan} \p{Xan}+\P{Xan} \p{Xan}+\p{Xsp} \p{Xan}+\p{Xps} \p{Xwd}+\p{Xan} \p{Xan}+\p{Xuc}/BWZx  
   1810 ------------------------------------------------------------------
   1811         Bra
   1812         prop Xan +
   1813         prop Any
   1814         prop Xan +
   1815         prop L&
   1816         notprop Xan ++
   1817         prop L&
   1818         prop Xan +
   1819         prop L
   1820         prop Xan +
   1821         prop Lu
   1822         prop Xan +
   1823         prop Han
   1824         prop Xan +
   1825         prop Xan
   1826         prop Xan ++
   1827         notprop Xan
   1828         prop Xan ++
   1829         prop Xsp
   1830         prop Xan ++
   1831         prop Xps
   1832         prop Xwd +
   1833         prop Xan
   1834         prop Xan +
   1835         prop Xuc
   1836         Ket
   1837         End
   1838 ------------------------------------------------------------------
   1839 
   1840 /\p{Xsp}+\p{Any} \p{Xsp}+\p{L&} \p{Xsp}+\p{L} \p{Xsp}+\p{Lu} \p{Xsp}+\p{Han} \p{Xsp}+\p{Xan} \p{Xsp}+\p{Xsp} \P{Xsp}+\p{Xsp} \p{Xsp}+\p{Xps} \p{Xwd}+\p{Xsp} \p{Xsp}+\p{Xuc}/BWZx  
   1841 ------------------------------------------------------------------
   1842         Bra
   1843         prop Xsp +
   1844         prop Any
   1845         prop Xsp ++
   1846         prop L&
   1847         prop Xsp ++
   1848         prop L
   1849         prop Xsp ++
   1850         prop Lu
   1851         prop Xsp +
   1852         prop Han
   1853         prop Xsp ++
   1854         prop Xan
   1855         prop Xsp +
   1856         prop Xsp
   1857         notprop Xsp ++
   1858         prop Xsp
   1859         prop Xsp +
   1860         prop Xps
   1861         prop Xwd ++
   1862         prop Xsp
   1863         prop Xsp +
   1864         prop Xuc
   1865         Ket
   1866         End
   1867 ------------------------------------------------------------------
   1868 
   1869 /\p{Xwd}+\p{Any} \p{Xwd}+\p{L&} \p{Xwd}+\p{L} \p{Xwd}+\p{Lu} \p{Xwd}+\p{Han} \p{Xwd}+\p{Xan} \p{Xwd}+\p{Xsp} \p{Xwd}+\p{Xps} \p{Xwd}+\p{Xwd} \p{Xwd}+\P{Xwd} \p{Xwd}+\p{Xuc}/BWZx  
   1870 ------------------------------------------------------------------
   1871         Bra
   1872         prop Xwd +
   1873         prop Any
   1874         prop Xwd +
   1875         prop L&
   1876         prop Xwd +
   1877         prop L
   1878         prop Xwd +
   1879         prop Lu
   1880         prop Xwd +
   1881         prop Han
   1882         prop Xwd +
   1883         prop Xan
   1884         prop Xwd ++
   1885         prop Xsp
   1886         prop Xwd ++
   1887         prop Xps
   1888         prop Xwd +
   1889         prop Xwd
   1890         prop Xwd ++
   1891         notprop Xwd
   1892         prop Xwd +
   1893         prop Xuc
   1894         Ket
   1895         End
   1896 ------------------------------------------------------------------
   1897 
   1898 /\p{Xuc}+\p{Any} \p{Xuc}+\p{L&} \p{Xuc}+\p{L} \p{Xuc}+\p{Lu} \p{Xuc}+\p{Han} \p{Xuc}+\p{Xan} \p{Xuc}+\p{Xsp} \p{Xuc}+\p{Xps} \p{Xwd}+\p{Xuc} \p{Xuc}+\p{Xuc} \p{Xuc}+\P{Xuc}/BWZx  
   1899 ------------------------------------------------------------------
   1900         Bra
   1901         prop Xuc +
   1902         prop Any
   1903         prop Xuc +
   1904         prop L&
   1905         prop Xuc +
   1906         prop L
   1907         prop Xuc +
   1908         prop Lu
   1909         prop Xuc +
   1910         prop Han
   1911         prop Xuc +
   1912         prop Xan
   1913         prop Xuc +
   1914         prop Xsp
   1915         prop Xuc +
   1916         prop Xps
   1917         prop Xwd +
   1918         prop Xuc
   1919         prop Xuc +
   1920         prop Xuc
   1921         prop Xuc ++
   1922         notprop Xuc
   1923         Ket
   1924         End
   1925 ------------------------------------------------------------------
   1926 
   1927 /\p{N}+\p{Ll} \p{N}+\p{Nd} \p{N}+\P{Nd}/BWZx
   1928 ------------------------------------------------------------------
   1929         Bra
   1930         prop N ++
   1931         prop Ll
   1932         prop N +
   1933         prop Nd
   1934         prop N +
   1935         notprop Nd
   1936         Ket
   1937         End
   1938 ------------------------------------------------------------------
   1939 
   1940 /\p{Xan}+\p{L} \p{Xan}+\p{N} \p{Xan}+\p{C} \p{Xan}+\P{L} \P{Xan}+\p{N} \p{Xan}+\P{C}/BWZx
   1941 ------------------------------------------------------------------
   1942         Bra
   1943         prop Xan +
   1944         prop L
   1945         prop Xan +
   1946         prop N
   1947         prop Xan ++
   1948         prop C
   1949         prop Xan +
   1950         notprop L
   1951         notprop Xan ++
   1952         prop N
   1953         prop Xan +
   1954         notprop C
   1955         Ket
   1956         End
   1957 ------------------------------------------------------------------
   1958 
   1959 /\p{L}+\p{Xan} \p{N}+\p{Xan} \p{C}+\p{Xan} \P{L}+\p{Xan} \p{N}+\p{Xan} \P{C}+\p{Xan} \p{L}+\P{Xan}/BWZx
   1960 ------------------------------------------------------------------
   1961         Bra
   1962         prop L +
   1963         prop Xan
   1964         prop N +
   1965         prop Xan
   1966         prop C ++
   1967         prop Xan
   1968         notprop L +
   1969         prop Xan
   1970         prop N +
   1971         prop Xan
   1972         notprop C +
   1973         prop Xan
   1974         prop L ++
   1975         notprop Xan
   1976         Ket
   1977         End
   1978 ------------------------------------------------------------------
   1979 
   1980 /\p{Xan}+\p{Lu} \p{Xan}+\p{Nd} \p{Xan}+\p{Cc} \p{Xan}+\P{Ll} \P{Xan}+\p{No} \p{Xan}+\P{Cf}/BWZx
   1981 ------------------------------------------------------------------
   1982         Bra
   1983         prop Xan +
   1984         prop Lu
   1985         prop Xan +
   1986         prop Nd
   1987         prop Xan ++
   1988         prop Cc
   1989         prop Xan +
   1990         notprop Ll
   1991         notprop Xan ++
   1992         prop No
   1993         prop Xan +
   1994         notprop Cf
   1995         Ket
   1996         End
   1997 ------------------------------------------------------------------
   1998 
   1999 /\p{Lu}+\p{Xan} \p{Nd}+\p{Xan} \p{Cs}+\p{Xan} \P{Lt}+\p{Xan} \p{Nl}+\p{Xan} \P{Cc}+\p{Xan} \p{Lt}+\P{Xan}/BWZx
   2000 ------------------------------------------------------------------
   2001         Bra
   2002         prop Lu +
   2003         prop Xan
   2004         prop Nd +
   2005         prop Xan
   2006         prop Cs ++
   2007         prop Xan
   2008         notprop Lt +
   2009         prop Xan
   2010         prop Nl +
   2011         prop Xan
   2012         notprop Cc +
   2013         prop Xan
   2014         prop Lt ++
   2015         notprop Xan
   2016         Ket
   2017         End
   2018 ------------------------------------------------------------------
   2019 
   2020 /\w+\p{P} \w+\p{Po} \w+\s \p{Xan}+\s \s+\p{Xan} \s+\w/BWZx
   2021 ------------------------------------------------------------------
   2022         Bra
   2023         prop Xwd +
   2024         prop P
   2025         prop Xwd +
   2026         prop Po
   2027         prop Xwd ++
   2028         prop Xsp
   2029         prop Xan ++
   2030         prop Xsp
   2031         prop Xsp ++
   2032         prop Xan
   2033         prop Xsp ++
   2034         prop Xwd
   2035         Ket
   2036         End
   2037 ------------------------------------------------------------------
   2038 
   2039 /\w+\P{P} \W+\p{Po} \w+\S \P{Xan}+\s \s+\P{Xan} \s+\W/BWZx
   2040 ------------------------------------------------------------------
   2041         Bra
   2042         prop Xwd +
   2043         notprop P
   2044         notprop Xwd +
   2045         prop Po
   2046         prop Xwd +
   2047         notprop Xsp
   2048         notprop Xan +
   2049         prop Xsp
   2050         prop Xsp +
   2051         notprop Xan
   2052         prop Xsp +
   2053         notprop Xwd
   2054         Ket
   2055         End
   2056 ------------------------------------------------------------------
   2057 
   2058 /\w+\p{Po} \w+\p{Pc} \W+\p{Po} \W+\p{Pc} \w+\P{Po} \w+\P{Pc}/BWZx
   2059 ------------------------------------------------------------------
   2060         Bra
   2061         prop Xwd +
   2062         prop Po
   2063         prop Xwd ++
   2064         prop Pc
   2065         notprop Xwd +
   2066         prop Po
   2067         notprop Xwd +
   2068         prop Pc
   2069         prop Xwd +
   2070         notprop Po
   2071         prop Xwd +
   2072         notprop Pc
   2073         Ket
   2074         End
   2075 ------------------------------------------------------------------
   2076 
   2077 /\p{Nl}+\p{Xan} \P{Nl}+\p{Xan} \p{Nl}+\P{Xan} \P{Nl}+\P{Xan}/BWZx
   2078 ------------------------------------------------------------------
   2079         Bra
   2080         prop Nl +
   2081         prop Xan
   2082         notprop Nl +
   2083         prop Xan
   2084         prop Nl ++
   2085         notprop Xan
   2086         notprop Nl +
   2087         notprop Xan
   2088         Ket
   2089         End
   2090 ------------------------------------------------------------------
   2091 
   2092 /\p{Xan}+\p{Nl} \P{Xan}+\p{Nl} \p{Xan}+\P{Nl} \P{Xan}+\P{Nl}/BWZx
   2093 ------------------------------------------------------------------
   2094         Bra
   2095         prop Xan +
   2096         prop Nl
   2097         notprop Xan ++
   2098         prop Nl
   2099         prop Xan +
   2100         notprop Nl
   2101         notprop Xan +
   2102         notprop Nl
   2103         Ket
   2104         End
   2105 ------------------------------------------------------------------
   2106 
   2107 /\p{Xan}+\p{Nd} \P{Xan}+\p{Nd} \p{Xan}+\P{Nd} \P{Xan}+\P{Nd}/BWZx
   2108 ------------------------------------------------------------------
   2109         Bra
   2110         prop Xan +
   2111         prop Nd
   2112         notprop Xan ++
   2113         prop Nd
   2114         prop Xan +
   2115         notprop Nd
   2116         notprop Xan +
   2117         notprop Nd
   2118         Ket
   2119         End
   2120 ------------------------------------------------------------------
   2121 
   2122 /-- End auto-possessification tests --/ 
   2123 
   2124 /\w+/8CWBZ
   2125 ------------------------------------------------------------------
   2126         Bra
   2127         Callout 255 0 3
   2128         prop Xwd ++
   2129         Callout 255 3 0
   2130         Ket
   2131         End
   2132 ------------------------------------------------------------------
   2133     abcd
   2134 --->abcd
   2135  +0 ^        \w+
   2136  +3 ^   ^    
   2137  0: abcd
   2138 
   2139 /[\p{N}]?+/BZO
   2140 ------------------------------------------------------------------
   2141         Bra
   2142         [\p{N}]?+
   2143         Ket
   2144         End
   2145 ------------------------------------------------------------------
   2146 
   2147 /[\p{L}ab]{2,3}+/BZO
   2148 ------------------------------------------------------------------
   2149         Bra
   2150         [ab\p{L}]{2,3}+
   2151         Ket
   2152         End
   2153 ------------------------------------------------------------------
   2154 
   2155 /\D+\X \d+\X \S+\X \s+\X \W+\X \w+\X \C+\X \R+\X \H+\X \h+\X \V+\X \v+\X a+\X \n+\X .+\X/BZx
   2156 ------------------------------------------------------------------
   2157         Bra
   2158         \D+
   2159         extuni
   2160         \d+
   2161         extuni
   2162         \S+
   2163         extuni
   2164         \s+
   2165         extuni
   2166         \W+
   2167         extuni
   2168         \w+
   2169         extuni
   2170         AllAny+
   2171         extuni
   2172         \R+
   2173         extuni
   2174         \H+
   2175         extuni
   2176         \h+
   2177         extuni
   2178         \V+
   2179         extuni
   2180         \v+
   2181         extuni
   2182         a+
   2183         extuni
   2184         \x0a+
   2185         extuni
   2186         Any+
   2187         extuni
   2188         Ket
   2189         End
   2190 ------------------------------------------------------------------
   2191 
   2192 /.+\X/BZxs
   2193 ------------------------------------------------------------------
   2194         Bra
   2195         AllAny+
   2196         extuni
   2197         Ket
   2198         End
   2199 ------------------------------------------------------------------
   2200 
   2201 /\X+$/BZxm
   2202 ------------------------------------------------------------------
   2203         Bra
   2204         extuni+
   2205      /m $
   2206         Ket
   2207         End
   2208 ------------------------------------------------------------------
   2209 
   2210 /\X+\D \X+\d \X+\S \X+\s \X+\W \X+\w \X+. \X+\C \X+\R \X+\H \X+\h \X+\V \X+\v \X+\X \X+\Z \X+\z \X+$/BZx
   2211 ------------------------------------------------------------------
   2212         Bra
   2213         extuni+
   2214         \D
   2215         extuni+
   2216         \d
   2217         extuni+
   2218         \S
   2219         extuni+
   2220         \s
   2221         extuni+
   2222         \W
   2223         extuni+
   2224         \w
   2225         extuni+
   2226         Any
   2227         extuni+
   2228         AllAny
   2229         extuni+
   2230         \R
   2231         extuni+
   2232         \H
   2233         extuni+
   2234         \h
   2235         extuni+
   2236         \V
   2237         extuni+
   2238         \v
   2239         extuni+
   2240         extuni
   2241         extuni+
   2242         \Z
   2243         extuni++
   2244         \z
   2245         extuni+
   2246         $
   2247         Ket
   2248         End
   2249 ------------------------------------------------------------------
   2250 
   2251 /\d+\s{0,5}=\s*\S?=\w{0,4}\W*/8WBZ
   2252 ------------------------------------------------------------------
   2253         Bra
   2254         prop Nd ++
   2255         prop Xsp {0,5}+
   2256         =
   2257         prop Xsp *+
   2258         notprop Xsp ?
   2259         =
   2260         prop Xwd {0,4}+
   2261         notprop Xwd *+
   2262         Ket
   2263         End
   2264 ------------------------------------------------------------------
   2265 
   2266 /[RST]+/8iWBZ
   2267 ------------------------------------------------------------------
   2268         Bra
   2269         [R-Tr-t\x{17f}]++
   2270         Ket
   2271         End
   2272 ------------------------------------------------------------------
   2273     
   2274 /[R-T]+/8iWBZ 
   2275 ------------------------------------------------------------------
   2276         Bra
   2277         [R-Tr-t\x{17f}]++
   2278         Ket
   2279         End
   2280 ------------------------------------------------------------------
   2281 
   2282 /[Q-U]+/8iWBZ 
   2283 ------------------------------------------------------------------
   2284         Bra
   2285         [Q-Uq-u\x{17f}]++
   2286         Ket
   2287         End
   2288 ------------------------------------------------------------------
   2289 
   2290 /^s?c/mi8I
   2291 Capturing subpattern count = 0
   2292 Options: caseless multiline utf
   2293 First char at start or follows newline
   2294 Need char = 'c' (caseless)
   2295     scat
   2296  0: sc
   2297 
   2298 /-- End of testinput7 --/
   2299