Home | History | Annotate | Download | only in testdata
      1 # This set of tests is for UTF support, including Unicode properties. The 
      2 # Unicode tests are all compatible with all versions of Perl >= 5.10, but
      3 # some of the property tests may differ because of different versions of
      4 # Unicode in use by PCRE2 and Perl.
      5 
      6 #newline_default lf anycrlf any
      7 #perltest
      8 
      9 /a.b/utf
     10     acb
     11     a\x7fb
     12     a\x{100}b
     13 \= Expect no match
     14     a\nb
     15 
     16 /a(.{3})b/utf
     17     a\x{4000}xyb
     18     a\x{4000}\x7fyb
     19     a\x{4000}\x{100}yb
     20 \= Expect no match
     21     a\x{4000}b
     22     ac\ncb
     23 
     24 /a(.*?)(.)/
     25     a\xc0\x88b
     26 
     27 /a(.*?)(.)/utf
     28     a\x{100}b
     29 
     30 /a(.*)(.)/
     31     a\xc0\x88b
     32 
     33 /a(.*)(.)/utf
     34     a\x{100}b
     35 
     36 /a(.)(.)/
     37     a\xc0\x92bcd
     38 
     39 /a(.)(.)/utf
     40     a\x{240}bcd
     41 
     42 /a(.?)(.)/
     43     a\xc0\x92bcd
     44 
     45 /a(.?)(.)/utf
     46     a\x{240}bcd
     47 
     48 /a(.??)(.)/
     49     a\xc0\x92bcd
     50 
     51 /a(.??)(.)/utf
     52     a\x{240}bcd
     53 
     54 /a(.{3})b/utf
     55     a\x{1234}xyb
     56     a\x{1234}\x{4321}yb
     57     a\x{1234}\x{4321}\x{3412}b
     58 \= Expect no match
     59     a\x{1234}b
     60     ac\ncb
     61 
     62 /a(.{3,})b/utf
     63     a\x{1234}xyb
     64     a\x{1234}\x{4321}yb
     65     a\x{1234}\x{4321}\x{3412}b
     66     axxxxbcdefghijb
     67     a\x{1234}\x{4321}\x{3412}\x{3421}b
     68 \= Expect no match
     69     a\x{1234}b
     70 
     71 /a(.{3,}?)b/utf
     72     a\x{1234}xyb
     73     a\x{1234}\x{4321}yb
     74     a\x{1234}\x{4321}\x{3412}b
     75     axxxxbcdefghijb
     76     a\x{1234}\x{4321}\x{3412}\x{3421}b
     77 \= Expect no match
     78     a\x{1234}b
     79 
     80 /a(.{3,5})b/utf
     81     a\x{1234}xyb
     82     a\x{1234}\x{4321}yb
     83     a\x{1234}\x{4321}\x{3412}b
     84     axxxxbcdefghijb
     85     a\x{1234}\x{4321}\x{3412}\x{3421}b
     86     axbxxbcdefghijb
     87     axxxxxbcdefghijb
     88 \= Expect no match
     89     a\x{1234}b
     90     axxxxxxbcdefghijb
     91 
     92 /a(.{3,5}?)b/utf
     93     a\x{1234}xyb
     94     a\x{1234}\x{4321}yb
     95     a\x{1234}\x{4321}\x{3412}b
     96     axxxxbcdefghijb
     97     a\x{1234}\x{4321}\x{3412}\x{3421}b
     98     axbxxbcdefghijb
     99     axxxxxbcdefghijb
    100 \= Expect no match
    101     a\x{1234}b
    102     axxxxxxbcdefghijb
    103 
    104 /^[a\x{c0}]/utf
    105 \= Expect no match
    106     \x{100}
    107 
    108 /(?<=aXb)cd/utf
    109     aXbcd
    110 
    111 /(?<=a\x{100}b)cd/utf
    112     a\x{100}bcd
    113 
    114 /(?<=a\x{100000}b)cd/utf
    115     a\x{100000}bcd
    116 
    117 /(?:\x{100}){3}b/utf
    118     \x{100}\x{100}\x{100}b
    119 \= Expect no match
    120     \x{100}\x{100}b
    121 
    122 /\x{ab}/utf
    123     \x{ab}
    124     \xc2\xab
    125 \= Expect no match
    126     \x00{ab}
    127 
    128 /(?<=(.))X/utf
    129     WXYZ
    130     \x{256}XYZ
    131 \= Expect no match
    132     XYZ
    133 
    134 /[^a]+/g,utf
    135     bcd
    136     \x{100}aY\x{256}Z
    137 
    138 /^[^a]{2}/utf
    139     \x{100}bc
    140 
    141 /^[^a]{2,}/utf
    142     \x{100}bcAa
    143 
    144 /^[^a]{2,}?/utf
    145     \x{100}bca
    146 
    147 /[^a]+/gi,utf
    148     bcd
    149     \x{100}aY\x{256}Z
    150 
    151 /^[^a]{2}/i,utf
    152     \x{100}bc
    153 
    154 /^[^a]{2,}/i,utf
    155     \x{100}bcAa
    156 
    157 /^[^a]{2,}?/i,utf
    158     \x{100}bca
    159 
    160 /\x{100}{0,0}/utf
    161     abcd
    162 
    163 /\x{100}?/utf
    164     abcd
    165     \x{100}\x{100}
    166 
    167 /\x{100}{0,3}/utf
    168     \x{100}\x{100}
    169     \x{100}\x{100}\x{100}\x{100}
    170 
    171 /\x{100}*/utf
    172     abce
    173     \x{100}\x{100}\x{100}\x{100}
    174 
    175 /\x{100}{1,1}/utf
    176     abcd\x{100}\x{100}\x{100}\x{100}
    177 
    178 /\x{100}{1,3}/utf
    179     abcd\x{100}\x{100}\x{100}\x{100}
    180 
    181 /\x{100}+/utf
    182     abcd\x{100}\x{100}\x{100}\x{100}
    183 
    184 /\x{100}{3}/utf
    185     abcd\x{100}\x{100}\x{100}XX
    186 
    187 /\x{100}{3,5}/utf
    188     abcd\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}XX
    189 
    190 /\x{100}{3,}/utf
    191     abcd\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}XX
    192 
    193 /(?<=a\x{100}{2}b)X/utf,aftertext
    194     Xyyya\x{100}\x{100}bXzzz
    195 
    196 /\D*/utf
    197   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    198 
    199 /\D*/utf
    200   \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
    201 
    202 /\D/utf
    203     1X2
    204     1\x{100}2
    205 
    206 />\S/utf
    207     > >X Y
    208     > >\x{100} Y
    209 
    210 /\d/utf
    211     \x{100}3
    212 
    213 /\s/utf
    214     \x{100} X
    215 
    216 /\D+/utf
    217     12abcd34
    218 \= Expect no match
    219     1234
    220 
    221 /\D{2,3}/utf
    222     12abcd34
    223     12ab34
    224 \= Expect no match
    225     1234
    226     12a34
    227 
    228 /\D{2,3}?/utf
    229     12abcd34
    230     12ab34
    231 \= Expect no match
    232     1234
    233     12a34
    234 
    235 /\d+/utf
    236     12abcd34
    237 
    238 /\d{2,3}/utf
    239     12abcd34
    240     1234abcd
    241 \= Expect no match
    242     1.4
    243 
    244 /\d{2,3}?/utf
    245     12abcd34
    246     1234abcd
    247 \= Expect no match
    248     1.4
    249 
    250 /\S+/utf
    251     12abcd34
    252 \= Expect no match
    253     \    \
    254 
    255 /\S{2,3}/utf
    256     12abcd34
    257     1234abcd
    258 \= Expect no match
    259     \     \
    260 
    261 /\S{2,3}?/utf
    262     12abcd34
    263     1234abcd
    264 \= Expect no match
    265     \     \
    266 
    267 />\s+</utf,aftertext
    268     12>      <34
    269 
    270 />\s{2,3}</utf,aftertext
    271     ab>  <cd
    272     ab>   <ce
    273 \= Expect no match
    274     ab>    <cd
    275 
    276 />\s{2,3}?</utf,aftertext
    277     ab>  <cd
    278     ab>   <ce
    279 \= Expect no match
    280     ab>    <cd
    281 
    282 /\w+/utf
    283     12      34
    284 \= Expect no match
    285     +++=*!
    286 
    287 /\w{2,3}/utf
    288     ab  cd
    289     abcd ce
    290 \= Expect no match
    291     a.b.c
    292 
    293 /\w{2,3}?/utf
    294     ab  cd
    295     abcd ce
    296 \= Expect no match
    297     a.b.c
    298 
    299 /\W+/utf
    300     12====34
    301 \= Expect no match
    302     abcd
    303 
    304 /\W{2,3}/utf
    305     ab====cd
    306     ab==cd
    307 \= Expect no match
    308     a.b.c
    309 
    310 /\W{2,3}?/utf
    311     ab====cd
    312     ab==cd
    313 \= Expect no match
    314     a.b.c
    315 
    316 /[\x{100}]/utf
    317     \x{100}
    318     Z\x{100}
    319     \x{100}Z
    320 
    321 /[Z\x{100}]/utf
    322     Z\x{100}
    323     \x{100}
    324     \x{100}Z
    325 
    326 /[\x{100}\x{200}]/utf
    327     ab\x{100}cd
    328     ab\x{200}cd
    329 
    330 /[\x{100}-\x{200}]/utf
    331     ab\x{100}cd
    332     ab\x{200}cd
    333     ab\x{111}cd
    334 
    335 /[z-\x{200}]/utf
    336     ab\x{100}cd
    337     ab\x{200}cd
    338     ab\x{111}cd
    339     abzcd
    340     ab|cd
    341 
    342 /[Q\x{100}\x{200}]/utf
    343     ab\x{100}cd
    344     ab\x{200}cd
    345     Q?
    346 
    347 /[Q\x{100}-\x{200}]/utf
    348     ab\x{100}cd
    349     ab\x{200}cd
    350     ab\x{111}cd
    351     Q?
    352 
    353 /[Qz-\x{200}]/utf
    354     ab\x{100}cd
    355     ab\x{200}cd
    356     ab\x{111}cd
    357     abzcd
    358     ab|cd
    359     Q?
    360 
    361 /[\x{100}\x{200}]{1,3}/utf
    362     ab\x{100}cd
    363     ab\x{200}cd
    364     ab\x{200}\x{100}\x{200}\x{100}cd
    365 
    366 /[\x{100}\x{200}]{1,3}?/utf
    367     ab\x{100}cd
    368     ab\x{200}cd
    369     ab\x{200}\x{100}\x{200}\x{100}cd
    370 
    371 /[Q\x{100}\x{200}]{1,3}/utf
    372     ab\x{100}cd
    373     ab\x{200}cd
    374     ab\x{200}\x{100}\x{200}\x{100}cd
    375 
    376 /[Q\x{100}\x{200}]{1,3}?/utf
    377     ab\x{100}cd
    378     ab\x{200}cd
    379     ab\x{200}\x{100}\x{200}\x{100}cd
    380 
    381 /(?<=[\x{100}\x{200}])X/utf
    382     abc\x{200}X
    383     abc\x{100}X
    384 \= Expect no match
    385     X
    386 
    387 /(?<=[Q\x{100}\x{200}])X/utf
    388     abc\x{200}X
    389     abc\x{100}X
    390     abQX
    391 \= Expect no match
    392     X
    393 
    394 /(?<=[\x{100}\x{200}]{3})X/utf
    395     abc\x{100}\x{200}\x{100}X
    396 \= Expect no match
    397     abc\x{200}X
    398     X
    399 
    400 /[^\x{100}\x{200}]X/utf
    401     AX
    402     \x{150}X
    403     \x{500}X
    404 \= Expect no match
    405     \x{100}X
    406     \x{200}X
    407 
    408 /[^Q\x{100}\x{200}]X/utf
    409     AX
    410     \x{150}X
    411     \x{500}X
    412 \= Expect no match
    413     \x{100}X
    414     \x{200}X
    415     QX
    416 
    417 /[^\x{100}-\x{200}]X/utf
    418     AX
    419     \x{500}X
    420 \= Expect no match
    421     \x{100}X
    422     \x{150}X
    423     \x{200}X
    424 
    425 /[z-\x{100}]/i,utf
    426     z
    427     Z
    428     \x{100}
    429 \= Expect no match
    430     \x{102}
    431     y
    432 
    433 /[\xFF]/
    434     >\xff<
    435 
    436 /[\xff]/utf
    437     >\x{ff}<
    438 
    439 /[^\xFF]/
    440     XYZ
    441 
    442 /[^\xff]/utf
    443     XYZ
    444     \x{123}
    445 
    446 /^[ac]*b/utf
    447 \= Expect no match
    448   xb
    449 
    450 /^[ac\x{100}]*b/utf
    451 \= Expect no match
    452   xb
    453 
    454 /^[^x]*b/i,utf
    455 \= Expect no match
    456   xb
    457 
    458 /^[^x]*b/utf
    459 \= Expect no match
    460   xb
    461 
    462 /^\d*b/utf
    463 \= Expect no match
    464   xb
    465 
    466 /(|a)/g,utf
    467     catac
    468     a\x{256}a
    469 
    470 /^\x{85}$/i,utf
    471     \x{85}
    472 
    473 /^/utf
    474     
    475 
    476 /^\/utf
    477     
    478 
    479 "(?s)(.{1,5})"utf
    480     abcdefg
    481     ab
    482 
    483 /a*\x{100}*\w/utf
    484     a
    485 
    486 /\S\S/g,utf
    487     A\x{a3}BC
    488 
    489 /\S{2}/g,utf
    490     A\x{a3}BC
    491 
    492 /\W\W/g,utf
    493     +\x{a3}==
    494 
    495 /\W{2}/g,utf
    496     +\x{a3}==
    497 
    498 /\S/g,utf
    499     \x{442}\x{435}\x{441}\x{442}
    500 
    501 /[\S]/g,utf
    502     \x{442}\x{435}\x{441}\x{442}
    503 
    504 /\D/g,utf
    505     \x{442}\x{435}\x{441}\x{442}
    506 
    507 /[\D]/g,utf
    508     \x{442}\x{435}\x{441}\x{442}
    509 
    510 /\W/g,utf
    511     \x{2442}\x{2435}\x{2441}\x{2442}
    512 
    513 /[\W]/g,utf
    514     \x{2442}\x{2435}\x{2441}\x{2442}
    515 
    516 /[\S\s]*/utf
    517     abc\n\r\x{442}\x{435}\x{441}\x{442}xyz
    518 
    519 /[\x{41f}\S]/g,utf
    520     \x{442}\x{435}\x{441}\x{442}
    521 
    522 /.[^\S]./g,utf
    523     abc def\x{442}\x{443}xyz\npqr
    524 
    525 /.[^\S\n]./g,utf
    526     abc def\x{442}\x{443}xyz\npqr
    527 
    528 /[[:^alnum:]]/g,utf
    529     +\x{2442}
    530 
    531 /[[:^alpha:]]/g,utf
    532     +\x{2442}
    533 
    534 /[[:^ascii:]]/g,utf
    535     A\x{442}
    536 
    537 /[[:^blank:]]/g,utf
    538     A\x{442}
    539 
    540 /[[:^cntrl:]]/g,utf
    541     A\x{442}
    542 
    543 /[[:^digit:]]/g,utf
    544     A\x{442}
    545 
    546 /[[:^graph:]]/g,utf
    547     \x19\x{e01ff}
    548 
    549 /[[:^lower:]]/g,utf
    550     A\x{422}
    551 
    552 /[[:^print:]]/g,utf
    553     \x{19}\x{e01ff}
    554 
    555 /[[:^punct:]]/g,utf
    556     A\x{442}
    557 
    558 /[[:^space:]]/g,utf
    559     A\x{442}
    560 
    561 /[[:^upper:]]/g,utf
    562     a\x{442}
    563 
    564 /[[:^word:]]/g,utf
    565     +\x{2442}
    566 
    567 /[[:^xdigit:]]/g,utf
    568     M\x{442}
    569 
    570 /[^ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\d-_^]/utf
    571 
    572 /^[^d]*?$/
    573     abc
    574 
    575 /^[^d]*?$/utf
    576     abc
    577 
    578 /^[^d]*?$/i
    579     abc
    580 
    581 /^[^d]*?$/i,utf
    582     abc
    583 
    584 /(?i)[\xc3\xa9\xc3\xbd]|[\xc3\xa9\xc3\xbdA]/utf
    585 
    586 /^[a\x{c0}]b/utf
    587     \x{c0}b
    588 
    589 /^([a\x{c0}]*?)aa/utf
    590     a\x{c0}aaaa/
    591 
    592 /^([a\x{c0}]*?)aa/utf
    593     a\x{c0}aaaa/
    594     a\x{c0}a\x{c0}aaa/
    595 
    596 /^([a\x{c0}]*)aa/utf
    597     a\x{c0}aaaa/
    598     a\x{c0}a\x{c0}aaa/
    599 
    600 /^([a\x{c0}]*)a\x{c0}/utf
    601     a\x{c0}aaaa/
    602     a\x{c0}a\x{c0}aaa/
    603 
    604 /A*/g,utf
    605     AAB\x{123}BAA
    606 
    607 /(abc)\1/i,utf
    608 \= Expect no match
    609    abc
    610 
    611 /(abc)\1/utf
    612 \= Expect no match
    613    abc
    614 
    615 /a(*:a\x{1234}b)/utf,mark
    616     abc
    617 
    618 /a(*:ab)/utf,mark
    619     abc
    620 
    621 # Noncharacters
    622 
    623 /./utf
    624     \x{fffe}
    625     \x{ffff}
    626     \x{1fffe}
    627     \x{1ffff}
    628     \x{2fffe}
    629     \x{2ffff}
    630     \x{3fffe}
    631     \x{3ffff}
    632     \x{4fffe}
    633     \x{4ffff}
    634     \x{5fffe}
    635     \x{5ffff}
    636     \x{6fffe}
    637     \x{6ffff}
    638     \x{7fffe}
    639     \x{7ffff}
    640     \x{8fffe}
    641     \x{8ffff}
    642     \x{9fffe}
    643     \x{9ffff}
    644     \x{afffe}
    645     \x{affff}
    646     \x{bfffe}
    647     \x{bffff}
    648     \x{cfffe}
    649     \x{cffff}
    650     \x{dfffe}
    651     \x{dffff}
    652     \x{efffe}
    653     \x{effff}
    654     \x{ffffe}
    655     \x{fffff}
    656     \x{10fffe}
    657     \x{10ffff}
    658     \x{fdd0}
    659     \x{fdd1}
    660     \x{fdd2}
    661     \x{fdd3}
    662     \x{fdd4}
    663     \x{fdd5}
    664     \x{fdd6}
    665     \x{fdd7}
    666     \x{fdd8}
    667     \x{fdd9}
    668     \x{fdda}
    669     \x{fddb}
    670     \x{fddc}
    671     \x{fddd}
    672     \x{fdde}
    673     \x{fddf}
    674     \x{fde0}
    675     \x{fde1}
    676     \x{fde2}
    677     \x{fde3}
    678     \x{fde4}
    679     \x{fde5}
    680     \x{fde6}
    681     \x{fde7}
    682     \x{fde8}
    683     \x{fde9}
    684     \x{fdea}
    685     \x{fdeb}
    686     \x{fdec}
    687     \x{fded}
    688     \x{fdee}
    689     \x{fdef}
    690 
    691 /^\d*\w{4}/utf
    692     1234
    693 \= Expect no match     
    694     123
    695 
    696 /^[^b]*\w{4}/utf
    697     aaaa
    698 \= Expect no match     
    699     aaa
    700 
    701 /^[^b]*\w{4}/i,utf
    702     aaaa
    703 \= Expect no match     
    704     aaa
    705 
    706 /^\x{100}*.{4}/utf
    707     \x{100}\x{100}\x{100}\x{100}
    708 \= Expect no match     
    709     \x{100}\x{100}\x{100}
    710 
    711 /^\x{100}*.{4}/i,utf
    712     \x{100}\x{100}\x{100}\x{100}
    713 \= Expect no match     
    714     \x{100}\x{100}\x{100}
    715 
    716 /^a+[a\x{200}]/utf
    717     aa
    718 
    719 /^.\B.\B./utf
    720     \x{10123}\x{10124}\x{10125}
    721 
    722 /^#[^\x{ffff}]#[^\x{ffff}]#[^\x{ffff}]#/utf
    723     #\x{10000}#\x{100}#\x{10ffff}#
    724     
    725 # Unicode property support tests 
    726 
    727 /^\pC\pL\pM\pN\pP\pS\pZ</utf
    728     \x7f\x{c0}\x{30f}\x{660}\x{66c}\x{f01}\x{1680}<
    729     \np\x{300}9!\$ < 
    730 \= Expect no match     
    731     ap\x{300}9!\$ < 
    732   
    733 /^\PC/utf
    734     X
    735 \= Expect no match     
    736     \x7f
    737   
    738 /^\PL/utf
    739     9
    740 \= Expect no match     
    741     \x{c0}
    742   
    743 /^\PM/utf
    744     X
    745 \= Expect no match     
    746     \x{30f}
    747   
    748 /^\PN/utf
    749     X
    750 \= Expect no match     
    751     \x{660}
    752   
    753 /^\PP/utf
    754     X
    755 \= Expect no match 
    756     \x{66c}
    757   
    758 /^\PS/utf
    759     X
    760 \= Expect no match 
    761     \x{f01}
    762   
    763 /^\PZ/utf
    764     X
    765 \= Expect no match 
    766     \x{1680}
    767     
    768 /^\p{Cc}/utf
    769     \x{017}
    770     \x{09f} 
    771 \= Expect no match
    772     \x{0600} 
    773   
    774 /^\p{Cf}/utf
    775     \x{601}
    776 \= Expect no match
    777     \x{09f} 
    778   
    779 /^\p{Cn}/utf
    780     \x{e0000}
    781 \= Expect no match
    782     \x{09f} 
    783   
    784 /^\p{Co}/utf
    785     \x{f8ff}
    786 \= Expect no match
    787     \x{09f} 
    788   
    789 /^\p{Ll}/utf
    790     a
    791 \= Expect no match 
    792     Z
    793     \x{e000}  
    794   
    795 /^\p{Lm}/utf
    796     \x{2b0}
    797 \= Expect no match
    798     a 
    799   
    800 /^\p{Lo}/utf
    801     \x{1bb}
    802     \x{3400}
    803     \x{3401}
    804     \x{4d00}
    805     \x{4db4}
    806     \x{4db5}     
    807 \= Expect no match
    808     a 
    809     \x{2b0}
    810     \x{4db6} 
    811   
    812 /^\p{Lt}/utf
    813     \x{1c5}
    814 \= Expect no match
    815     a 
    816     \x{2b0}
    817   
    818 /^\p{Lu}/utf
    819     A
    820 \= Expect no match
    821     \x{2b0}
    822   
    823 /^\p{Mc}/utf
    824     \x{903}
    825 \= Expect no match
    826     X
    827     \x{300}
    828        
    829 /^\p{Me}/utf
    830     \x{488}
    831 \= Expect no match
    832     X
    833     \x{903}
    834     \x{300}
    835   
    836 /^\p{Mn}/utf
    837     \x{300}
    838 \= Expect no match
    839     X
    840     \x{903}
    841   
    842 /^\p{Nd}+/utf
    843     0123456789\x{660}\x{661}\x{662}\x{663}\x{664}\x{665}\x{666}\x{667}\x{668}\x{669}\x{66a}
    844     \x{6f0}\x{6f1}\x{6f2}\x{6f3}\x{6f4}\x{6f5}\x{6f6}\x{6f7}\x{6f8}\x{6f9}\x{6fa}
    845     \x{966}\x{967}\x{968}\x{969}\x{96a}\x{96b}\x{96c}\x{96d}\x{96e}\x{96f}\x{970}
    846 \= Expect no match
    847     X
    848   
    849 /^\p{Nl}/utf
    850     \x{16ee}
    851 \= Expect no match
    852     X
    853     \x{966}
    854   
    855 /^\p{No}/utf
    856     \x{b2}
    857     \x{b3}
    858 \= Expect no match
    859     X
    860     \x{16ee}
    861   
    862 /^\p{Pc}/utf
    863     \x5f
    864     \x{203f}
    865 \= Expect no match
    866     X
    867     -
    868     \x{58a}
    869   
    870 /^\p{Pd}/utf
    871     -
    872     \x{58a}
    873 \= Expect no match
    874     X
    875     \x{203f}
    876   
    877 /^\p{Pe}/utf
    878     )
    879     ]
    880     }
    881     \x{f3b}
    882 \= Expect no match
    883     X
    884     \x{203f}
    885     (
    886     [
    887     {
    888     \x{f3c}
    889   
    890 /^\p{Pf}/utf
    891     \x{bb}
    892     \x{2019}
    893 \= Expect no match
    894     X
    895     \x{203f}
    896   
    897 /^\p{Pi}/utf
    898     \x{ab}
    899     \x{2018}
    900 \= Expect no match
    901     X
    902     \x{203f}
    903   
    904 /^\p{Po}/utf
    905     !
    906     \x{37e}
    907 \= Expect no match
    908     X
    909     \x{203f}
    910   
    911 /^\p{Ps}/utf
    912     (
    913     [
    914     {
    915     \x{f3c}
    916 \= Expect no match
    917     X
    918     )
    919     ]
    920     }
    921     \x{f3b}
    922   
    923 /^\p{Sk}/utf
    924     \x{2c2}
    925 \= Expect no match
    926     X
    927     \x{9f2}
    928   
    929 /^\p{Sm}+/utf
    930     +<|~\x{ac}\x{2044}
    931 \= Expect no match
    932     X
    933     \x{9f2}
    934   
    935 /^\p{So}/utf
    936     \x{a6}
    937     \x{482} 
    938 \= Expect no match
    939     X
    940     \x{9f2}
    941   
    942 /^\p{Zl}/utf
    943     \x{2028}
    944 \= Expect no match
    945     X
    946     \x{2029}
    947   
    948 /^\p{Zp}/utf
    949     \x{2029}
    950 \= Expect no match
    951     X
    952     \x{2028}
    953   
    954 /\p{Nd}+(..)/utf
    955     \x{660}\x{661}\x{662}ABC
    956   
    957 /\p{Nd}+?(..)/utf
    958     \x{660}\x{661}\x{662}ABC
    959   
    960 /\p{Nd}{2,}(..)/utf
    961     \x{660}\x{661}\x{662}ABC
    962   
    963 /\p{Nd}{2,}?(..)/utf
    964     \x{660}\x{661}\x{662}ABC
    965   
    966 /\p{Nd}*(..)/utf
    967     \x{660}\x{661}\x{662}ABC
    968   
    969 /\p{Nd}*?(..)/utf
    970     \x{660}\x{661}\x{662}ABC
    971   
    972 /\p{Nd}{2}(..)/utf
    973     \x{660}\x{661}\x{662}ABC
    974   
    975 /\p{Nd}{2,3}(..)/utf
    976     \x{660}\x{661}\x{662}ABC
    977   
    978 /\p{Nd}{2,3}?(..)/utf
    979     \x{660}\x{661}\x{662}ABC
    980   
    981 /\p{Nd}?(..)/utf
    982     \x{660}\x{661}\x{662}ABC
    983   
    984 /\p{Nd}??(..)/utf
    985     \x{660}\x{661}\x{662}ABC
    986   
    987 /\p{Nd}*+(..)/utf
    988     \x{660}\x{661}\x{662}ABC
    989   
    990 /\p{Nd}*+(...)/utf
    991     \x{660}\x{661}\x{662}ABC
    992   
    993 /\p{Nd}*+(....)/utf
    994 \= Expect no match
    995     \x{660}\x{661}\x{662}ABC
    996   
    997 /(?<=A\p{Nd})XYZ/utf
    998     A2XYZ
    999     123A5XYZPQR
   1000     ABA\x{660}XYZpqr
   1001 \= Expect no match
   1002     AXYZ
   1003     XYZ     
   1004     
   1005 /(?<!\pL)XYZ/utf
   1006     1XYZ
   1007     AB=XYZ.. 
   1008     XYZ 
   1009 \= Expect no match
   1010     WXYZ 
   1011 
   1012 /[\P{Nd}]+/utf
   1013     abcd
   1014 \= Expect no match
   1015     1234
   1016 
   1017 /\D+/utf
   1018     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
   1019 \= Expect no match
   1020     11111111111111111111111111111111111111111111111111111111111111111111111
   1021      
   1022 /\P{Nd}+/utf
   1023     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
   1024 \= Expect no match
   1025     11111111111111111111111111111111111111111111111111111111111111111111111
   1026 
   1027 /[\D]+/utf
   1028     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
   1029 \= Expect no match
   1030     11111111111111111111111111111111111111111111111111111111111111111111111
   1031 
   1032 /[\P{Nd}]+/utf
   1033     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
   1034 \= Expect no match
   1035     11111111111111111111111111111111111111111111111111111111111111111111111
   1036 
   1037 /[\D\P{Nd}]+/utf
   1038     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
   1039 \= Expect no match
   1040     11111111111111111111111111111111111111111111111111111111111111111111111
   1041 
   1042 /\pL/utf
   1043     a
   1044     A 
   1045 
   1046 /\pL/i,utf
   1047     a
   1048     A 
   1049     
   1050 /\p{Lu}/utf
   1051     A
   1052     aZ
   1053 \= Expect no match
   1054     abc   
   1055 
   1056 /\p{Ll}/utf
   1057     a
   1058     Az
   1059 \= Expect no match
   1060     ABC   
   1061 
   1062 /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/utf
   1063     A\x{391}\x{10427}\x{ff3a}\x{1fb0}
   1064 \= Expect no match
   1065     a\x{391}\x{10427}\x{ff3a}\x{1fb0}   
   1066     A\x{3b1}\x{10427}\x{ff3a}\x{1fb0}
   1067     A\x{391}\x{1044F}\x{ff3a}\x{1fb0}
   1068     A\x{391}\x{10427}\x{ff5a}\x{1fb0}
   1069     A\x{391}\x{10427}\x{ff3a}\x{1fb8}
   1070 
   1071 /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/i,utf
   1072     A\x{391}\x{10427}\x{ff3a}\x{1fb0}
   1073     a\x{391}\x{10427}\x{ff3a}\x{1fb0}   
   1074     A\x{3b1}\x{10427}\x{ff3a}\x{1fb0}
   1075     A\x{391}\x{1044F}\x{ff3a}\x{1fb0}
   1076     A\x{391}\x{10427}\x{ff5a}\x{1fb0}
   1077     A\x{391}\x{10427}\x{ff3a}\x{1fb8}
   1078 
   1079 /\x{391}+/i,utf
   1080     \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}
   1081 
   1082 /\x{391}{3,5}(.)/i,utf
   1083     \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}X
   1084 
   1085 /\x{391}{3,5}?(.)/i,utf
   1086     \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}X
   1087 
   1088 /[\x{391}\x{ff3a}]/i,utf
   1089     \x{391}
   1090     \x{ff3a}
   1091     \x{3b1}
   1092     \x{ff5a}   
   1093     
   1094 /^(\X*)C/utf
   1095     A\x{300}\x{301}\x{302}BCA\x{300}\x{301} 
   1096     A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C 
   1097 
   1098 /^(\X*?)C/utf
   1099     A\x{300}\x{301}\x{302}BCA\x{300}\x{301} 
   1100     A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C 
   1101 
   1102 /^(\X*)(.)/utf
   1103     A\x{300}\x{301}\x{302}BCA\x{300}\x{301} 
   1104     A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C 
   1105 
   1106 /^(\X*?)(.)/utf
   1107     A\x{300}\x{301}\x{302}BCA\x{300}\x{301} 
   1108     A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C 
   1109 
   1110 /^\X(.)/utf
   1111 \= Expect no match
   1112     A\x{300}\x{301}\x{302}
   1113 
   1114 /^\X{2,3}(.)/utf
   1115     A\x{300}\x{301}B\x{300}X
   1116     A\x{300}\x{301}B\x{300}C\x{300}\x{301}
   1117     A\x{300}\x{301}B\x{300}C\x{300}\x{301}X
   1118     A\x{300}\x{301}B\x{300}C\x{300}\x{301}DA\x{300}X
   1119     
   1120 /^\X{2,3}?(.)/utf
   1121     A\x{300}\x{301}B\x{300}X
   1122     A\x{300}\x{301}B\x{300}C\x{300}\x{301}
   1123     A\x{300}\x{301}B\x{300}C\x{300}\x{301}X
   1124     A\x{300}\x{301}B\x{300}C\x{300}\x{301}DA\x{300}X
   1125 
   1126 /^\X/utf
   1127     A
   1128     A\x{300}BC 
   1129     A\x{300}\x{301}\x{302}BC 
   1130     \x{300}  
   1131 
   1132 /^\p{Han}+/utf
   1133     \x{2e81}\x{3007}\x{2f804}\x{31a0}
   1134 \= Expect no match
   1135     \x{2e7f}  
   1136 
   1137 /^\P{Katakana}+/utf
   1138     \x{3105}
   1139 \= Expect no match
   1140     \x{30ff}  
   1141 
   1142 /^[\p{Arabic}]/utf
   1143     \x{06e9}
   1144     \x{060b}
   1145 \= Expect no match
   1146     X\x{06e9}   
   1147 
   1148 /^[\P{Yi}]/utf
   1149     \x{2f800}
   1150 \= Expect no match
   1151     \x{a014}
   1152     \x{a4c6}   
   1153     
   1154 /^\p{Any}X/utf
   1155     AXYZ
   1156     \x{1234}XYZ 
   1157 \= Expect no match
   1158     X  
   1159     
   1160 /^\P{Any}X/utf
   1161 \= Expect no match
   1162     AX
   1163     
   1164 /^\p{Any}?X/utf
   1165     XYZ
   1166     AXYZ
   1167     \x{1234}XYZ 
   1168 \= Expect no match
   1169     ABXYZ   
   1170 
   1171 /^\P{Any}?X/utf
   1172     XYZ
   1173 \= Expect no match
   1174     AXYZ
   1175     \x{1234}XYZ 
   1176     ABXYZ   
   1177 
   1178 /^\p{Any}+X/utf
   1179     AXYZ
   1180     \x{1234}XYZ
   1181     A\x{1234}XYZ
   1182 \= Expect no match
   1183     XYZ
   1184 
   1185 /^\P{Any}+X/utf
   1186 \= Expect no match
   1187     AXYZ
   1188     \x{1234}XYZ
   1189     A\x{1234}XYZ
   1190     XYZ
   1191 
   1192 /^\p{Any}*X/utf
   1193     XYZ
   1194     AXYZ
   1195     \x{1234}XYZ
   1196     A\x{1234}XYZ
   1197 
   1198 /^\P{Any}*X/utf
   1199     XYZ
   1200 \= Expect no match
   1201     AXYZ
   1202     \x{1234}XYZ
   1203     A\x{1234}XYZ
   1204 
   1205 /^[\p{Any}]X/utf
   1206     AXYZ
   1207     \x{1234}XYZ 
   1208 \= Expect no match
   1209     X  
   1210     
   1211 /^[\P{Any}]X/utf
   1212 \= Expect no match
   1213     AX
   1214     
   1215 /^[\p{Any}]?X/utf
   1216     XYZ
   1217     AXYZ
   1218     \x{1234}XYZ 
   1219 \= Expect no match
   1220     ABXYZ   
   1221 
   1222 /^[\P{Any}]?X/utf
   1223     XYZ
   1224 \= Expect no match
   1225     AXYZ
   1226     \x{1234}XYZ 
   1227     ABXYZ   
   1228 
   1229 /^[\p{Any}]+X/utf
   1230     AXYZ
   1231     \x{1234}XYZ
   1232     A\x{1234}XYZ
   1233 \= Expect no match
   1234     XYZ
   1235 
   1236 /^[\P{Any}]+X/utf
   1237 \= Expect no match
   1238     AXYZ
   1239     \x{1234}XYZ
   1240     A\x{1234}XYZ
   1241     XYZ
   1242 
   1243 /^[\p{Any}]*X/utf
   1244     XYZ
   1245     AXYZ
   1246     \x{1234}XYZ
   1247     A\x{1234}XYZ
   1248 
   1249 /^[\P{Any}]*X/utf
   1250     XYZ
   1251 \= Expect no match
   1252     AXYZ
   1253     \x{1234}XYZ
   1254     A\x{1234}XYZ
   1255 
   1256 /^\p{Any}{3,5}?/utf
   1257     abcdefgh
   1258     \x{1234}\n\r\x{3456}xyz 
   1259 
   1260 /^\p{Any}{3,5}/utf
   1261     abcdefgh
   1262     \x{1234}\n\r\x{3456}xyz 
   1263 
   1264 /^\P{Any}{3,5}?/utf
   1265 \= Expect no match
   1266     abcdefgh
   1267     \x{1234}\n\r\x{3456}xyz 
   1268 
   1269 /^\p{L&}X/utf
   1270      AXY
   1271      aXY
   1272      \x{1c5}XY
   1273 \= Expect no match
   1274     \x{1bb}XY
   1275     \x{2b0}XY
   1276     !XY      
   1277 
   1278 /^[\p{L&}]X/utf
   1279     AXY
   1280     aXY
   1281      \x{1c5}XY
   1282 \= Expect no match
   1283     \x{1bb}XY
   1284     \x{2b0}XY
   1285     !XY      
   1286 
   1287 /^\p{L&}+X/utf
   1288     AXY
   1289     aXY
   1290     AbcdeXyz 
   1291     \x{1c5}AbXY
   1292     abcDEXypqreXlmn 
   1293 \= Expect no match
   1294     \x{1bb}XY
   1295     \x{2b0}XY
   1296     !XY      
   1297 
   1298 /^[\p{L&}]+X/utf
   1299     AXY
   1300     aXY
   1301     AbcdeXyz 
   1302     \x{1c5}AbXY
   1303     abcDEXypqreXlmn 
   1304 \= Expect no match
   1305     \x{1bb}XY
   1306     \x{2b0}XY
   1307     !XY      
   1308 
   1309 /^\p{L&}+?X/utf
   1310     AXY
   1311     aXY
   1312     AbcdeXyz 
   1313     \x{1c5}AbXY
   1314     abcDEXypqreXlmn 
   1315 \= Expect no match
   1316     \x{1bb}XY
   1317     \x{2b0}XY
   1318     !XY      
   1319 
   1320 /^[\p{L&}]+?X/utf
   1321     AXY
   1322     aXY
   1323     AbcdeXyz 
   1324     \x{1c5}AbXY
   1325     abcDEXypqreXlmn 
   1326 \= Expect no match
   1327     \x{1bb}XY
   1328     \x{2b0}XY
   1329     !XY      
   1330 
   1331 /^\P{L&}X/utf
   1332     !XY
   1333     \x{1bb}XY
   1334     \x{2b0}XY
   1335 \= Expect no match
   1336     \x{1c5}XY
   1337     AXY      
   1338 
   1339 /^[\P{L&}]X/utf
   1340     !XY
   1341     \x{1bb}XY
   1342     \x{2b0}XY
   1343 \= Expect no match
   1344     \x{1c5}XY
   1345     AXY      
   1346 
   1347 /^(\p{Z}[^\p{C}\p{Z}]+)*$/
   1348     \xa0!
   1349 
   1350 /^[\pL](abc)(?1)/
   1351     AabcabcYZ    
   1352 
   1353 /([\pL]=(abc))*X/
   1354     L=abcX
   1355 
   1356 /^\p{Balinese}\p{Cuneiform}\p{Nko}\p{Phags_Pa}\p{Phoenician}/utf
   1357     \x{1b00}\x{12000}\x{7c0}\x{a840}\x{10900}
   1358 
   1359 # Check property support in non-UTF mode
   1360  
   1361 /\p{L}{4}/
   1362     123abcdefg
   1363     123abc\xc4\xc5zz
   1364 
   1365 /\X{1,3}\d/
   1366 \= Expect no match
   1367     \x8aBCD
   1368   
   1369 /\X?\d/
   1370 \= Expect no match
   1371     \x8aBCD 
   1372 
   1373 /\P{L}?\d/
   1374 \= Expect no match
   1375     \x8aBCD 
   1376 
   1377 /[\PPP\x8a]{1,}\x80/
   1378     A\x80
   1379 
   1380 /^[\p{Arabic}]/utf
   1381     \x{604}
   1382     \x{60e} 
   1383     \x{656} 
   1384     \x{657} 
   1385     \x{658} 
   1386     \x{659} 
   1387     \x{65a} 
   1388     \x{65b} 
   1389     \x{65c} 
   1390     \x{65d} 
   1391     \x{65e} 
   1392     \x{65f}
   1393     \x{66a} 
   1394     \x{6e9} 
   1395     \x{6ef}
   1396     \x{6fa}  
   1397 \= Expect no match
   1398     \x{650}
   1399     \x{651}  
   1400     \x{652}  
   1401     \x{653}  
   1402     \x{654} 
   1403     \x{655} 
   1404     
   1405 /^\p{Cyrillic}/utf
   1406     \x{1d2b} 
   1407     
   1408 /^\p{Common}/utf
   1409     \x{589}
   1410     \x{60c}
   1411     \x{61f}  
   1412     \x{964}
   1413     \x{965}  
   1414 
   1415 /^\p{Inherited}/utf
   1416     \x{64b}
   1417     \x{654}
   1418     \x{655}
   1419     \x{200c} 
   1420 \= Expect no match
   1421     \x{64a}
   1422     \x{656}     
   1423 
   1424 /^\p{Shavian}/utf
   1425     \x{10450}
   1426     \x{1047f}
   1427     
   1428 /^\p{Deseret}/utf
   1429     \x{10400}
   1430     \x{1044f}
   1431     
   1432 /^\p{Osmanya}/utf
   1433     \x{10480}
   1434     \x{1049d}
   1435     \x{104a0}
   1436     \x{104a9}
   1437 \= Expect no match
   1438     \x{1049e}
   1439     \x{1049f}
   1440     \x{104aa}           
   1441 
   1442 /\p{Carian}\p{Cham}\p{Kayah_Li}\p{Lepcha}\p{Lycian}\p{Lydian}\p{Ol_Chiki}\p{Rejang}\p{Saurashtra}\p{Sundanese}\p{Vai}/utf
   1443     \x{102A4}\x{AA52}\x{A91D}\x{1C46}\x{10283}\x{1092E}\x{1C6B}\x{A93B}\x{A8BF}\x{1BA0}\x{A50A}====
   1444 
   1445 /\x{a77d}\x{1d79}/i,utf
   1446     \x{a77d}\x{1d79}
   1447     \x{1d79}\x{a77d} 
   1448 
   1449 /\x{a77d}\x{1d79}/utf
   1450     \x{a77d}\x{1d79}
   1451 \= Expect no match 
   1452     \x{1d79}\x{a77d} 
   1453 
   1454 /(A)\1/i,utf
   1455     AA
   1456     Aa
   1457     aa
   1458     aA
   1459 
   1460 /(\x{10a})\1/i,utf
   1461     \x{10a}\x{10a}
   1462     \x{10a}\x{10b}
   1463     \x{10b}\x{10b}
   1464     \x{10b}\x{10a}
   1465     
   1466 # The next two tests are for property support in non-UTF mode
   1467 
   1468 /(?:\p{Lu}|\x20)+/
   1469     \x41\x20\x50\xC2\x54\xC9\x20\x54\x4F\x44\x41\x59
   1470 
   1471 /[\p{Lu}\x20]+/
   1472     \x41\x20\x50\xC2\x54\xC9\x20\x54\x4F\x44\x41\x59
   1473 
   1474 /\p{Avestan}\p{Bamum}\p{Egyptian_Hieroglyphs}\p{Imperial_Aramaic}\p{Inscriptional_Pahlavi}\p{Inscriptional_Parthian}\p{Javanese}\p{Kaithi}\p{Lisu}\p{Meetei_Mayek}\p{Old_South_Arabian}\p{Old_Turkic}\p{Samaritan}\p{Tai_Tham}\p{Tai_Viet}/utf
   1475     \x{10b00}\x{a6ef}\x{13007}\x{10857}\x{10b78}\x{10b58}\x{a980}\x{110c1}\x{a4ff}\x{abc0}\x{10a7d}\x{10c48}\x{0800}\x{1aad}\x{aac0}
   1476 
   1477 /^\w+/utf,ucp
   1478     Az_\x{aa}\x{c0}\x{1c5}\x{2b0}\x{3b6}\x{1d7c9}\x{2fa1d}1\x{660}\x{bef}\x{16ee}
   1479 
   1480 /^[[:xdigit:]]*/utf,ucp
   1481     1a\x{660}\x{bef}\x{16ee}
   1482   
   1483 /^\d+/utf,ucp
   1484     1\x{660}\x{bef}\x{16ee}
   1485   
   1486 /^[[:digit:]]+/utf,ucp
   1487     1\x{660}\x{bef}\x{16ee}
   1488 
   1489 /^>\s+/utf,ucp
   1490     >\x{20}\x{a0}\x{1680}\x{2028}\x{2029}\x{202f}\x{9}\x{b} 
   1491   
   1492 /^>\pZ+/utf,ucp
   1493     >\x{20}\x{a0}\x{1680}\x{2028}\x{2029}\x{202f}\x{9}\x{b} 
   1494   
   1495 /^>[[:space:]]*/utf,ucp
   1496     >\x{20}\x{a0}\x{1680}\x{2028}\x{2029}\x{202f}\x{9}\x{b} 
   1497 
   1498 /^>[[:blank:]]*/utf,ucp
   1499     >\x{20}\x{a0}\x{1680}\x{2000}\x{202f}\x{9}\x{b}\x{2028} 
   1500 
   1501 /^[[:alpha:]]*/utf,ucp
   1502     Az\x{aa}\x{c0}\x{1c5}\x{2b0}\x{3b6}\x{1d7c9}\x{2fa1d}
   1503 
   1504 /^[[:alnum:]]*/utf,ucp
   1505     Az\x{aa}\x{c0}\x{1c5}\x{2b0}\x{3b6}\x{1d7c9}\x{2fa1d}1\x{660}\x{bef}\x{16ee}
   1506 
   1507 /^[[:cntrl:]]*/utf,ucp
   1508     \x{0}\x{09}\x{1f}\x{7f}\x{9f} 
   1509 
   1510 /^[[:graph:]]*/utf,ucp
   1511     A\x{a1}\x{a0}
   1512 
   1513 /^[[:print:]]*/utf,ucp
   1514     A z\x{a0}\x{a1}
   1515 
   1516 /^[[:punct:]]*/utf,ucp
   1517     .+\x{a1}\x{a0}
   1518 
   1519 /\p{Zs}*?\R/
   1520 \= Expect no match
   1521     a\xFCb   
   1522 
   1523 /\p{Zs}*\R/
   1524 \= Expect no match 
   1525     a\xFCb   
   1526 
   1527 //i,utf
   1528     
   1529     x 
   1530      
   1531 
   1532 /[]/i,utf
   1533     
   1534     x 
   1535      
   1536 
   1537 //i,utf
   1538     
   1539     
   1540     
   1541 # These are tests for extended grapheme clusters  
   1542 
   1543 /^\X/utf,aftertext
   1544     G\x{34e}\x{34e}X
   1545     \x{34e}\x{34e}X
   1546     \x04X
   1547     \x{1100}X
   1548     \x{1100}\x{34e}X
   1549     \x{1b04}\x{1b04}X 
   1550     *These match up to the roman letters
   1551     \x{1111}\x{1111}L,L
   1552     \x{1111}\x{1111}\x{1169}L,L,V
   1553     \x{1111}\x{ae4c}L, LV
   1554     \x{1111}\x{ad89}L, LVT
   1555     \x{1111}\x{ae4c}\x{1169}L, LV, V
   1556     \x{1111}\x{ae4c}\x{1169}\x{1169}L, LV, V, V
   1557     \x{1111}\x{ae4c}\x{1169}\x{11fe}L, LV, V, T
   1558     \x{1111}\x{ad89}\x{11fe}L, LVT, T
   1559     \x{1111}\x{ad89}\x{11fe}\x{11fe}L, LVT, T, T
   1560     \x{ad89}\x{11fe}\x{11fe}LVT, T, T
   1561     *These match just the first codepoint (invalid sequence)
   1562     \x{1111}\x{11fe}L, T
   1563     \x{ae4c}\x{1111}LV, L
   1564     \x{ae4c}\x{ae4c}LV, LV
   1565     \x{ae4c}\x{ad89}LV, LVT
   1566     \x{1169}\x{1111}V, L
   1567     \x{1169}\x{ae4c}V, LV
   1568     \x{1169}\x{ad89}V, LVT
   1569     \x{ad89}\x{1111}LVT, L
   1570     \x{ad89}\x{1169}LVT, V
   1571     \x{ad89}\x{ae4c}LVT, LV
   1572     \x{ad89}\x{ad89}LVT, LVT
   1573     \x{11fe}\x{1111}T, L
   1574     \x{11fe}\x{1169}T, V
   1575     \x{11fe}\x{ae4c}T, LV
   1576     \x{11fe}\x{ad89}T, LVT
   1577     *Test extend and spacing mark
   1578     \x{1111}\x{ae4c}\x{0711}L, LV, extend
   1579     \x{1111}\x{ae4c}\x{1b04}L, LV, spacing mark
   1580     \x{1111}\x{ae4c}\x{1b04}\x{0711}\x{1b04}L, LV, spacing mark, extend, spacing mark
   1581     *Test CR, LF, and control
   1582     \x0d\x{0711}CR, extend
   1583     \x0d\x{1b04}CR, spacingmark
   1584     \x0a\x{0711}LF, extend
   1585     \x0a\x{1b04}LF, spacingmark
   1586     \x0b\x{0711}Control, extend
   1587     \x09\x{1b04}Control, spacingmark
   1588     *There are no Prepend characters, so we can't test Prepend, CR
   1589     
   1590 /^(?>\X{2})X/utf,aftertext
   1591     \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
   1592     
   1593 /^\X{2,4}X/utf,aftertext
   1594     \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
   1595     \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
   1596     \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
   1597 
   1598 /^\X{2,4}?X/utf,aftertext
   1599     \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
   1600     \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
   1601     \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
   1602 
   1603 /\X*Z/utf,no_start_optimize
   1604 \= Expect no match
   1605     A\x{300}
   1606 
   1607 /\X*(.)/utf,no_start_optimize
   1608     A\x{1111}\x{ae4c}\x{1169}
   1609 
   1610 # --------------------------------------------
   1611 
   1612 /\x{1e9e}+/i,utf
   1613     \x{1e9e}\x{00df}
   1614 
   1615 /[z\x{1e9e}]+/i,utf
   1616     \x{1e9e}\x{00df}
   1617 
   1618 /\x{00df}+/i,utf
   1619     \x{1e9e}\x{00df}
   1620 
   1621 /[z\x{00df}]+/i,utf
   1622     \x{1e9e}\x{00df}
   1623 
   1624 /\x{1f88}+/i,utf
   1625     \x{1f88}\x{1f80} 
   1626 
   1627 /[z\x{1f88}]+/i,utf
   1628     \x{1f88}\x{1f80} 
   1629     
   1630 # Characters with more than one other case; test in classes 
   1631 
   1632 /[z\x{00b5}]+/i,utf
   1633     \x{00b5}\x{039c}\x{03bc}
   1634 
   1635 /[z\x{039c}]+/i,utf
   1636     \x{00b5}\x{039c}\x{03bc}
   1637 
   1638 /[z\x{03bc}]+/i,utf
   1639     \x{00b5}\x{039c}\x{03bc}
   1640 
   1641 /[z\x{00c5}]+/i,utf
   1642     \x{00c5}\x{00e5}\x{212b}
   1643 
   1644 /[z\x{00e5}]+/i,utf
   1645     \x{00c5}\x{00e5}\x{212b}
   1646 
   1647 /[z\x{212b}]+/i,utf
   1648     \x{00c5}\x{00e5}\x{212b}
   1649 
   1650 /[z\x{01c4}]+/i,utf
   1651     \x{01c4}\x{01c5}\x{01c6}
   1652 
   1653 /[z\x{01c5}]+/i,utf
   1654     \x{01c4}\x{01c5}\x{01c6}
   1655 
   1656 /[z\x{01c6}]+/i,utf
   1657     \x{01c4}\x{01c5}\x{01c6}
   1658 
   1659 /[z\x{01c7}]+/i,utf
   1660     \x{01c7}\x{01c8}\x{01c9}
   1661 
   1662 /[z\x{01c8}]+/i,utf
   1663     \x{01c7}\x{01c8}\x{01c9}
   1664 
   1665 /[z\x{01c9}]+/i,utf
   1666     \x{01c7}\x{01c8}\x{01c9}
   1667 
   1668 /[z\x{01ca}]+/i,utf
   1669     \x{01ca}\x{01cb}\x{01cc}
   1670 
   1671 /[z\x{01cb}]+/i,utf
   1672     \x{01ca}\x{01cb}\x{01cc}
   1673 
   1674 /[z\x{01cc}]+/i,utf
   1675     \x{01ca}\x{01cb}\x{01cc}
   1676 
   1677 /[z\x{01f1}]+/i,utf
   1678     \x{01f1}\x{01f2}\x{01f3}
   1679 
   1680 /[z\x{01f2}]+/i,utf
   1681     \x{01f1}\x{01f2}\x{01f3}
   1682 
   1683 /[z\x{01f3}]+/i,utf
   1684     \x{01f1}\x{01f2}\x{01f3}
   1685 
   1686 /[z\x{0345}]+/i,utf
   1687     \x{0345}\x{0399}\x{03b9}\x{1fbe}
   1688 
   1689 /[z\x{0399}]+/i,utf
   1690     \x{0345}\x{0399}\x{03b9}\x{1fbe}
   1691 
   1692 /[z\x{03b9}]+/i,utf
   1693     \x{0345}\x{0399}\x{03b9}\x{1fbe}
   1694 
   1695 /[z\x{1fbe}]+/i,utf
   1696     \x{0345}\x{0399}\x{03b9}\x{1fbe}
   1697 
   1698 /[z\x{0392}]+/i,utf
   1699     \x{0392}\x{03b2}\x{03d0}
   1700 
   1701 /[z\x{03b2}]+/i,utf
   1702     \x{0392}\x{03b2}\x{03d0}
   1703 
   1704 /[z\x{03d0}]+/i,utf
   1705     \x{0392}\x{03b2}\x{03d0}
   1706 
   1707 /[z\x{0395}]+/i,utf
   1708     \x{0395}\x{03b5}\x{03f5}
   1709 
   1710 /[z\x{03b5}]+/i,utf
   1711     \x{0395}\x{03b5}\x{03f5}
   1712 
   1713 /[z\x{03f5}]+/i,utf
   1714     \x{0395}\x{03b5}\x{03f5}
   1715 
   1716 /[z\x{0398}]+/i,utf
   1717     \x{0398}\x{03b8}\x{03d1}\x{03f4}
   1718 
   1719 /[z\x{03b8}]+/i,utf
   1720     \x{0398}\x{03b8}\x{03d1}\x{03f4}
   1721 
   1722 /[z\x{03d1}]+/i,utf
   1723     \x{0398}\x{03b8}\x{03d1}\x{03f4}
   1724 
   1725 /[z\x{03f4}]+/i,utf
   1726     \x{0398}\x{03b8}\x{03d1}\x{03f4}
   1727 
   1728 /[z\x{039a}]+/i,utf
   1729     \x{039a}\x{03ba}\x{03f0}
   1730 
   1731 /[z\x{03ba}]+/i,utf
   1732     \x{039a}\x{03ba}\x{03f0}
   1733 
   1734 /[z\x{03f0}]+/i,utf
   1735     \x{039a}\x{03ba}\x{03f0}
   1736 
   1737 /[z\x{03a0}]+/i,utf
   1738     \x{03a0}\x{03c0}\x{03d6} 
   1739 
   1740 /[z\x{03c0}]+/i,utf
   1741     \x{03a0}\x{03c0}\x{03d6} 
   1742 
   1743 /[z\x{03d6}]+/i,utf
   1744     \x{03a0}\x{03c0}\x{03d6} 
   1745 
   1746 /[z\x{03a1}]+/i,utf
   1747     \x{03a1}\x{03c1}\x{03f1}
   1748 
   1749 /[z\x{03c1}]+/i,utf
   1750     \x{03a1}\x{03c1}\x{03f1}
   1751 
   1752 /[z\x{03f1}]+/i,utf
   1753     \x{03a1}\x{03c1}\x{03f1}
   1754 
   1755 /[z\x{03a3}]+/i,utf
   1756     \x{03A3}\x{03C2}\x{03C3}
   1757 
   1758 /[z\x{03c2}]+/i,utf
   1759     \x{03A3}\x{03C2}\x{03C3}
   1760 
   1761 /[z\x{03c3}]+/i,utf
   1762     \x{03A3}\x{03C2}\x{03C3}
   1763 
   1764 /[z\x{03a6}]+/i,utf
   1765     \x{03a6}\x{03c6}\x{03d5} 
   1766 
   1767 /[z\x{03c6}]+/i,utf
   1768     \x{03a6}\x{03c6}\x{03d5} 
   1769 
   1770 /[z\x{03d5}]+/i,utf
   1771     \x{03a6}\x{03c6}\x{03d5} 
   1772 
   1773 /[z\x{03c9}]+/i,utf
   1774     \x{03c9}\x{03a9}\x{2126}
   1775 
   1776 /[z\x{03a9}]+/i,utf
   1777     \x{03c9}\x{03a9}\x{2126}
   1778 
   1779 /[z\x{2126}]+/i,utf
   1780     \x{03c9}\x{03a9}\x{2126}
   1781 
   1782 /[z\x{1e60}]+/i,utf
   1783     \x{1e60}\x{1e61}\x{1e9b}
   1784 
   1785 /[z\x{1e61}]+/i,utf
   1786     \x{1e60}\x{1e61}\x{1e9b}
   1787 
   1788 /[z\x{1e9b}]+/i,utf
   1789     \x{1e60}\x{1e61}\x{1e9b}
   1790 
   1791 # Perl 5.12.4 gets these wrong, but 5.15.3 is OK 
   1792 
   1793 /[z\x{004b}]+/i,utf
   1794     \x{004b}\x{006b}\x{212a}
   1795 
   1796 /[z\x{006b}]+/i,utf
   1797     \x{004b}\x{006b}\x{212a}
   1798 
   1799 /[z\x{212a}]+/i,utf
   1800     \x{004b}\x{006b}\x{212a}
   1801 
   1802 /[z\x{0053}]+/i,utf
   1803     \x{0053}\x{0073}\x{017f}
   1804 
   1805 /[z\x{0073}]+/i,utf
   1806     \x{0053}\x{0073}\x{017f}
   1807 
   1808 /[z\x{017f}]+/i,utf
   1809     \x{0053}\x{0073}\x{017f}
   1810     
   1811 # --------------------------------------  
   1812 
   1813 /() \1/i,utf
   1814      
   1815      
   1816      
   1817      
   1818        
   1819 
   1820 /() \1/i,utf
   1821      
   1822      
   1823      
   1824      
   1825        
   1826 
   1827 /() \1*/i,utf
   1828     \x20
   1829      
   1830 
   1831 # Perl matches these 
   1832 
   1833 /\x{00b5}+/i,utf
   1834     \x{00b5}\x{039c}\x{03bc}
   1835 
   1836 /\x{039c}+/i,utf
   1837     \x{00b5}\x{039c}\x{03bc}
   1838 
   1839 /\x{03bc}+/i,utf
   1840     \x{00b5}\x{039c}\x{03bc}
   1841 
   1842 
   1843 /\x{00c5}+/i,utf
   1844     \x{00c5}\x{00e5}\x{212b}
   1845 
   1846 /\x{00e5}+/i,utf
   1847     \x{00c5}\x{00e5}\x{212b}
   1848 
   1849 /\x{212b}+/i,utf
   1850     \x{00c5}\x{00e5}\x{212b}
   1851 
   1852 
   1853 /\x{01c4}+/i,utf
   1854     \x{01c4}\x{01c5}\x{01c6}
   1855 
   1856 /\x{01c5}+/i,utf
   1857     \x{01c4}\x{01c5}\x{01c6}
   1858 
   1859 /\x{01c6}+/i,utf
   1860     \x{01c4}\x{01c5}\x{01c6}
   1861 
   1862 
   1863 /\x{01c7}+/i,utf
   1864     \x{01c7}\x{01c8}\x{01c9}
   1865 
   1866 /\x{01c8}+/i,utf
   1867     \x{01c7}\x{01c8}\x{01c9}
   1868 
   1869 /\x{01c9}+/i,utf
   1870     \x{01c7}\x{01c8}\x{01c9}
   1871 
   1872 
   1873 /\x{01ca}+/i,utf
   1874     \x{01ca}\x{01cb}\x{01cc}
   1875 
   1876 /\x{01cb}+/i,utf
   1877     \x{01ca}\x{01cb}\x{01cc}
   1878 
   1879 /\x{01cc}+/i,utf
   1880     \x{01ca}\x{01cb}\x{01cc}
   1881 
   1882 
   1883 /\x{01f1}+/i,utf
   1884     \x{01f1}\x{01f2}\x{01f3}
   1885 
   1886 /\x{01f2}+/i,utf
   1887     \x{01f1}\x{01f2}\x{01f3}
   1888 
   1889 /\x{01f3}+/i,utf
   1890     \x{01f1}\x{01f2}\x{01f3}
   1891 
   1892 
   1893 /\x{0345}+/i,utf
   1894     \x{0345}\x{0399}\x{03b9}\x{1fbe}
   1895 
   1896 /\x{0399}+/i,utf
   1897     \x{0345}\x{0399}\x{03b9}\x{1fbe}
   1898 
   1899 /\x{03b9}+/i,utf
   1900     \x{0345}\x{0399}\x{03b9}\x{1fbe}
   1901 
   1902 /\x{1fbe}+/i,utf
   1903     \x{0345}\x{0399}\x{03b9}\x{1fbe}
   1904 
   1905 
   1906 /\x{0392}+/i,utf
   1907     \x{0392}\x{03b2}\x{03d0}
   1908 
   1909 /\x{03b2}+/i,utf
   1910     \x{0392}\x{03b2}\x{03d0}
   1911 
   1912 /\x{03d0}+/i,utf
   1913     \x{0392}\x{03b2}\x{03d0}
   1914     
   1915 
   1916 /\x{0395}+/i,utf
   1917     \x{0395}\x{03b5}\x{03f5}
   1918 
   1919 /\x{03b5}+/i,utf
   1920     \x{0395}\x{03b5}\x{03f5}
   1921 
   1922 /\x{03f5}+/i,utf
   1923     \x{0395}\x{03b5}\x{03f5}
   1924 
   1925 
   1926 /\x{0398}+/i,utf
   1927     \x{0398}\x{03b8}\x{03d1}\x{03f4}
   1928 
   1929 /\x{03b8}+/i,utf
   1930     \x{0398}\x{03b8}\x{03d1}\x{03f4}
   1931 
   1932 /\x{03d1}+/i,utf
   1933     \x{0398}\x{03b8}\x{03d1}\x{03f4}
   1934 
   1935 /\x{03f4}+/i,utf
   1936     \x{0398}\x{03b8}\x{03d1}\x{03f4}
   1937     
   1938 
   1939 /\x{039a}+/i,utf
   1940     \x{039a}\x{03ba}\x{03f0}
   1941 
   1942 /\x{03ba}+/i,utf
   1943     \x{039a}\x{03ba}\x{03f0}
   1944 
   1945 /\x{03f0}+/i,utf
   1946     \x{039a}\x{03ba}\x{03f0}
   1947     
   1948 
   1949 /\x{03a0}+/i,utf
   1950     \x{03a0}\x{03c0}\x{03d6} 
   1951 
   1952 /\x{03c0}+/i,utf
   1953     \x{03a0}\x{03c0}\x{03d6} 
   1954 
   1955 /\x{03d6}+/i,utf
   1956     \x{03a0}\x{03c0}\x{03d6} 
   1957 
   1958 
   1959 /\x{03a1}+/i,utf
   1960     \x{03a1}\x{03c1}\x{03f1}
   1961 
   1962 /\x{03c1}+/i,utf
   1963     \x{03a1}\x{03c1}\x{03f1}
   1964 
   1965 /\x{03f1}+/i,utf
   1966     \x{03a1}\x{03c1}\x{03f1}
   1967 
   1968 
   1969 /\x{03a3}+/i,utf
   1970     \x{03A3}\x{03C2}\x{03C3}
   1971 
   1972 /\x{03c2}+/i,utf
   1973     \x{03A3}\x{03C2}\x{03C3}
   1974 
   1975 /\x{03c3}+/i,utf
   1976     \x{03A3}\x{03C2}\x{03C3}
   1977     
   1978 
   1979 /\x{03a6}+/i,utf
   1980     \x{03a6}\x{03c6}\x{03d5} 
   1981 
   1982 /\x{03c6}+/i,utf
   1983     \x{03a6}\x{03c6}\x{03d5} 
   1984 
   1985 /\x{03d5}+/i,utf
   1986     \x{03a6}\x{03c6}\x{03d5} 
   1987 
   1988 
   1989 /\x{03c9}+/i,utf
   1990     \x{03c9}\x{03a9}\x{2126}
   1991 
   1992 /\x{03a9}+/i,utf
   1993     \x{03c9}\x{03a9}\x{2126}
   1994 
   1995 /\x{2126}+/i,utf
   1996     \x{03c9}\x{03a9}\x{2126}
   1997     
   1998 
   1999 /\x{1e60}+/i,utf
   2000     \x{1e60}\x{1e61}\x{1e9b}
   2001 
   2002 /\x{1e61}+/i,utf
   2003     \x{1e60}\x{1e61}\x{1e9b}
   2004 
   2005 /\x{1e9b}+/i,utf
   2006     \x{1e60}\x{1e61}\x{1e9b}
   2007     
   2008 
   2009 /\x{1e9e}+/i,utf
   2010     \x{1e9e}\x{00df}
   2011 
   2012 /\x{00df}+/i,utf
   2013     \x{1e9e}\x{00df}
   2014     
   2015 
   2016 /\x{1f88}+/i,utf
   2017     \x{1f88}\x{1f80} 
   2018 
   2019 /\x{1f80}+/i,utf
   2020     \x{1f88}\x{1f80} 
   2021 
   2022 # Perl 5.12.4 gets these wrong, but 5.15.3 is OK 
   2023 
   2024 /\x{004b}+/i,utf
   2025     \x{004b}\x{006b}\x{212a}
   2026 
   2027 /\x{006b}+/i,utf
   2028     \x{004b}\x{006b}\x{212a}
   2029 
   2030 /\x{212a}+/i,utf
   2031     \x{004b}\x{006b}\x{212a}
   2032 
   2033 
   2034 /\x{0053}+/i,utf
   2035     \x{0053}\x{0073}\x{017f}
   2036 
   2037 /\x{0073}+/i,utf
   2038     \x{0053}\x{0073}\x{017f}
   2039 
   2040 /\x{017f}+/i,utf
   2041     \x{0053}\x{0073}\x{017f}
   2042 
   2043 /^\p{Any}*\d{4}/utf
   2044     1234
   2045 \= Expect no match
   2046     123 
   2047 
   2048 /^\X*\w{4}/utf
   2049     1234
   2050 \= Expect no match
   2051     123  
   2052 
   2053 /^A\s+Z/utf,ucp
   2054     A\x{2005}Z
   2055     A\x{85}\x{2005}Z
   2056 
   2057 /^A[\s]+Z/utf,ucp
   2058     A\x{2005}Z
   2059     A\x{85}\x{2005}Z
   2060 
   2061 /^[[:graph:]]+$/utf,ucp
   2062     Letter:ABC
   2063     Mark:\x{300}\x{1d172}\x{1d17b}
   2064     Number:9\x{660}
   2065     Punctuation:\x{66a},;
   2066     Symbol:\x{6de}<>\x{fffc}
   2067     Cf-property:\x{ad}\x{600}\x{601}\x{602}\x{603}\x{604}\x{6dd}\x{70f}
   2068     \x{200b}\x{200c}\x{200d}\x{200e}\x{200f}
   2069     \x{202a}\x{202b}\x{202c}\x{202d}\x{202e}
   2070     \x{2060}\x{2061}\x{2062}\x{2063}\x{2064}
   2071     \x{206a}\x{206b}\x{206c}\x{206d}\x{206e}\x{206f}
   2072     \x{feff}
   2073     \x{fff9}\x{fffa}\x{fffb}
   2074     \x{110bd}
   2075     \x{1d173}\x{1d174}\x{1d175}\x{1d176}\x{1d177}\x{1d178}\x{1d179}\x{1d17a}
   2076     \x{e0001}
   2077     \x{e0020}\x{e0030}\x{e0040}\x{e0050}\x{e0060}\x{e0070}\x{e007f}
   2078 \= Expect no match
   2079     \x{09}
   2080     \x{0a}
   2081     \x{1D}
   2082     \x{20}
   2083     \x{85}
   2084     \x{a0}
   2085     \x{1680}
   2086     \x{2028}
   2087     \x{2029}
   2088     \x{202f}
   2089     \x{2065}
   2090     \x{3000}
   2091     \x{e0002}
   2092     \x{e001f}
   2093     \x{e0080} 
   2094 
   2095 /^[[:print:]]+$/utf,ucp
   2096     Space: \x{a0}
   2097     \x{1680}\x{2000}\x{2001}\x{2002}\x{2003}\x{2004}\x{2005}
   2098     \x{2006}\x{2007}\x{2008}\x{2009}\x{200a} 
   2099     \x{202f}\x{205f} 
   2100     \x{3000}
   2101     Letter:ABC
   2102     Mark:\x{300}\x{1d172}\x{1d17b}
   2103     Number:9\x{660}
   2104     Punctuation:\x{66a},;
   2105     Symbol:\x{6de}<>\x{fffc}
   2106     Cf-property:\x{ad}\x{600}\x{601}\x{602}\x{603}\x{604}\x{6dd}\x{70f}
   2107     \x{200b}\x{200c}\x{200d}\x{200e}\x{200f}
   2108     \x{202a}\x{202b}\x{202c}\x{202d}\x{202e}
   2109     \x{202f}
   2110     \x{2060}\x{2061}\x{2062}\x{2063}\x{2064}
   2111     \x{206a}\x{206b}\x{206c}\x{206d}\x{206e}\x{206f}
   2112     \x{feff}
   2113     \x{fff9}\x{fffa}\x{fffb}
   2114     \x{110bd}
   2115     \x{1d173}\x{1d174}\x{1d175}\x{1d176}\x{1d177}\x{1d178}\x{1d179}\x{1d17a}
   2116     \x{e0001}
   2117     \x{e0020}\x{e0030}\x{e0040}\x{e0050}\x{e0060}\x{e0070}\x{e007f}
   2118 \= Expect no match
   2119     \x{09}
   2120     \x{1D}
   2121     \x{85}
   2122     \x{2028}
   2123     \x{2029}
   2124     \x{2065}
   2125     \x{e0002}
   2126     \x{e001f}
   2127     \x{e0080} 
   2128 
   2129 /^[[:punct:]]+$/utf,ucp
   2130     \$+<=>^`|~
   2131     !\"#%&'()*,-./:;?@[\\]_{}
   2132     \x{a1}\x{a7}  
   2133     \x{37e} 
   2134 \= Expect no match
   2135     abcde  
   2136 
   2137 /^[[:^graph:]]+$/utf,ucp
   2138     \x{09}\x{0a}\x{1D}\x{20}\x{85}\x{a0}\x{1680}
   2139     \x{2028}\x{2029}\x{202f}\x{2065}
   2140     \x{3000}\x{e0002}\x{e001f}\x{e0080}
   2141 \= Expect no match
   2142     Letter:ABC
   2143     Mark:\x{300}\x{1d172}\x{1d17b}
   2144     Number:9\x{660}
   2145     Punctuation:\x{66a},;
   2146     Symbol:\x{6de}<>\x{fffc}
   2147     Cf-property:\x{ad}\x{600}\x{601}\x{602}\x{603}\x{604}\x{6dd}\x{70f}
   2148     \x{200b}\x{200c}\x{200d}\x{200e}\x{200f}
   2149     \x{202a}\x{202b}\x{202c}\x{202d}\x{202e}
   2150     \x{2060}\x{2061}\x{2062}\x{2063}\x{2064}
   2151     \x{206a}\x{206b}\x{206c}\x{206d}\x{206e}\x{206f}
   2152     \x{feff}
   2153     \x{fff9}\x{fffa}\x{fffb}
   2154     \x{110bd}
   2155     \x{1d173}\x{1d174}\x{1d175}\x{1d176}\x{1d177}\x{1d178}\x{1d179}\x{1d17a}
   2156     \x{e0001}
   2157     \x{e0020}\x{e0030}\x{e0040}\x{e0050}\x{e0060}\x{e0070}\x{e007f}
   2158 
   2159 /^[[:^print:]]+$/utf,ucp
   2160     \x{09}\x{1D}\x{85}\x{2028}\x{2029}\x{2065}
   2161     \x{e0002}\x{e001f}\x{e0080}
   2162 \= Expect no match
   2163     Space: \x{a0}
   2164     \x{1680}\x{2000}\x{2001}\x{2002}\x{2003}\x{2004}\x{2005}
   2165     \x{2006}\x{2007}\x{2008}\x{2009}\x{200a} 
   2166     \x{202f}\x{205f} 
   2167     \x{3000}
   2168     Letter:ABC
   2169     Mark:\x{300}\x{1d172}\x{1d17b}
   2170     Number:9\x{660}
   2171     Punctuation:\x{66a},;
   2172     Symbol:\x{6de}<>\x{fffc}
   2173     Cf-property:\x{ad}\x{600}\x{601}\x{602}\x{603}\x{604}\x{6dd}\x{70f}
   2174     \x{200b}\x{200c}\x{200d}\x{200e}\x{200f}
   2175     \x{202a}\x{202b}\x{202c}\x{202d}\x{202e}
   2176     \x{202f}
   2177     \x{2060}\x{2061}\x{2062}\x{2063}\x{2064}
   2178     \x{206a}\x{206b}\x{206c}\x{206d}\x{206e}\x{206f}
   2179     \x{feff}
   2180     \x{fff9}\x{fffa}\x{fffb}
   2181     \x{110bd}
   2182     \x{1d173}\x{1d174}\x{1d175}\x{1d176}\x{1d177}\x{1d178}\x{1d179}\x{1d17a}
   2183     \x{e0001}
   2184     \x{e0020}\x{e0030}\x{e0040}\x{e0050}\x{e0060}\x{e0070}\x{e007f}
   2185 
   2186 /^[[:^punct:]]+$/utf,ucp
   2187     abcde  
   2188 \= Expect no match
   2189     \$+<=>^`|~
   2190     !\"#%&'()*,-./:;?@[\\]_{}
   2191     \x{a1}\x{a7}  
   2192     \x{37e} 
   2193 
   2194 /[RST]+/i,utf,ucp
   2195     Ss\x{17f}
   2196     
   2197 /[R-T]+/i,utf,ucp
   2198     Ss\x{17f}
   2199 
   2200 /[q-u]+/i,utf,ucp
   2201     Ss\x{17f}
   2202 
   2203 /^s?c/im,utf
   2204     scat
   2205     
   2206 # The next four tests are for repeated caseless back references when the 
   2207 # code unit length of the matched text is different to that of the original
   2208 # group in the UTF-8 case.
   2209 
   2210 /^(\x{23a})\1*(.)/i,utf
   2211     \x{23a}\x{23a}\x{23a}\x{23a}
   2212     \x{23a}\x{2c65}\x{2c65}\x{2c65}
   2213     \x{23a}\x{23a}\x{2c65}\x{23a}
   2214 
   2215 /^(\x{23a})\1*(..)/i,utf
   2216     \x{23a}\x{2c65}\x{2c65}\x{2c65}
   2217     \x{23a}\x{23a}\x{2c65}\x{23a}
   2218 
   2219 /^(\x{23a})\1*(...)/i,utf
   2220     \x{23a}\x{2c65}\x{2c65}\x{2c65}
   2221     \x{23a}\x{23a}\x{2c65}\x{23a}
   2222 
   2223 /^(\x{23a})\1*(....)/i,utf
   2224 \= Expect no match
   2225     \x{23a}\x{2c65}\x{2c65}\x{2c65}
   2226     \x{23a}\x{23a}\x{2c65}\x{23a}
   2227 
   2228 /[A-`]/i,utf
   2229     abcdefghijklmno
   2230 
   2231 "[\S\V\H]"utf
   2232 
   2233 /[^\p{Any}]*+x/utf
   2234     x
   2235 
   2236 /[[:punct:]]/utf,ucp
   2237     \x{b4} 
   2238 
   2239 /[[:^ascii:]]/utf,ucp
   2240     \x{100}
   2241     \x{200}
   2242     \x{300}
   2243     \x{37e}
   2244 \= Expect no match     
   2245     aa
   2246     99
   2247     
   2248 /[[:^ascii:]\w]/utf,ucp
   2249     aa
   2250     99
   2251     gg
   2252     \x{100}
   2253     \x{200}
   2254     \x{300}
   2255     \x{37e}
   2256 
   2257 /[\w[:^ascii:]]/utf,ucp
   2258     aa
   2259     99
   2260     gg
   2261     \x{100}
   2262     \x{200}
   2263     \x{300}
   2264     \x{37e}
   2265 
   2266 /[^[:ascii:]\W]/utf,ucp
   2267     \x{100}
   2268     \x{200}
   2269 \= Expect no match     
   2270     aa
   2271     99
   2272     gg
   2273     \x{37e}
   2274 
   2275 /[^[:^ascii:]\d]/utf,ucp
   2276     a
   2277     ~
   2278     \a
   2279     \x{7f}
   2280 \= Expect no match
   2281     0
   2282     \x{389}
   2283     \x{20ac}
   2284 
   2285 # End of testinput4
   2286