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