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  0: acb
     12     a\x7fb
     13  0: a\x{7f}b
     14     a\x{100}b
     15  0: a\x{100}b
     16 \= Expect no match
     17     a\nb
     18 No match
     19 
     20 /a(.{3})b/utf
     21     a\x{4000}xyb
     22  0: a\x{4000}xyb
     23  1: \x{4000}xy
     24     a\x{4000}\x7fyb
     25  0: a\x{4000}\x{7f}yb
     26  1: \x{4000}\x{7f}y
     27     a\x{4000}\x{100}yb
     28  0: a\x{4000}\x{100}yb
     29  1: \x{4000}\x{100}y
     30 \= Expect no match
     31     a\x{4000}b
     32 No match
     33     ac\ncb
     34 No match
     35 
     36 /a(.*?)(.)/
     37     a\xc0\x88b
     38  0: a\xc0
     39  1: 
     40  2: \xc0
     41 
     42 /a(.*?)(.)/utf
     43     a\x{100}b
     44  0: a\x{100}
     45  1: 
     46  2: \x{100}
     47 
     48 /a(.*)(.)/
     49     a\xc0\x88b
     50  0: a\xc0\x88b
     51  1: \xc0\x88
     52  2: b
     53 
     54 /a(.*)(.)/utf
     55     a\x{100}b
     56  0: a\x{100}b
     57  1: \x{100}
     58  2: b
     59 
     60 /a(.)(.)/
     61     a\xc0\x92bcd
     62  0: a\xc0\x92
     63  1: \xc0
     64  2: \x92
     65 
     66 /a(.)(.)/utf
     67     a\x{240}bcd
     68  0: a\x{240}b
     69  1: \x{240}
     70  2: b
     71 
     72 /a(.?)(.)/
     73     a\xc0\x92bcd
     74  0: a\xc0\x92
     75  1: \xc0
     76  2: \x92
     77 
     78 /a(.?)(.)/utf
     79     a\x{240}bcd
     80  0: a\x{240}b
     81  1: \x{240}
     82  2: b
     83 
     84 /a(.??)(.)/
     85     a\xc0\x92bcd
     86  0: a\xc0
     87  1: 
     88  2: \xc0
     89 
     90 /a(.??)(.)/utf
     91     a\x{240}bcd
     92  0: a\x{240}
     93  1: 
     94  2: \x{240}
     95 
     96 /a(.{3})b/utf
     97     a\x{1234}xyb
     98  0: a\x{1234}xyb
     99  1: \x{1234}xy
    100     a\x{1234}\x{4321}yb
    101  0: a\x{1234}\x{4321}yb
    102  1: \x{1234}\x{4321}y
    103     a\x{1234}\x{4321}\x{3412}b
    104  0: a\x{1234}\x{4321}\x{3412}b
    105  1: \x{1234}\x{4321}\x{3412}
    106 \= Expect no match
    107     a\x{1234}b
    108 No match
    109     ac\ncb
    110 No match
    111 
    112 /a(.{3,})b/utf
    113     a\x{1234}xyb
    114  0: a\x{1234}xyb
    115  1: \x{1234}xy
    116     a\x{1234}\x{4321}yb
    117  0: a\x{1234}\x{4321}yb
    118  1: \x{1234}\x{4321}y
    119     a\x{1234}\x{4321}\x{3412}b
    120  0: a\x{1234}\x{4321}\x{3412}b
    121  1: \x{1234}\x{4321}\x{3412}
    122     axxxxbcdefghijb
    123  0: axxxxbcdefghijb
    124  1: xxxxbcdefghij
    125     a\x{1234}\x{4321}\x{3412}\x{3421}b
    126  0: a\x{1234}\x{4321}\x{3412}\x{3421}b
    127  1: \x{1234}\x{4321}\x{3412}\x{3421}
    128 \= Expect no match
    129     a\x{1234}b
    130 No match
    131 
    132 /a(.{3,}?)b/utf
    133     a\x{1234}xyb
    134  0: a\x{1234}xyb
    135  1: \x{1234}xy
    136     a\x{1234}\x{4321}yb
    137  0: a\x{1234}\x{4321}yb
    138  1: \x{1234}\x{4321}y
    139     a\x{1234}\x{4321}\x{3412}b
    140  0: a\x{1234}\x{4321}\x{3412}b
    141  1: \x{1234}\x{4321}\x{3412}
    142     axxxxbcdefghijb
    143  0: axxxxb
    144  1: xxxx
    145     a\x{1234}\x{4321}\x{3412}\x{3421}b
    146  0: a\x{1234}\x{4321}\x{3412}\x{3421}b
    147  1: \x{1234}\x{4321}\x{3412}\x{3421}
    148 \= Expect no match
    149     a\x{1234}b
    150 No match
    151 
    152 /a(.{3,5})b/utf
    153     a\x{1234}xyb
    154  0: a\x{1234}xyb
    155  1: \x{1234}xy
    156     a\x{1234}\x{4321}yb
    157  0: a\x{1234}\x{4321}yb
    158  1: \x{1234}\x{4321}y
    159     a\x{1234}\x{4321}\x{3412}b
    160  0: a\x{1234}\x{4321}\x{3412}b
    161  1: \x{1234}\x{4321}\x{3412}
    162     axxxxbcdefghijb
    163  0: axxxxb
    164  1: xxxx
    165     a\x{1234}\x{4321}\x{3412}\x{3421}b
    166  0: a\x{1234}\x{4321}\x{3412}\x{3421}b
    167  1: \x{1234}\x{4321}\x{3412}\x{3421}
    168     axbxxbcdefghijb
    169  0: axbxxb
    170  1: xbxx
    171     axxxxxbcdefghijb
    172  0: axxxxxb
    173  1: xxxxx
    174 \= Expect no match
    175     a\x{1234}b
    176 No match
    177     axxxxxxbcdefghijb
    178 No match
    179 
    180 /a(.{3,5}?)b/utf
    181     a\x{1234}xyb
    182  0: a\x{1234}xyb
    183  1: \x{1234}xy
    184     a\x{1234}\x{4321}yb
    185  0: a\x{1234}\x{4321}yb
    186  1: \x{1234}\x{4321}y
    187     a\x{1234}\x{4321}\x{3412}b
    188  0: a\x{1234}\x{4321}\x{3412}b
    189  1: \x{1234}\x{4321}\x{3412}
    190     axxxxbcdefghijb
    191  0: axxxxb
    192  1: xxxx
    193     a\x{1234}\x{4321}\x{3412}\x{3421}b
    194  0: a\x{1234}\x{4321}\x{3412}\x{3421}b
    195  1: \x{1234}\x{4321}\x{3412}\x{3421}
    196     axbxxbcdefghijb
    197  0: axbxxb
    198  1: xbxx
    199     axxxxxbcdefghijb
    200  0: axxxxxb
    201  1: xxxxx
    202 \= Expect no match
    203     a\x{1234}b
    204 No match
    205     axxxxxxbcdefghijb
    206 No match
    207 
    208 /^[a\x{c0}]/utf
    209 \= Expect no match
    210     \x{100}
    211 No match
    212 
    213 /(?<=aXb)cd/utf
    214     aXbcd
    215  0: cd
    216 
    217 /(?<=a\x{100}b)cd/utf
    218     a\x{100}bcd
    219  0: cd
    220 
    221 /(?<=a\x{100000}b)cd/utf
    222     a\x{100000}bcd
    223  0: cd
    224 
    225 /(?:\x{100}){3}b/utf
    226     \x{100}\x{100}\x{100}b
    227  0: \x{100}\x{100}\x{100}b
    228 \= Expect no match
    229     \x{100}\x{100}b
    230 No match
    231 
    232 /\x{ab}/utf
    233     \x{ab}
    234  0: \x{ab}
    235     \xc2\xab
    236  0: \x{ab}
    237 \= Expect no match
    238     \x00{ab}
    239 No match
    240 
    241 /(?<=(.))X/utf
    242     WXYZ
    243  0: X
    244  1: W
    245     \x{256}XYZ
    246  0: X
    247  1: \x{256}
    248 \= Expect no match
    249     XYZ
    250 No match
    251 
    252 /[^a]+/g,utf
    253     bcd
    254  0: bcd
    255     \x{100}aY\x{256}Z
    256  0: \x{100}
    257  0: Y\x{256}Z
    258 
    259 /^[^a]{2}/utf
    260     \x{100}bc
    261  0: \x{100}b
    262 
    263 /^[^a]{2,}/utf
    264     \x{100}bcAa
    265  0: \x{100}bcA
    266 
    267 /^[^a]{2,}?/utf
    268     \x{100}bca
    269  0: \x{100}b
    270 
    271 /[^a]+/gi,utf
    272     bcd
    273  0: bcd
    274     \x{100}aY\x{256}Z
    275  0: \x{100}
    276  0: Y\x{256}Z
    277 
    278 /^[^a]{2}/i,utf
    279     \x{100}bc
    280  0: \x{100}b
    281 
    282 /^[^a]{2,}/i,utf
    283     \x{100}bcAa
    284  0: \x{100}bc
    285 
    286 /^[^a]{2,}?/i,utf
    287     \x{100}bca
    288  0: \x{100}b
    289 
    290 /\x{100}{0,0}/utf
    291     abcd
    292  0: 
    293 
    294 /\x{100}?/utf
    295     abcd
    296  0: 
    297     \x{100}\x{100}
    298  0: \x{100}
    299 
    300 /\x{100}{0,3}/utf
    301     \x{100}\x{100}
    302  0: \x{100}\x{100}
    303     \x{100}\x{100}\x{100}\x{100}
    304  0: \x{100}\x{100}\x{100}
    305 
    306 /\x{100}*/utf
    307     abce
    308  0: 
    309     \x{100}\x{100}\x{100}\x{100}
    310  0: \x{100}\x{100}\x{100}\x{100}
    311 
    312 /\x{100}{1,1}/utf
    313     abcd\x{100}\x{100}\x{100}\x{100}
    314  0: \x{100}
    315 
    316 /\x{100}{1,3}/utf
    317     abcd\x{100}\x{100}\x{100}\x{100}
    318  0: \x{100}\x{100}\x{100}
    319 
    320 /\x{100}+/utf
    321     abcd\x{100}\x{100}\x{100}\x{100}
    322  0: \x{100}\x{100}\x{100}\x{100}
    323 
    324 /\x{100}{3}/utf
    325     abcd\x{100}\x{100}\x{100}XX
    326  0: \x{100}\x{100}\x{100}
    327 
    328 /\x{100}{3,5}/utf
    329     abcd\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}XX
    330  0: \x{100}\x{100}\x{100}\x{100}\x{100}
    331 
    332 /\x{100}{3,}/utf
    333     abcd\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}XX
    334  0: \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
    335 
    336 /(?<=a\x{100}{2}b)X/utf,aftertext
    337     Xyyya\x{100}\x{100}bXzzz
    338  0: X
    339  0+ zzz
    340 
    341 /\D*/utf
    342   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    343  0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    344 
    345 /\D*/utf
    346   \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}
    347  0: \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}
    348 
    349 /\D/utf
    350     1X2
    351  0: X
    352     1\x{100}2
    353  0: \x{100}
    354 
    355 />\S/utf
    356     > >X Y
    357  0: >X
    358     > >\x{100} Y
    359  0: >\x{100}
    360 
    361 /\d/utf
    362     \x{100}3
    363  0: 3
    364 
    365 /\s/utf
    366     \x{100} X
    367  0:  
    368 
    369 /\D+/utf
    370     12abcd34
    371  0: abcd
    372 \= Expect no match
    373     1234
    374 No match
    375 
    376 /\D{2,3}/utf
    377     12abcd34
    378  0: abc
    379     12ab34
    380  0: ab
    381 \= Expect no match
    382     1234
    383 No match
    384     12a34
    385 No match
    386 
    387 /\D{2,3}?/utf
    388     12abcd34
    389  0: ab
    390     12ab34
    391  0: ab
    392 \= Expect no match
    393     1234
    394 No match
    395     12a34
    396 No match
    397 
    398 /\d+/utf
    399     12abcd34
    400  0: 12
    401 
    402 /\d{2,3}/utf
    403     12abcd34
    404  0: 12
    405     1234abcd
    406  0: 123
    407 \= Expect no match
    408     1.4
    409 No match
    410 
    411 /\d{2,3}?/utf
    412     12abcd34
    413  0: 12
    414     1234abcd
    415  0: 12
    416 \= Expect no match
    417     1.4
    418 No match
    419 
    420 /\S+/utf
    421     12abcd34
    422  0: 12abcd34
    423 \= Expect no match
    424     \    \
    425 No match
    426 
    427 /\S{2,3}/utf
    428     12abcd34
    429  0: 12a
    430     1234abcd
    431  0: 123
    432 \= Expect no match
    433     \     \
    434 No match
    435 
    436 /\S{2,3}?/utf
    437     12abcd34
    438  0: 12
    439     1234abcd
    440  0: 12
    441 \= Expect no match
    442     \     \
    443 No match
    444 
    445 />\s+</utf,aftertext
    446     12>      <34
    447  0: >      <
    448  0+ 34
    449 
    450 />\s{2,3}</utf,aftertext
    451     ab>  <cd
    452  0: >  <
    453  0+ cd
    454     ab>   <ce
    455  0: >   <
    456  0+ ce
    457 \= Expect no match
    458     ab>    <cd
    459 No match
    460 
    461 />\s{2,3}?</utf,aftertext
    462     ab>  <cd
    463  0: >  <
    464  0+ cd
    465     ab>   <ce
    466  0: >   <
    467  0+ ce
    468 \= Expect no match
    469     ab>    <cd
    470 No match
    471 
    472 /\w+/utf
    473     12      34
    474  0: 12
    475 \= Expect no match
    476     +++=*!
    477 No match
    478 
    479 /\w{2,3}/utf
    480     ab  cd
    481  0: ab
    482     abcd ce
    483  0: abc
    484 \= Expect no match
    485     a.b.c
    486 No match
    487 
    488 /\w{2,3}?/utf
    489     ab  cd
    490  0: ab
    491     abcd ce
    492  0: ab
    493 \= Expect no match
    494     a.b.c
    495 No match
    496 
    497 /\W+/utf
    498     12====34
    499  0: ====
    500 \= Expect no match
    501     abcd
    502 No match
    503 
    504 /\W{2,3}/utf
    505     ab====cd
    506  0: ===
    507     ab==cd
    508  0: ==
    509 \= Expect no match
    510     a.b.c
    511 No match
    512 
    513 /\W{2,3}?/utf
    514     ab====cd
    515  0: ==
    516     ab==cd
    517  0: ==
    518 \= Expect no match
    519     a.b.c
    520 No match
    521 
    522 /[\x{100}]/utf
    523     \x{100}
    524  0: \x{100}
    525     Z\x{100}
    526  0: \x{100}
    527     \x{100}Z
    528  0: \x{100}
    529 
    530 /[Z\x{100}]/utf
    531     Z\x{100}
    532  0: Z
    533     \x{100}
    534  0: \x{100}
    535     \x{100}Z
    536  0: \x{100}
    537 
    538 /[\x{100}\x{200}]/utf
    539     ab\x{100}cd
    540  0: \x{100}
    541     ab\x{200}cd
    542  0: \x{200}
    543 
    544 /[\x{100}-\x{200}]/utf
    545     ab\x{100}cd
    546  0: \x{100}
    547     ab\x{200}cd
    548  0: \x{200}
    549     ab\x{111}cd
    550  0: \x{111}
    551 
    552 /[z-\x{200}]/utf
    553     ab\x{100}cd
    554  0: \x{100}
    555     ab\x{200}cd
    556  0: \x{200}
    557     ab\x{111}cd
    558  0: \x{111}
    559     abzcd
    560  0: z
    561     ab|cd
    562  0: |
    563 
    564 /[Q\x{100}\x{200}]/utf
    565     ab\x{100}cd
    566  0: \x{100}
    567     ab\x{200}cd
    568  0: \x{200}
    569     Q?
    570  0: Q
    571 
    572 /[Q\x{100}-\x{200}]/utf
    573     ab\x{100}cd
    574  0: \x{100}
    575     ab\x{200}cd
    576  0: \x{200}
    577     ab\x{111}cd
    578  0: \x{111}
    579     Q?
    580  0: Q
    581 
    582 /[Qz-\x{200}]/utf
    583     ab\x{100}cd
    584  0: \x{100}
    585     ab\x{200}cd
    586  0: \x{200}
    587     ab\x{111}cd
    588  0: \x{111}
    589     abzcd
    590  0: z
    591     ab|cd
    592  0: |
    593     Q?
    594  0: Q
    595 
    596 /[\x{100}\x{200}]{1,3}/utf
    597     ab\x{100}cd
    598  0: \x{100}
    599     ab\x{200}cd
    600  0: \x{200}
    601     ab\x{200}\x{100}\x{200}\x{100}cd
    602  0: \x{200}\x{100}\x{200}
    603 
    604 /[\x{100}\x{200}]{1,3}?/utf
    605     ab\x{100}cd
    606  0: \x{100}
    607     ab\x{200}cd
    608  0: \x{200}
    609     ab\x{200}\x{100}\x{200}\x{100}cd
    610  0: \x{200}
    611 
    612 /[Q\x{100}\x{200}]{1,3}/utf
    613     ab\x{100}cd
    614  0: \x{100}
    615     ab\x{200}cd
    616  0: \x{200}
    617     ab\x{200}\x{100}\x{200}\x{100}cd
    618  0: \x{200}\x{100}\x{200}
    619 
    620 /[Q\x{100}\x{200}]{1,3}?/utf
    621     ab\x{100}cd
    622  0: \x{100}
    623     ab\x{200}cd
    624  0: \x{200}
    625     ab\x{200}\x{100}\x{200}\x{100}cd
    626  0: \x{200}
    627 
    628 /(?<=[\x{100}\x{200}])X/utf
    629     abc\x{200}X
    630  0: X
    631     abc\x{100}X
    632  0: X
    633 \= Expect no match
    634     X
    635 No match
    636 
    637 /(?<=[Q\x{100}\x{200}])X/utf
    638     abc\x{200}X
    639  0: X
    640     abc\x{100}X
    641  0: X
    642     abQX
    643  0: X
    644 \= Expect no match
    645     X
    646 No match
    647 
    648 /(?<=[\x{100}\x{200}]{3})X/utf
    649     abc\x{100}\x{200}\x{100}X
    650  0: X
    651 \= Expect no match
    652     abc\x{200}X
    653 No match
    654     X
    655 No match
    656 
    657 /[^\x{100}\x{200}]X/utf
    658     AX
    659  0: AX
    660     \x{150}X
    661  0: \x{150}X
    662     \x{500}X
    663  0: \x{500}X
    664 \= Expect no match
    665     \x{100}X
    666 No match
    667     \x{200}X
    668 No match
    669 
    670 /[^Q\x{100}\x{200}]X/utf
    671     AX
    672  0: AX
    673     \x{150}X
    674  0: \x{150}X
    675     \x{500}X
    676  0: \x{500}X
    677 \= Expect no match
    678     \x{100}X
    679 No match
    680     \x{200}X
    681 No match
    682     QX
    683 No match
    684 
    685 /[^\x{100}-\x{200}]X/utf
    686     AX
    687  0: AX
    688     \x{500}X
    689  0: \x{500}X
    690 \= Expect no match
    691     \x{100}X
    692 No match
    693     \x{150}X
    694 No match
    695     \x{200}X
    696 No match
    697 
    698 /[z-\x{100}]/i,utf
    699     z
    700  0: z
    701     Z
    702  0: Z
    703     \x{100}
    704  0: \x{100}
    705 \= Expect no match
    706     \x{102}
    707 No match
    708     y
    709 No match
    710 
    711 /[\xFF]/
    712     >\xff<
    713  0: \xff
    714 
    715 /[\xff]/utf
    716     >\x{ff}<
    717  0: \x{ff}
    718 
    719 /[^\xFF]/
    720     XYZ
    721  0: X
    722 
    723 /[^\xff]/utf
    724     XYZ
    725  0: X
    726     \x{123}
    727  0: \x{123}
    728 
    729 /^[ac]*b/utf
    730 \= Expect no match
    731   xb
    732 No match
    733 
    734 /^[ac\x{100}]*b/utf
    735 \= Expect no match
    736   xb
    737 No match
    738 
    739 /^[^x]*b/i,utf
    740 \= Expect no match
    741   xb
    742 No match
    743 
    744 /^[^x]*b/utf
    745 \= Expect no match
    746   xb
    747 No match
    748 
    749 /^\d*b/utf
    750 \= Expect no match
    751   xb
    752 No match
    753 
    754 /(|a)/g,utf
    755     catac
    756  0: 
    757  1: 
    758  0: 
    759  1: 
    760  0: a
    761  1: a
    762  0: 
    763  1: 
    764  0: 
    765  1: 
    766  0: a
    767  1: a
    768  0: 
    769  1: 
    770  0: 
    771  1: 
    772     a\x{256}a
    773  0: 
    774  1: 
    775  0: a
    776  1: a
    777  0: 
    778  1: 
    779  0: 
    780  1: 
    781  0: a
    782  1: a
    783  0: 
    784  1: 
    785 
    786 /^\x{85}$/i,utf
    787     \x{85}
    788  0: \x{85}
    789 
    790 /^/utf
    791     
    792  0: \x{1234}
    793 
    794 /^\/utf
    795     
    796  0: \x{1234}
    797 
    798 "(?s)(.{1,5})"utf
    799     abcdefg
    800  0: abcde
    801  1: abcde
    802     ab
    803  0: ab
    804  1: ab
    805 
    806 /a*\x{100}*\w/utf
    807     a
    808  0: a
    809 
    810 /\S\S/g,utf
    811     A\x{a3}BC
    812  0: A\x{a3}
    813  0: BC
    814 
    815 /\S{2}/g,utf
    816     A\x{a3}BC
    817  0: A\x{a3}
    818  0: BC
    819 
    820 /\W\W/g,utf
    821     +\x{a3}==
    822  0: +\x{a3}
    823  0: ==
    824 
    825 /\W{2}/g,utf
    826     +\x{a3}==
    827  0: +\x{a3}
    828  0: ==
    829 
    830 /\S/g,utf
    831     \x{442}\x{435}\x{441}\x{442}
    832  0: \x{442}
    833  0: \x{435}
    834  0: \x{441}
    835  0: \x{442}
    836 
    837 /[\S]/g,utf
    838     \x{442}\x{435}\x{441}\x{442}
    839  0: \x{442}
    840  0: \x{435}
    841  0: \x{441}
    842  0: \x{442}
    843 
    844 /\D/g,utf
    845     \x{442}\x{435}\x{441}\x{442}
    846  0: \x{442}
    847  0: \x{435}
    848  0: \x{441}
    849  0: \x{442}
    850 
    851 /[\D]/g,utf
    852     \x{442}\x{435}\x{441}\x{442}
    853  0: \x{442}
    854  0: \x{435}
    855  0: \x{441}
    856  0: \x{442}
    857 
    858 /\W/g,utf
    859     \x{2442}\x{2435}\x{2441}\x{2442}
    860  0: \x{2442}
    861  0: \x{2435}
    862  0: \x{2441}
    863  0: \x{2442}
    864 
    865 /[\W]/g,utf
    866     \x{2442}\x{2435}\x{2441}\x{2442}
    867  0: \x{2442}
    868  0: \x{2435}
    869  0: \x{2441}
    870  0: \x{2442}
    871 
    872 /[\S\s]*/utf
    873     abc\n\r\x{442}\x{435}\x{441}\x{442}xyz
    874  0: abc\x{0a}\x{0d}\x{442}\x{435}\x{441}\x{442}xyz
    875 
    876 /[\x{41f}\S]/g,utf
    877     \x{442}\x{435}\x{441}\x{442}
    878  0: \x{442}
    879  0: \x{435}
    880  0: \x{441}
    881  0: \x{442}
    882 
    883 /.[^\S]./g,utf
    884     abc def\x{442}\x{443}xyz\npqr
    885  0: c d
    886  0: z\x{0a}p
    887 
    888 /.[^\S\n]./g,utf
    889     abc def\x{442}\x{443}xyz\npqr
    890  0: c d
    891 
    892 /[[:^alnum:]]/g,utf
    893     +\x{2442}
    894  0: +
    895  0: \x{2442}
    896 
    897 /[[:^alpha:]]/g,utf
    898     +\x{2442}
    899  0: +
    900  0: \x{2442}
    901 
    902 /[[:^ascii:]]/g,utf
    903     A\x{442}
    904  0: \x{442}
    905 
    906 /[[:^blank:]]/g,utf
    907     A\x{442}
    908  0: A
    909  0: \x{442}
    910 
    911 /[[:^cntrl:]]/g,utf
    912     A\x{442}
    913  0: A
    914  0: \x{442}
    915 
    916 /[[:^digit:]]/g,utf
    917     A\x{442}
    918  0: A
    919  0: \x{442}
    920 
    921 /[[:^graph:]]/g,utf
    922     \x19\x{e01ff}
    923  0: \x{19}
    924  0: \x{e01ff}
    925 
    926 /[[:^lower:]]/g,utf
    927     A\x{422}
    928  0: A
    929  0: \x{422}
    930 
    931 /[[:^print:]]/g,utf
    932     \x{19}\x{e01ff}
    933  0: \x{19}
    934  0: \x{e01ff}
    935 
    936 /[[:^punct:]]/g,utf
    937     A\x{442}
    938  0: A
    939  0: \x{442}
    940 
    941 /[[:^space:]]/g,utf
    942     A\x{442}
    943  0: A
    944  0: \x{442}
    945 
    946 /[[:^upper:]]/g,utf
    947     a\x{442}
    948  0: a
    949  0: \x{442}
    950 
    951 /[[:^word:]]/g,utf
    952     +\x{2442}
    953  0: +
    954  0: \x{2442}
    955 
    956 /[[:^xdigit:]]/g,utf
    957     M\x{442}
    958  0: M
    959  0: \x{442}
    960 
    961 /[^ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\d-_^]/utf
    962 
    963 /^[^d]*?$/
    964     abc
    965  0: abc
    966 
    967 /^[^d]*?$/utf
    968     abc
    969  0: abc
    970 
    971 /^[^d]*?$/i
    972     abc
    973  0: abc
    974 
    975 /^[^d]*?$/i,utf
    976     abc
    977  0: abc
    978 
    979 /(?i)[\xc3\xa9\xc3\xbd]|[\xc3\xa9\xc3\xbdA]/utf
    980 
    981 /^[a\x{c0}]b/utf
    982     \x{c0}b
    983  0: \x{c0}b
    984 
    985 /^([a\x{c0}]*?)aa/utf
    986     a\x{c0}aaaa/
    987  0: a\x{c0}aa
    988  1: a\x{c0}
    989 
    990 /^([a\x{c0}]*?)aa/utf
    991     a\x{c0}aaaa/
    992  0: a\x{c0}aa
    993  1: a\x{c0}
    994     a\x{c0}a\x{c0}aaa/
    995  0: a\x{c0}a\x{c0}aa
    996  1: a\x{c0}a\x{c0}
    997 
    998 /^([a\x{c0}]*)aa/utf
    999     a\x{c0}aaaa/
   1000  0: a\x{c0}aaaa
   1001  1: a\x{c0}aa
   1002     a\x{c0}a\x{c0}aaa/
   1003  0: a\x{c0}a\x{c0}aaa
   1004  1: a\x{c0}a\x{c0}a
   1005 
   1006 /^([a\x{c0}]*)a\x{c0}/utf
   1007     a\x{c0}aaaa/
   1008  0: a\x{c0}
   1009  1: 
   1010     a\x{c0}a\x{c0}aaa/
   1011  0: a\x{c0}a\x{c0}
   1012  1: a\x{c0}
   1013 
   1014 /A*/g,utf
   1015     AAB\x{123}BAA
   1016  0: AA
   1017  0: 
   1018  0: 
   1019  0: 
   1020  0: AA
   1021  0: 
   1022 
   1023 /(abc)\1/i,utf
   1024 \= Expect no match
   1025    abc
   1026 No match
   1027 
   1028 /(abc)\1/utf
   1029 \= Expect no match
   1030    abc
   1031 No match
   1032 
   1033 /a(*:a\x{1234}b)/utf,mark
   1034     abc
   1035  0: a
   1036 MK: a\x{1234}b
   1037 
   1038 /a(*:ab)/utf,mark
   1039     abc
   1040  0: a
   1041 MK: a\x{a3}b
   1042 
   1043 # Noncharacters
   1044 
   1045 /./utf
   1046     \x{fffe}
   1047  0: \x{fffe}
   1048     \x{ffff}
   1049  0: \x{ffff}
   1050     \x{1fffe}
   1051  0: \x{1fffe}
   1052     \x{1ffff}
   1053  0: \x{1ffff}
   1054     \x{2fffe}
   1055  0: \x{2fffe}
   1056     \x{2ffff}
   1057  0: \x{2ffff}
   1058     \x{3fffe}
   1059  0: \x{3fffe}
   1060     \x{3ffff}
   1061  0: \x{3ffff}
   1062     \x{4fffe}
   1063  0: \x{4fffe}
   1064     \x{4ffff}
   1065  0: \x{4ffff}
   1066     \x{5fffe}
   1067  0: \x{5fffe}
   1068     \x{5ffff}
   1069  0: \x{5ffff}
   1070     \x{6fffe}
   1071  0: \x{6fffe}
   1072     \x{6ffff}
   1073  0: \x{6ffff}
   1074     \x{7fffe}
   1075  0: \x{7fffe}
   1076     \x{7ffff}
   1077  0: \x{7ffff}
   1078     \x{8fffe}
   1079  0: \x{8fffe}
   1080     \x{8ffff}
   1081  0: \x{8ffff}
   1082     \x{9fffe}
   1083  0: \x{9fffe}
   1084     \x{9ffff}
   1085  0: \x{9ffff}
   1086     \x{afffe}
   1087  0: \x{afffe}
   1088     \x{affff}
   1089  0: \x{affff}
   1090     \x{bfffe}
   1091  0: \x{bfffe}
   1092     \x{bffff}
   1093  0: \x{bffff}
   1094     \x{cfffe}
   1095  0: \x{cfffe}
   1096     \x{cffff}
   1097  0: \x{cffff}
   1098     \x{dfffe}
   1099  0: \x{dfffe}
   1100     \x{dffff}
   1101  0: \x{dffff}
   1102     \x{efffe}
   1103  0: \x{efffe}
   1104     \x{effff}
   1105  0: \x{effff}
   1106     \x{ffffe}
   1107  0: \x{ffffe}
   1108     \x{fffff}
   1109  0: \x{fffff}
   1110     \x{10fffe}
   1111  0: \x{10fffe}
   1112     \x{10ffff}
   1113  0: \x{10ffff}
   1114     \x{fdd0}
   1115  0: \x{fdd0}
   1116     \x{fdd1}
   1117  0: \x{fdd1}
   1118     \x{fdd2}
   1119  0: \x{fdd2}
   1120     \x{fdd3}
   1121  0: \x{fdd3}
   1122     \x{fdd4}
   1123  0: \x{fdd4}
   1124     \x{fdd5}
   1125  0: \x{fdd5}
   1126     \x{fdd6}
   1127  0: \x{fdd6}
   1128     \x{fdd7}
   1129  0: \x{fdd7}
   1130     \x{fdd8}
   1131  0: \x{fdd8}
   1132     \x{fdd9}
   1133  0: \x{fdd9}
   1134     \x{fdda}
   1135  0: \x{fdda}
   1136     \x{fddb}
   1137  0: \x{fddb}
   1138     \x{fddc}
   1139  0: \x{fddc}
   1140     \x{fddd}
   1141  0: \x{fddd}
   1142     \x{fdde}
   1143  0: \x{fdde}
   1144     \x{fddf}
   1145  0: \x{fddf}
   1146     \x{fde0}
   1147  0: \x{fde0}
   1148     \x{fde1}
   1149  0: \x{fde1}
   1150     \x{fde2}
   1151  0: \x{fde2}
   1152     \x{fde3}
   1153  0: \x{fde3}
   1154     \x{fde4}
   1155  0: \x{fde4}
   1156     \x{fde5}
   1157  0: \x{fde5}
   1158     \x{fde6}
   1159  0: \x{fde6}
   1160     \x{fde7}
   1161  0: \x{fde7}
   1162     \x{fde8}
   1163  0: \x{fde8}
   1164     \x{fde9}
   1165  0: \x{fde9}
   1166     \x{fdea}
   1167  0: \x{fdea}
   1168     \x{fdeb}
   1169  0: \x{fdeb}
   1170     \x{fdec}
   1171  0: \x{fdec}
   1172     \x{fded}
   1173  0: \x{fded}
   1174     \x{fdee}
   1175  0: \x{fdee}
   1176     \x{fdef}
   1177  0: \x{fdef}
   1178 
   1179 /^\d*\w{4}/utf
   1180     1234
   1181  0: 1234
   1182 \= Expect no match     
   1183     123
   1184 No match
   1185 
   1186 /^[^b]*\w{4}/utf
   1187     aaaa
   1188  0: aaaa
   1189 \= Expect no match     
   1190     aaa
   1191 No match
   1192 
   1193 /^[^b]*\w{4}/i,utf
   1194     aaaa
   1195  0: aaaa
   1196 \= Expect no match     
   1197     aaa
   1198 No match
   1199 
   1200 /^\x{100}*.{4}/utf
   1201     \x{100}\x{100}\x{100}\x{100}
   1202  0: \x{100}\x{100}\x{100}\x{100}
   1203 \= Expect no match     
   1204     \x{100}\x{100}\x{100}
   1205 No match
   1206 
   1207 /^\x{100}*.{4}/i,utf
   1208     \x{100}\x{100}\x{100}\x{100}
   1209  0: \x{100}\x{100}\x{100}\x{100}
   1210 \= Expect no match     
   1211     \x{100}\x{100}\x{100}
   1212 No match
   1213 
   1214 /^a+[a\x{200}]/utf
   1215     aa
   1216  0: aa
   1217 
   1218 /^.\B.\B./utf
   1219     \x{10123}\x{10124}\x{10125}
   1220  0: \x{10123}\x{10124}\x{10125}
   1221 
   1222 /^#[^\x{ffff}]#[^\x{ffff}]#[^\x{ffff}]#/utf
   1223     #\x{10000}#\x{100}#\x{10ffff}#
   1224  0: #\x{10000}#\x{100}#\x{10ffff}#
   1225     
   1226 # Unicode property support tests 
   1227 
   1228 /^\pC\pL\pM\pN\pP\pS\pZ</utf
   1229     \x7f\x{c0}\x{30f}\x{660}\x{66c}\x{f01}\x{1680}<
   1230  0: \x{7f}\x{c0}\x{30f}\x{660}\x{66c}\x{f01}\x{1680}<
   1231     \np\x{300}9!\$ < 
   1232  0: \x{0a}p\x{300}9!$ <
   1233 \= Expect no match     
   1234     ap\x{300}9!\$ < 
   1235 No match
   1236   
   1237 /^\PC/utf
   1238     X
   1239  0: X
   1240 \= Expect no match     
   1241     \x7f
   1242 No match
   1243   
   1244 /^\PL/utf
   1245     9
   1246  0: 9
   1247 \= Expect no match     
   1248     \x{c0}
   1249 No match
   1250   
   1251 /^\PM/utf
   1252     X
   1253  0: X
   1254 \= Expect no match     
   1255     \x{30f}
   1256 No match
   1257   
   1258 /^\PN/utf
   1259     X
   1260  0: X
   1261 \= Expect no match     
   1262     \x{660}
   1263 No match
   1264   
   1265 /^\PP/utf
   1266     X
   1267  0: X
   1268 \= Expect no match 
   1269     \x{66c}
   1270 No match
   1271   
   1272 /^\PS/utf
   1273     X
   1274  0: X
   1275 \= Expect no match 
   1276     \x{f01}
   1277 No match
   1278   
   1279 /^\PZ/utf
   1280     X
   1281  0: X
   1282 \= Expect no match 
   1283     \x{1680}
   1284 No match
   1285     
   1286 /^\p{Cc}/utf
   1287     \x{017}
   1288  0: \x{17}
   1289     \x{09f} 
   1290  0: \x{9f}
   1291 \= Expect no match
   1292     \x{0600} 
   1293 No match
   1294   
   1295 /^\p{Cf}/utf
   1296     \x{601}
   1297  0: \x{601}
   1298 \= Expect no match
   1299     \x{09f} 
   1300 No match
   1301   
   1302 /^\p{Cn}/utf
   1303     \x{e0000}
   1304  0: \x{e0000}
   1305 \= Expect no match
   1306     \x{09f} 
   1307 No match
   1308   
   1309 /^\p{Co}/utf
   1310     \x{f8ff}
   1311  0: \x{f8ff}
   1312 \= Expect no match
   1313     \x{09f} 
   1314 No match
   1315   
   1316 /^\p{Ll}/utf
   1317     a
   1318  0: a
   1319 \= Expect no match 
   1320     Z
   1321 No match
   1322     \x{e000}  
   1323 No match
   1324   
   1325 /^\p{Lm}/utf
   1326     \x{2b0}
   1327  0: \x{2b0}
   1328 \= Expect no match
   1329     a 
   1330 No match
   1331   
   1332 /^\p{Lo}/utf
   1333     \x{1bb}
   1334  0: \x{1bb}
   1335     \x{3400}
   1336  0: \x{3400}
   1337     \x{3401}
   1338  0: \x{3401}
   1339     \x{4d00}
   1340  0: \x{4d00}
   1341     \x{4db4}
   1342  0: \x{4db4}
   1343     \x{4db5}     
   1344  0: \x{4db5}
   1345 \= Expect no match
   1346     a 
   1347 No match
   1348     \x{2b0}
   1349 No match
   1350     \x{4db6} 
   1351 No match
   1352   
   1353 /^\p{Lt}/utf
   1354     \x{1c5}
   1355  0: \x{1c5}
   1356 \= Expect no match
   1357     a 
   1358 No match
   1359     \x{2b0}
   1360 No match
   1361   
   1362 /^\p{Lu}/utf
   1363     A
   1364  0: A
   1365 \= Expect no match
   1366     \x{2b0}
   1367 No match
   1368   
   1369 /^\p{Mc}/utf
   1370     \x{903}
   1371  0: \x{903}
   1372 \= Expect no match
   1373     X
   1374 No match
   1375     \x{300}
   1376 No match
   1377        
   1378 /^\p{Me}/utf
   1379     \x{488}
   1380  0: \x{488}
   1381 \= Expect no match
   1382     X
   1383 No match
   1384     \x{903}
   1385 No match
   1386     \x{300}
   1387 No match
   1388   
   1389 /^\p{Mn}/utf
   1390     \x{300}
   1391  0: \x{300}
   1392 \= Expect no match
   1393     X
   1394 No match
   1395     \x{903}
   1396 No match
   1397   
   1398 /^\p{Nd}+/utf
   1399     0123456789\x{660}\x{661}\x{662}\x{663}\x{664}\x{665}\x{666}\x{667}\x{668}\x{669}\x{66a}
   1400  0: 0123456789\x{660}\x{661}\x{662}\x{663}\x{664}\x{665}\x{666}\x{667}\x{668}\x{669}
   1401     \x{6f0}\x{6f1}\x{6f2}\x{6f3}\x{6f4}\x{6f5}\x{6f6}\x{6f7}\x{6f8}\x{6f9}\x{6fa}
   1402  0: \x{6f0}\x{6f1}\x{6f2}\x{6f3}\x{6f4}\x{6f5}\x{6f6}\x{6f7}\x{6f8}\x{6f9}
   1403     \x{966}\x{967}\x{968}\x{969}\x{96a}\x{96b}\x{96c}\x{96d}\x{96e}\x{96f}\x{970}
   1404  0: \x{966}\x{967}\x{968}\x{969}\x{96a}\x{96b}\x{96c}\x{96d}\x{96e}\x{96f}
   1405 \= Expect no match
   1406     X
   1407 No match
   1408   
   1409 /^\p{Nl}/utf
   1410     \x{16ee}
   1411  0: \x{16ee}
   1412 \= Expect no match
   1413     X
   1414 No match
   1415     \x{966}
   1416 No match
   1417   
   1418 /^\p{No}/utf
   1419     \x{b2}
   1420  0: \x{b2}
   1421     \x{b3}
   1422  0: \x{b3}
   1423 \= Expect no match
   1424     X
   1425 No match
   1426     \x{16ee}
   1427 No match
   1428   
   1429 /^\p{Pc}/utf
   1430     \x5f
   1431  0: _
   1432     \x{203f}
   1433  0: \x{203f}
   1434 \= Expect no match
   1435     X
   1436 No match
   1437     -
   1438 No match
   1439     \x{58a}
   1440 No match
   1441   
   1442 /^\p{Pd}/utf
   1443     -
   1444  0: -
   1445     \x{58a}
   1446  0: \x{58a}
   1447 \= Expect no match
   1448     X
   1449 No match
   1450     \x{203f}
   1451 No match
   1452   
   1453 /^\p{Pe}/utf
   1454     )
   1455  0: )
   1456     ]
   1457  0: ]
   1458     }
   1459  0: }
   1460     \x{f3b}
   1461  0: \x{f3b}
   1462 \= Expect no match
   1463     X
   1464 No match
   1465     \x{203f}
   1466 No match
   1467     (
   1468 No match
   1469     [
   1470 No match
   1471     {
   1472 No match
   1473     \x{f3c}
   1474 No match
   1475   
   1476 /^\p{Pf}/utf
   1477     \x{bb}
   1478  0: \x{bb}
   1479     \x{2019}
   1480  0: \x{2019}
   1481 \= Expect no match
   1482     X
   1483 No match
   1484     \x{203f}
   1485 No match
   1486   
   1487 /^\p{Pi}/utf
   1488     \x{ab}
   1489  0: \x{ab}
   1490     \x{2018}
   1491  0: \x{2018}
   1492 \= Expect no match
   1493     X
   1494 No match
   1495     \x{203f}
   1496 No match
   1497   
   1498 /^\p{Po}/utf
   1499     !
   1500  0: !
   1501     \x{37e}
   1502  0: \x{37e}
   1503 \= Expect no match
   1504     X
   1505 No match
   1506     \x{203f}
   1507 No match
   1508   
   1509 /^\p{Ps}/utf
   1510     (
   1511  0: (
   1512     [
   1513  0: [
   1514     {
   1515  0: {
   1516     \x{f3c}
   1517  0: \x{f3c}
   1518 \= Expect no match
   1519     X
   1520 No match
   1521     )
   1522 No match
   1523     ]
   1524 No match
   1525     }
   1526 No match
   1527     \x{f3b}
   1528 No match
   1529   
   1530 /^\p{Sk}/utf
   1531     \x{2c2}
   1532  0: \x{2c2}
   1533 \= Expect no match
   1534     X
   1535 No match
   1536     \x{9f2}
   1537 No match
   1538   
   1539 /^\p{Sm}+/utf
   1540     +<|~\x{ac}\x{2044}
   1541  0: +<|~\x{ac}\x{2044}
   1542 \= Expect no match
   1543     X
   1544 No match
   1545     \x{9f2}
   1546 No match
   1547   
   1548 /^\p{So}/utf
   1549     \x{a6}
   1550  0: \x{a6}
   1551     \x{482} 
   1552  0: \x{482}
   1553 \= Expect no match
   1554     X
   1555 No match
   1556     \x{9f2}
   1557 No match
   1558   
   1559 /^\p{Zl}/utf
   1560     \x{2028}
   1561  0: \x{2028}
   1562 \= Expect no match
   1563     X
   1564 No match
   1565     \x{2029}
   1566 No match
   1567   
   1568 /^\p{Zp}/utf
   1569     \x{2029}
   1570  0: \x{2029}
   1571 \= Expect no match
   1572     X
   1573 No match
   1574     \x{2028}
   1575 No match
   1576   
   1577 /\p{Nd}+(..)/utf
   1578     \x{660}\x{661}\x{662}ABC
   1579  0: \x{660}\x{661}\x{662}AB
   1580  1: AB
   1581   
   1582 /\p{Nd}+?(..)/utf
   1583     \x{660}\x{661}\x{662}ABC
   1584  0: \x{660}\x{661}\x{662}
   1585  1: \x{661}\x{662}
   1586   
   1587 /\p{Nd}{2,}(..)/utf
   1588     \x{660}\x{661}\x{662}ABC
   1589  0: \x{660}\x{661}\x{662}AB
   1590  1: AB
   1591   
   1592 /\p{Nd}{2,}?(..)/utf
   1593     \x{660}\x{661}\x{662}ABC
   1594  0: \x{660}\x{661}\x{662}A
   1595  1: \x{662}A
   1596   
   1597 /\p{Nd}*(..)/utf
   1598     \x{660}\x{661}\x{662}ABC
   1599  0: \x{660}\x{661}\x{662}AB
   1600  1: AB
   1601   
   1602 /\p{Nd}*?(..)/utf
   1603     \x{660}\x{661}\x{662}ABC
   1604  0: \x{660}\x{661}
   1605  1: \x{660}\x{661}
   1606   
   1607 /\p{Nd}{2}(..)/utf
   1608     \x{660}\x{661}\x{662}ABC
   1609  0: \x{660}\x{661}\x{662}A
   1610  1: \x{662}A
   1611   
   1612 /\p{Nd}{2,3}(..)/utf
   1613     \x{660}\x{661}\x{662}ABC
   1614  0: \x{660}\x{661}\x{662}AB
   1615  1: AB
   1616   
   1617 /\p{Nd}{2,3}?(..)/utf
   1618     \x{660}\x{661}\x{662}ABC
   1619  0: \x{660}\x{661}\x{662}A
   1620  1: \x{662}A
   1621   
   1622 /\p{Nd}?(..)/utf
   1623     \x{660}\x{661}\x{662}ABC
   1624  0: \x{660}\x{661}\x{662}
   1625  1: \x{661}\x{662}
   1626   
   1627 /\p{Nd}??(..)/utf
   1628     \x{660}\x{661}\x{662}ABC
   1629  0: \x{660}\x{661}
   1630  1: \x{660}\x{661}
   1631   
   1632 /\p{Nd}*+(..)/utf
   1633     \x{660}\x{661}\x{662}ABC
   1634  0: \x{660}\x{661}\x{662}AB
   1635  1: AB
   1636   
   1637 /\p{Nd}*+(...)/utf
   1638     \x{660}\x{661}\x{662}ABC
   1639  0: \x{660}\x{661}\x{662}ABC
   1640  1: ABC
   1641   
   1642 /\p{Nd}*+(....)/utf
   1643 \= Expect no match
   1644     \x{660}\x{661}\x{662}ABC
   1645 No match
   1646   
   1647 /(?<=A\p{Nd})XYZ/utf
   1648     A2XYZ
   1649  0: XYZ
   1650     123A5XYZPQR
   1651  0: XYZ
   1652     ABA\x{660}XYZpqr
   1653  0: XYZ
   1654 \= Expect no match
   1655     AXYZ
   1656 No match
   1657     XYZ     
   1658 No match
   1659     
   1660 /(?<!\pL)XYZ/utf
   1661     1XYZ
   1662  0: XYZ
   1663     AB=XYZ.. 
   1664  0: XYZ
   1665     XYZ 
   1666  0: XYZ
   1667 \= Expect no match
   1668     WXYZ 
   1669 No match
   1670 
   1671 /[\P{Nd}]+/utf
   1672     abcd
   1673  0: abcd
   1674 \= Expect no match
   1675     1234
   1676 No match
   1677 
   1678 /\D+/utf
   1679     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
   1680  0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
   1681 \= Expect no match
   1682     11111111111111111111111111111111111111111111111111111111111111111111111
   1683 No match
   1684      
   1685 /\P{Nd}+/utf
   1686     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
   1687  0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
   1688 \= Expect no match
   1689     11111111111111111111111111111111111111111111111111111111111111111111111
   1690 No match
   1691 
   1692 /[\D]+/utf
   1693     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
   1694  0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
   1695 \= Expect no match
   1696     11111111111111111111111111111111111111111111111111111111111111111111111
   1697 No match
   1698 
   1699 /[\P{Nd}]+/utf
   1700     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
   1701  0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
   1702 \= Expect no match
   1703     11111111111111111111111111111111111111111111111111111111111111111111111
   1704 No match
   1705 
   1706 /[\D\P{Nd}]+/utf
   1707     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
   1708  0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
   1709 \= Expect no match
   1710     11111111111111111111111111111111111111111111111111111111111111111111111
   1711 No match
   1712 
   1713 /\pL/utf
   1714     a
   1715  0: a
   1716     A 
   1717  0: A
   1718 
   1719 /\pL/i,utf
   1720     a
   1721  0: a
   1722     A 
   1723  0: A
   1724     
   1725 /\p{Lu}/utf
   1726     A
   1727  0: A
   1728     aZ
   1729  0: Z
   1730 \= Expect no match
   1731     abc   
   1732 No match
   1733 
   1734 /\p{Ll}/utf
   1735     a
   1736  0: a
   1737     Az
   1738  0: z
   1739 \= Expect no match
   1740     ABC   
   1741 No match
   1742 
   1743 /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/utf
   1744     A\x{391}\x{10427}\x{ff3a}\x{1fb0}
   1745  0: A\x{391}\x{10427}\x{ff3a}\x{1fb0}
   1746 \= Expect no match
   1747     a\x{391}\x{10427}\x{ff3a}\x{1fb0}   
   1748 No match
   1749     A\x{3b1}\x{10427}\x{ff3a}\x{1fb0}
   1750 No match
   1751     A\x{391}\x{1044F}\x{ff3a}\x{1fb0}
   1752 No match
   1753     A\x{391}\x{10427}\x{ff5a}\x{1fb0}
   1754 No match
   1755     A\x{391}\x{10427}\x{ff3a}\x{1fb8}
   1756 No match
   1757 
   1758 /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/i,utf
   1759     A\x{391}\x{10427}\x{ff3a}\x{1fb0}
   1760  0: A\x{391}\x{10427}\x{ff3a}\x{1fb0}
   1761     a\x{391}\x{10427}\x{ff3a}\x{1fb0}   
   1762  0: a\x{391}\x{10427}\x{ff3a}\x{1fb0}
   1763     A\x{3b1}\x{10427}\x{ff3a}\x{1fb0}
   1764  0: A\x{3b1}\x{10427}\x{ff3a}\x{1fb0}
   1765     A\x{391}\x{1044F}\x{ff3a}\x{1fb0}
   1766  0: A\x{391}\x{1044f}\x{ff3a}\x{1fb0}
   1767     A\x{391}\x{10427}\x{ff5a}\x{1fb0}
   1768  0: A\x{391}\x{10427}\x{ff5a}\x{1fb0}
   1769     A\x{391}\x{10427}\x{ff3a}\x{1fb8}
   1770  0: A\x{391}\x{10427}\x{ff3a}\x{1fb8}
   1771 
   1772 /\x{391}+/i,utf
   1773     \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}
   1774  0: \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}
   1775 
   1776 /\x{391}{3,5}(.)/i,utf
   1777     \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}X
   1778  0: \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}X
   1779  1: X
   1780 
   1781 /\x{391}{3,5}?(.)/i,utf
   1782     \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}X
   1783  0: \x{391}\x{3b1}\x{3b1}\x{3b1}
   1784  1: \x{3b1}
   1785 
   1786 /[\x{391}\x{ff3a}]/i,utf
   1787     \x{391}
   1788  0: \x{391}
   1789     \x{ff3a}
   1790  0: \x{ff3a}
   1791     \x{3b1}
   1792  0: \x{3b1}
   1793     \x{ff5a}   
   1794  0: \x{ff5a}
   1795     
   1796 /^(\X*)C/utf
   1797     A\x{300}\x{301}\x{302}BCA\x{300}\x{301} 
   1798  0: A\x{300}\x{301}\x{302}BC
   1799  1: A\x{300}\x{301}\x{302}B
   1800     A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C 
   1801  0: A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
   1802  1: A\x{300}\x{301}\x{302}BCA\x{300}\x{301}
   1803 
   1804 /^(\X*?)C/utf
   1805     A\x{300}\x{301}\x{302}BCA\x{300}\x{301} 
   1806  0: A\x{300}\x{301}\x{302}BC
   1807  1: A\x{300}\x{301}\x{302}B
   1808     A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C 
   1809  0: A\x{300}\x{301}\x{302}BC
   1810  1: A\x{300}\x{301}\x{302}B
   1811 
   1812 /^(\X*)(.)/utf
   1813     A\x{300}\x{301}\x{302}BCA\x{300}\x{301} 
   1814  0: A\x{300}\x{301}\x{302}BCA
   1815  1: A\x{300}\x{301}\x{302}BC
   1816  2: A
   1817     A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C 
   1818  0: A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
   1819  1: A\x{300}\x{301}\x{302}BCA\x{300}\x{301}
   1820  2: C
   1821 
   1822 /^(\X*?)(.)/utf
   1823     A\x{300}\x{301}\x{302}BCA\x{300}\x{301} 
   1824  0: A
   1825  1: 
   1826  2: A
   1827     A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C 
   1828  0: A
   1829  1: 
   1830  2: A
   1831 
   1832 /^\X(.)/utf
   1833 \= Expect no match
   1834     A\x{300}\x{301}\x{302}
   1835 No match
   1836 
   1837 /^\X{2,3}(.)/utf
   1838     A\x{300}\x{301}B\x{300}X
   1839  0: A\x{300}\x{301}B\x{300}X
   1840  1: X
   1841     A\x{300}\x{301}B\x{300}C\x{300}\x{301}
   1842  0: A\x{300}\x{301}B\x{300}C
   1843  1: C
   1844     A\x{300}\x{301}B\x{300}C\x{300}\x{301}X
   1845  0: A\x{300}\x{301}B\x{300}C\x{300}\x{301}X
   1846  1: X
   1847     A\x{300}\x{301}B\x{300}C\x{300}\x{301}DA\x{300}X
   1848  0: A\x{300}\x{301}B\x{300}C\x{300}\x{301}D
   1849  1: D
   1850     
   1851 /^\X{2,3}?(.)/utf
   1852     A\x{300}\x{301}B\x{300}X
   1853  0: A\x{300}\x{301}B\x{300}X
   1854  1: X
   1855     A\x{300}\x{301}B\x{300}C\x{300}\x{301}
   1856  0: A\x{300}\x{301}B\x{300}C
   1857  1: C
   1858     A\x{300}\x{301}B\x{300}C\x{300}\x{301}X
   1859  0: A\x{300}\x{301}B\x{300}C
   1860  1: C
   1861     A\x{300}\x{301}B\x{300}C\x{300}\x{301}DA\x{300}X
   1862  0: A\x{300}\x{301}B\x{300}C
   1863  1: C
   1864 
   1865 /^\X/utf
   1866     A
   1867  0: A
   1868     A\x{300}BC 
   1869  0: A\x{300}
   1870     A\x{300}\x{301}\x{302}BC 
   1871  0: A\x{300}\x{301}\x{302}
   1872     \x{300}  
   1873  0: \x{300}
   1874 
   1875 /^\p{Han}+/utf
   1876     \x{2e81}\x{3007}\x{2f804}\x{31a0}
   1877  0: \x{2e81}\x{3007}\x{2f804}
   1878 \= Expect no match
   1879     \x{2e7f}  
   1880 No match
   1881 
   1882 /^\P{Katakana}+/utf
   1883     \x{3105}
   1884  0: \x{3105}
   1885 \= Expect no match
   1886     \x{30ff}  
   1887 No match
   1888 
   1889 /^[\p{Arabic}]/utf
   1890     \x{06e9}
   1891  0: \x{6e9}
   1892     \x{060b}
   1893  0: \x{60b}
   1894 \= Expect no match
   1895     X\x{06e9}   
   1896 No match
   1897 
   1898 /^[\P{Yi}]/utf
   1899     \x{2f800}
   1900  0: \x{2f800}
   1901 \= Expect no match
   1902     \x{a014}
   1903 No match
   1904     \x{a4c6}   
   1905 No match
   1906     
   1907 /^\p{Any}X/utf
   1908     AXYZ
   1909  0: AX
   1910     \x{1234}XYZ 
   1911  0: \x{1234}X
   1912 \= Expect no match
   1913     X  
   1914 No match
   1915     
   1916 /^\P{Any}X/utf
   1917 \= Expect no match
   1918     AX
   1919 No match
   1920     
   1921 /^\p{Any}?X/utf
   1922     XYZ
   1923  0: X
   1924     AXYZ
   1925  0: AX
   1926     \x{1234}XYZ 
   1927  0: \x{1234}X
   1928 \= Expect no match
   1929     ABXYZ   
   1930 No match
   1931 
   1932 /^\P{Any}?X/utf
   1933     XYZ
   1934  0: X
   1935 \= Expect no match
   1936     AXYZ
   1937 No match
   1938     \x{1234}XYZ 
   1939 No match
   1940     ABXYZ   
   1941 No match
   1942 
   1943 /^\p{Any}+X/utf
   1944     AXYZ
   1945  0: AX
   1946     \x{1234}XYZ
   1947  0: \x{1234}X
   1948     A\x{1234}XYZ
   1949  0: A\x{1234}X
   1950 \= Expect no match
   1951     XYZ
   1952 No match
   1953 
   1954 /^\P{Any}+X/utf
   1955 \= Expect no match
   1956     AXYZ
   1957 No match
   1958     \x{1234}XYZ
   1959 No match
   1960     A\x{1234}XYZ
   1961 No match
   1962     XYZ
   1963 No match
   1964 
   1965 /^\p{Any}*X/utf
   1966     XYZ
   1967  0: X
   1968     AXYZ
   1969  0: AX
   1970     \x{1234}XYZ
   1971  0: \x{1234}X
   1972     A\x{1234}XYZ
   1973  0: A\x{1234}X
   1974 
   1975 /^\P{Any}*X/utf
   1976     XYZ
   1977  0: X
   1978 \= Expect no match
   1979     AXYZ
   1980 No match
   1981     \x{1234}XYZ
   1982 No match
   1983     A\x{1234}XYZ
   1984 No match
   1985 
   1986 /^[\p{Any}]X/utf
   1987     AXYZ
   1988  0: AX
   1989     \x{1234}XYZ 
   1990  0: \x{1234}X
   1991 \= Expect no match
   1992     X  
   1993 No match
   1994     
   1995 /^[\P{Any}]X/utf
   1996 \= Expect no match
   1997     AX
   1998 No match
   1999     
   2000 /^[\p{Any}]?X/utf
   2001     XYZ
   2002  0: X
   2003     AXYZ
   2004  0: AX
   2005     \x{1234}XYZ 
   2006  0: \x{1234}X
   2007 \= Expect no match
   2008     ABXYZ   
   2009 No match
   2010 
   2011 /^[\P{Any}]?X/utf
   2012     XYZ
   2013  0: X
   2014 \= Expect no match
   2015     AXYZ
   2016 No match
   2017     \x{1234}XYZ 
   2018 No match
   2019     ABXYZ   
   2020 No match
   2021 
   2022 /^[\p{Any}]+X/utf
   2023     AXYZ
   2024  0: AX
   2025     \x{1234}XYZ
   2026  0: \x{1234}X
   2027     A\x{1234}XYZ
   2028  0: A\x{1234}X
   2029 \= Expect no match
   2030     XYZ
   2031 No match
   2032 
   2033 /^[\P{Any}]+X/utf
   2034 \= Expect no match
   2035     AXYZ
   2036 No match
   2037     \x{1234}XYZ
   2038 No match
   2039     A\x{1234}XYZ
   2040 No match
   2041     XYZ
   2042 No match
   2043 
   2044 /^[\p{Any}]*X/utf
   2045     XYZ
   2046  0: X
   2047     AXYZ
   2048  0: AX
   2049     \x{1234}XYZ
   2050  0: \x{1234}X
   2051     A\x{1234}XYZ
   2052  0: A\x{1234}X
   2053 
   2054 /^[\P{Any}]*X/utf
   2055     XYZ
   2056  0: X
   2057 \= Expect no match
   2058     AXYZ
   2059 No match
   2060     \x{1234}XYZ
   2061 No match
   2062     A\x{1234}XYZ
   2063 No match
   2064 
   2065 /^\p{Any}{3,5}?/utf
   2066     abcdefgh
   2067  0: abc
   2068     \x{1234}\n\r\x{3456}xyz 
   2069  0: \x{1234}\x{0a}\x{0d}
   2070 
   2071 /^\p{Any}{3,5}/utf
   2072     abcdefgh
   2073  0: abcde
   2074     \x{1234}\n\r\x{3456}xyz 
   2075  0: \x{1234}\x{0a}\x{0d}\x{3456}x
   2076 
   2077 /^\P{Any}{3,5}?/utf
   2078 \= Expect no match
   2079     abcdefgh
   2080 No match
   2081     \x{1234}\n\r\x{3456}xyz 
   2082 No match
   2083 
   2084 /^\p{L&}X/utf
   2085      AXY
   2086  0: AX
   2087      aXY
   2088  0: aX
   2089      \x{1c5}XY
   2090  0: \x{1c5}X
   2091 \= Expect no match
   2092     \x{1bb}XY
   2093 No match
   2094     \x{2b0}XY
   2095 No match
   2096     !XY      
   2097 No match
   2098 
   2099 /^[\p{L&}]X/utf
   2100     AXY
   2101  0: AX
   2102     aXY
   2103  0: aX
   2104      \x{1c5}XY
   2105  0: \x{1c5}X
   2106 \= Expect no match
   2107     \x{1bb}XY
   2108 No match
   2109     \x{2b0}XY
   2110 No match
   2111     !XY      
   2112 No match
   2113 
   2114 /^\p{L&}+X/utf
   2115     AXY
   2116  0: AX
   2117     aXY
   2118  0: aX
   2119     AbcdeXyz 
   2120  0: AbcdeX
   2121     \x{1c5}AbXY
   2122  0: \x{1c5}AbX
   2123     abcDEXypqreXlmn 
   2124  0: abcDEXypqreX
   2125 \= Expect no match
   2126     \x{1bb}XY
   2127 No match
   2128     \x{2b0}XY
   2129 No match
   2130     !XY      
   2131 No match
   2132 
   2133 /^[\p{L&}]+X/utf
   2134     AXY
   2135  0: AX
   2136     aXY
   2137  0: aX
   2138     AbcdeXyz 
   2139  0: AbcdeX
   2140     \x{1c5}AbXY
   2141  0: \x{1c5}AbX
   2142     abcDEXypqreXlmn 
   2143  0: abcDEXypqreX
   2144 \= Expect no match
   2145     \x{1bb}XY
   2146 No match
   2147     \x{2b0}XY
   2148 No match
   2149     !XY      
   2150 No match
   2151 
   2152 /^\p{L&}+?X/utf
   2153     AXY
   2154  0: AX
   2155     aXY
   2156  0: aX
   2157     AbcdeXyz 
   2158  0: AbcdeX
   2159     \x{1c5}AbXY
   2160  0: \x{1c5}AbX
   2161     abcDEXypqreXlmn 
   2162  0: abcDEX
   2163 \= Expect no match
   2164     \x{1bb}XY
   2165 No match
   2166     \x{2b0}XY
   2167 No match
   2168     !XY      
   2169 No match
   2170 
   2171 /^[\p{L&}]+?X/utf
   2172     AXY
   2173  0: AX
   2174     aXY
   2175  0: aX
   2176     AbcdeXyz 
   2177  0: AbcdeX
   2178     \x{1c5}AbXY
   2179  0: \x{1c5}AbX
   2180     abcDEXypqreXlmn 
   2181  0: abcDEX
   2182 \= Expect no match
   2183     \x{1bb}XY
   2184 No match
   2185     \x{2b0}XY
   2186 No match
   2187     !XY      
   2188 No match
   2189 
   2190 /^\P{L&}X/utf
   2191     !XY
   2192  0: !X
   2193     \x{1bb}XY
   2194  0: \x{1bb}X
   2195     \x{2b0}XY
   2196  0: \x{2b0}X
   2197 \= Expect no match
   2198     \x{1c5}XY
   2199 No match
   2200     AXY      
   2201 No match
   2202 
   2203 /^[\P{L&}]X/utf
   2204     !XY
   2205  0: !X
   2206     \x{1bb}XY
   2207  0: \x{1bb}X
   2208     \x{2b0}XY
   2209  0: \x{2b0}X
   2210 \= Expect no match
   2211     \x{1c5}XY
   2212 No match
   2213     AXY      
   2214 No match
   2215 
   2216 /^(\p{Z}[^\p{C}\p{Z}]+)*$/
   2217     \xa0!
   2218  0: \xa0!
   2219  1: \xa0!
   2220 
   2221 /^[\pL](abc)(?1)/
   2222     AabcabcYZ    
   2223  0: Aabcabc
   2224  1: abc
   2225 
   2226 /([\pL]=(abc))*X/
   2227     L=abcX
   2228  0: L=abcX
   2229  1: L=abc
   2230  2: abc
   2231 
   2232 /^\p{Balinese}\p{Cuneiform}\p{Nko}\p{Phags_Pa}\p{Phoenician}/utf
   2233     \x{1b00}\x{12000}\x{7c0}\x{a840}\x{10900}
   2234  0: \x{1b00}\x{12000}\x{7c0}\x{a840}\x{10900}
   2235 
   2236 # Check property support in non-UTF mode
   2237  
   2238 /\p{L}{4}/
   2239     123abcdefg
   2240  0: abcd
   2241     123abc\xc4\xc5zz
   2242  0: abc\xc4
   2243 
   2244 /\X{1,3}\d/
   2245 \= Expect no match
   2246     \x8aBCD
   2247 No match
   2248   
   2249 /\X?\d/
   2250 \= Expect no match
   2251     \x8aBCD 
   2252 No match
   2253 
   2254 /\P{L}?\d/
   2255 \= Expect no match
   2256     \x8aBCD 
   2257 No match
   2258 
   2259 /[\PPP\x8a]{1,}\x80/
   2260     A\x80
   2261  0: A\x80
   2262 
   2263 /^[\p{Arabic}]/utf
   2264     \x{604}
   2265  0: \x{604}
   2266     \x{60e} 
   2267  0: \x{60e}
   2268     \x{656} 
   2269  0: \x{656}
   2270     \x{657} 
   2271  0: \x{657}
   2272     \x{658} 
   2273  0: \x{658}
   2274     \x{659} 
   2275  0: \x{659}
   2276     \x{65a} 
   2277  0: \x{65a}
   2278     \x{65b} 
   2279  0: \x{65b}
   2280     \x{65c} 
   2281  0: \x{65c}
   2282     \x{65d} 
   2283  0: \x{65d}
   2284     \x{65e} 
   2285  0: \x{65e}
   2286     \x{65f}
   2287  0: \x{65f}
   2288     \x{66a} 
   2289  0: \x{66a}
   2290     \x{6e9} 
   2291  0: \x{6e9}
   2292     \x{6ef}
   2293  0: \x{6ef}
   2294     \x{6fa}  
   2295  0: \x{6fa}
   2296 \= Expect no match
   2297     \x{650}
   2298 No match
   2299     \x{651}  
   2300 No match
   2301     \x{652}  
   2302 No match
   2303     \x{653}  
   2304 No match
   2305     \x{654} 
   2306 No match
   2307     \x{655} 
   2308 No match
   2309     
   2310 /^\p{Cyrillic}/utf
   2311     \x{1d2b} 
   2312  0: \x{1d2b}
   2313     
   2314 /^\p{Common}/utf
   2315     \x{589}
   2316  0: \x{589}
   2317     \x{60c}
   2318  0: \x{60c}
   2319     \x{61f}  
   2320  0: \x{61f}
   2321     \x{964}
   2322  0: \x{964}
   2323     \x{965}  
   2324  0: \x{965}
   2325 
   2326 /^\p{Inherited}/utf
   2327     \x{64b}
   2328  0: \x{64b}
   2329     \x{654}
   2330  0: \x{654}
   2331     \x{655}
   2332  0: \x{655}
   2333     \x{200c} 
   2334  0: \x{200c}
   2335 \= Expect no match
   2336     \x{64a}
   2337 No match
   2338     \x{656}     
   2339 No match
   2340 
   2341 /^\p{Shavian}/utf
   2342     \x{10450}
   2343  0: \x{10450}
   2344     \x{1047f}
   2345  0: \x{1047f}
   2346     
   2347 /^\p{Deseret}/utf
   2348     \x{10400}
   2349  0: \x{10400}
   2350     \x{1044f}
   2351  0: \x{1044f}
   2352     
   2353 /^\p{Osmanya}/utf
   2354     \x{10480}
   2355  0: \x{10480}
   2356     \x{1049d}
   2357  0: \x{1049d}
   2358     \x{104a0}
   2359  0: \x{104a0}
   2360     \x{104a9}
   2361  0: \x{104a9}
   2362 \= Expect no match
   2363     \x{1049e}
   2364 No match
   2365     \x{1049f}
   2366 No match
   2367     \x{104aa}           
   2368 No match
   2369 
   2370 /\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
   2371     \x{102A4}\x{AA52}\x{A91D}\x{1C46}\x{10283}\x{1092E}\x{1C6B}\x{A93B}\x{A8BF}\x{1BA0}\x{A50A}====
   2372  0: \x{102a4}\x{aa52}\x{a91d}\x{1c46}\x{10283}\x{1092e}\x{1c6b}\x{a93b}\x{a8bf}\x{1ba0}\x{a50a}
   2373 
   2374 /\x{a77d}\x{1d79}/i,utf
   2375     \x{a77d}\x{1d79}
   2376  0: \x{a77d}\x{1d79}
   2377     \x{1d79}\x{a77d} 
   2378  0: \x{1d79}\x{a77d}
   2379 
   2380 /\x{a77d}\x{1d79}/utf
   2381     \x{a77d}\x{1d79}
   2382  0: \x{a77d}\x{1d79}
   2383 \= Expect no match 
   2384     \x{1d79}\x{a77d} 
   2385 No match
   2386 
   2387 /(A)\1/i,utf
   2388     AA
   2389  0: AA
   2390  1: A
   2391     Aa
   2392  0: Aa
   2393  1: A
   2394     aa
   2395  0: aa
   2396  1: a
   2397     aA
   2398  0: aA
   2399  1: a
   2400 
   2401 /(\x{10a})\1/i,utf
   2402     \x{10a}\x{10a}
   2403  0: \x{10a}\x{10a}
   2404  1: \x{10a}
   2405     \x{10a}\x{10b}
   2406  0: \x{10a}\x{10b}
   2407  1: \x{10a}
   2408     \x{10b}\x{10b}
   2409  0: \x{10b}\x{10b}
   2410  1: \x{10b}
   2411     \x{10b}\x{10a}
   2412  0: \x{10b}\x{10a}
   2413  1: \x{10b}
   2414     
   2415 # The next two tests are for property support in non-UTF mode
   2416 
   2417 /(?:\p{Lu}|\x20)+/
   2418     \x41\x20\x50\xC2\x54\xC9\x20\x54\x4F\x44\x41\x59
   2419  0: A P\xc2T\xc9 TODAY
   2420 
   2421 /[\p{Lu}\x20]+/
   2422     \x41\x20\x50\xC2\x54\xC9\x20\x54\x4F\x44\x41\x59
   2423  0: A P\xc2T\xc9 TODAY
   2424 
   2425 /\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
   2426     \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}
   2427  0: \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{800}\x{1aad}\x{aac0}
   2428 
   2429 /^\w+/utf,ucp
   2430     Az_\x{aa}\x{c0}\x{1c5}\x{2b0}\x{3b6}\x{1d7c9}\x{2fa1d}1\x{660}\x{bef}\x{16ee}
   2431  0: Az_\x{aa}\x{c0}\x{1c5}\x{2b0}\x{3b6}\x{1d7c9}\x{2fa1d}1\x{660}\x{bef}\x{16ee}
   2432 
   2433 /^[[:xdigit:]]*/utf,ucp
   2434     1a\x{660}\x{bef}\x{16ee}
   2435  0: 1a
   2436   
   2437 /^\d+/utf,ucp
   2438     1\x{660}\x{bef}\x{16ee}
   2439  0: 1\x{660}\x{bef}
   2440   
   2441 /^[[:digit:]]+/utf,ucp
   2442     1\x{660}\x{bef}\x{16ee}
   2443  0: 1\x{660}\x{bef}
   2444 
   2445 /^>\s+/utf,ucp
   2446     >\x{20}\x{a0}\x{1680}\x{2028}\x{2029}\x{202f}\x{9}\x{b} 
   2447  0: > \x{a0}\x{1680}\x{2028}\x{2029}\x{202f}\x{09}\x{0b}
   2448   
   2449 /^>\pZ+/utf,ucp
   2450     >\x{20}\x{a0}\x{1680}\x{2028}\x{2029}\x{202f}\x{9}\x{b} 
   2451  0: > \x{a0}\x{1680}\x{2028}\x{2029}\x{202f}
   2452   
   2453 /^>[[:space:]]*/utf,ucp
   2454     >\x{20}\x{a0}\x{1680}\x{2028}\x{2029}\x{202f}\x{9}\x{b} 
   2455  0: > \x{a0}\x{1680}\x{2028}\x{2029}\x{202f}\x{09}\x{0b}
   2456 
   2457 /^>[[:blank:]]*/utf,ucp
   2458     >\x{20}\x{a0}\x{1680}\x{2000}\x{202f}\x{9}\x{b}\x{2028} 
   2459  0: > \x{a0}\x{1680}\x{2000}\x{202f}\x{09}
   2460 
   2461 /^[[:alpha:]]*/utf,ucp
   2462     Az\x{aa}\x{c0}\x{1c5}\x{2b0}\x{3b6}\x{1d7c9}\x{2fa1d}
   2463  0: Az\x{aa}\x{c0}\x{1c5}\x{2b0}\x{3b6}\x{1d7c9}\x{2fa1d}
   2464 
   2465 /^[[:alnum:]]*/utf,ucp
   2466     Az\x{aa}\x{c0}\x{1c5}\x{2b0}\x{3b6}\x{1d7c9}\x{2fa1d}1\x{660}\x{bef}\x{16ee}
   2467  0: Az\x{aa}\x{c0}\x{1c5}\x{2b0}\x{3b6}\x{1d7c9}\x{2fa1d}1\x{660}\x{bef}\x{16ee}
   2468 
   2469 /^[[:cntrl:]]*/utf,ucp
   2470     \x{0}\x{09}\x{1f}\x{7f}\x{9f} 
   2471  0: \x{00}\x{09}\x{1f}\x{7f}\x{9f}
   2472 
   2473 /^[[:graph:]]*/utf,ucp
   2474     A\x{a1}\x{a0}
   2475  0: A\x{a1}
   2476 
   2477 /^[[:print:]]*/utf,ucp
   2478     A z\x{a0}\x{a1}
   2479  0: A z\x{a0}\x{a1}
   2480 
   2481 /^[[:punct:]]*/utf,ucp
   2482     .+\x{a1}\x{a0}
   2483  0: .+\x{a1}
   2484 
   2485 /\p{Zs}*?\R/
   2486 \= Expect no match
   2487     a\xFCb   
   2488 No match
   2489 
   2490 /\p{Zs}*\R/
   2491 \= Expect no match 
   2492     a\xFCb   
   2493 No match
   2494 
   2495 //i,utf
   2496     
   2497  0: \x{2c65}
   2498     x 
   2499  0: \x{23a}
   2500      
   2501  0: \x{23a}
   2502 
   2503 /[]/i,utf
   2504     
   2505  0: \x{2c65}
   2506     x 
   2507  0: \x{23a}
   2508      
   2509  0: \x{23a}
   2510 
   2511 //i,utf
   2512     
   2513  0: \x{23a}
   2514     
   2515  0: \x{2c65}
   2516     
   2517 # These are tests for extended grapheme clusters  
   2518 
   2519 /^\X/utf,aftertext
   2520     G\x{34e}\x{34e}X
   2521  0: G\x{34e}\x{34e}
   2522  0+ X
   2523     \x{34e}\x{34e}X
   2524  0: \x{34e}\x{34e}
   2525  0+ X
   2526     \x04X
   2527  0: \x{04}
   2528  0+ X
   2529     \x{1100}X
   2530  0: \x{1100}
   2531  0+ X
   2532     \x{1100}\x{34e}X
   2533  0: \x{1100}\x{34e}
   2534  0+ X
   2535     \x{1b04}\x{1b04}X 
   2536  0: \x{1b04}\x{1b04}
   2537  0+ X
   2538     *These match up to the roman letters
   2539  0: *
   2540  0+ These match up to the roman letters
   2541     \x{1111}\x{1111}L,L
   2542  0: \x{1111}\x{1111}
   2543  0+ L,L
   2544     \x{1111}\x{1111}\x{1169}L,L,V
   2545  0: \x{1111}\x{1111}\x{1169}
   2546  0+ L,L,V
   2547     \x{1111}\x{ae4c}L, LV
   2548  0: \x{1111}\x{ae4c}
   2549  0+ L, LV
   2550     \x{1111}\x{ad89}L, LVT
   2551  0: \x{1111}\x{ad89}
   2552  0+ L, LVT
   2553     \x{1111}\x{ae4c}\x{1169}L, LV, V
   2554  0: \x{1111}\x{ae4c}\x{1169}
   2555  0+ L, LV, V
   2556     \x{1111}\x{ae4c}\x{1169}\x{1169}L, LV, V, V
   2557  0: \x{1111}\x{ae4c}\x{1169}\x{1169}
   2558  0+ L, LV, V, V
   2559     \x{1111}\x{ae4c}\x{1169}\x{11fe}L, LV, V, T
   2560  0: \x{1111}\x{ae4c}\x{1169}\x{11fe}
   2561  0+ L, LV, V, T
   2562     \x{1111}\x{ad89}\x{11fe}L, LVT, T
   2563  0: \x{1111}\x{ad89}\x{11fe}
   2564  0+ L, LVT, T
   2565     \x{1111}\x{ad89}\x{11fe}\x{11fe}L, LVT, T, T
   2566  0: \x{1111}\x{ad89}\x{11fe}\x{11fe}
   2567  0+ L, LVT, T, T
   2568     \x{ad89}\x{11fe}\x{11fe}LVT, T, T
   2569  0: \x{ad89}\x{11fe}\x{11fe}
   2570  0+ LVT, T, T
   2571     *These match just the first codepoint (invalid sequence)
   2572  0: *
   2573  0+ These match just the first codepoint (invalid sequence)
   2574     \x{1111}\x{11fe}L, T
   2575  0: \x{1111}
   2576  0+ \x{11fe}L, T
   2577     \x{ae4c}\x{1111}LV, L
   2578  0: \x{ae4c}
   2579  0+ \x{1111}LV, L
   2580     \x{ae4c}\x{ae4c}LV, LV
   2581  0: \x{ae4c}
   2582  0+ \x{ae4c}LV, LV
   2583     \x{ae4c}\x{ad89}LV, LVT
   2584  0: \x{ae4c}
   2585  0+ \x{ad89}LV, LVT
   2586     \x{1169}\x{1111}V, L
   2587  0: \x{1169}
   2588  0+ \x{1111}V, L
   2589     \x{1169}\x{ae4c}V, LV
   2590  0: \x{1169}
   2591  0+ \x{ae4c}V, LV
   2592     \x{1169}\x{ad89}V, LVT
   2593  0: \x{1169}
   2594  0+ \x{ad89}V, LVT
   2595     \x{ad89}\x{1111}LVT, L
   2596  0: \x{ad89}
   2597  0+ \x{1111}LVT, L
   2598     \x{ad89}\x{1169}LVT, V
   2599  0: \x{ad89}
   2600  0+ \x{1169}LVT, V
   2601     \x{ad89}\x{ae4c}LVT, LV
   2602  0: \x{ad89}
   2603  0+ \x{ae4c}LVT, LV
   2604     \x{ad89}\x{ad89}LVT, LVT
   2605  0: \x{ad89}
   2606  0+ \x{ad89}LVT, LVT
   2607     \x{11fe}\x{1111}T, L
   2608  0: \x{11fe}
   2609  0+ \x{1111}T, L
   2610     \x{11fe}\x{1169}T, V
   2611  0: \x{11fe}
   2612  0+ \x{1169}T, V
   2613     \x{11fe}\x{ae4c}T, LV
   2614  0: \x{11fe}
   2615  0+ \x{ae4c}T, LV
   2616     \x{11fe}\x{ad89}T, LVT
   2617  0: \x{11fe}
   2618  0+ \x{ad89}T, LVT
   2619     *Test extend and spacing mark
   2620  0: *
   2621  0+ Test extend and spacing mark
   2622     \x{1111}\x{ae4c}\x{0711}L, LV, extend
   2623  0: \x{1111}\x{ae4c}\x{711}
   2624  0+ L, LV, extend
   2625     \x{1111}\x{ae4c}\x{1b04}L, LV, spacing mark
   2626  0: \x{1111}\x{ae4c}\x{1b04}
   2627  0+ L, LV, spacing mark
   2628     \x{1111}\x{ae4c}\x{1b04}\x{0711}\x{1b04}L, LV, spacing mark, extend, spacing mark
   2629  0: \x{1111}\x{ae4c}\x{1b04}\x{711}\x{1b04}
   2630  0+ L, LV, spacing mark, extend, spacing mark
   2631     *Test CR, LF, and control
   2632  0: *
   2633  0+ Test CR, LF, and control
   2634     \x0d\x{0711}CR, extend
   2635  0: \x{0d}
   2636  0+ \x{711}CR, extend
   2637     \x0d\x{1b04}CR, spacingmark
   2638  0: \x{0d}
   2639  0+ \x{1b04}CR, spacingmark
   2640     \x0a\x{0711}LF, extend
   2641  0: \x{0a}
   2642  0+ \x{711}LF, extend
   2643     \x0a\x{1b04}LF, spacingmark
   2644  0: \x{0a}
   2645  0+ \x{1b04}LF, spacingmark
   2646     \x0b\x{0711}Control, extend
   2647  0: \x{0b}
   2648  0+ \x{711}Control, extend
   2649     \x09\x{1b04}Control, spacingmark
   2650  0: \x{09}
   2651  0+ \x{1b04}Control, spacingmark
   2652     *There are no Prepend characters, so we can't test Prepend, CR
   2653  0: *
   2654  0+ There are no Prepend characters, so we can't test Prepend, CR
   2655     
   2656 /^(?>\X{2})X/utf,aftertext
   2657     \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
   2658  0: \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
   2659  0+ 
   2660     
   2661 /^\X{2,4}X/utf,aftertext
   2662     \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
   2663  0: \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
   2664  0+ 
   2665     \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
   2666  0: \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
   2667  0+ 
   2668     \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
   2669  0: \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
   2670  0+ 
   2671 
   2672 /^\X{2,4}?X/utf,aftertext
   2673     \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
   2674  0: \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
   2675  0+ 
   2676     \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
   2677  0: \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
   2678  0+ 
   2679     \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
   2680  0: \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
   2681  0+ 
   2682 
   2683 /\X*Z/utf,no_start_optimize
   2684 \= Expect no match
   2685     A\x{300}
   2686 No match
   2687 
   2688 /\X*(.)/utf,no_start_optimize
   2689     A\x{1111}\x{ae4c}\x{1169}
   2690  0: A\x{1111}
   2691  1: \x{1111}
   2692 
   2693 # --------------------------------------------
   2694 
   2695 /\x{1e9e}+/i,utf
   2696     \x{1e9e}\x{00df}
   2697  0: \x{1e9e}\x{df}
   2698 
   2699 /[z\x{1e9e}]+/i,utf
   2700     \x{1e9e}\x{00df}
   2701  0: \x{1e9e}\x{df}
   2702 
   2703 /\x{00df}+/i,utf
   2704     \x{1e9e}\x{00df}
   2705  0: \x{1e9e}\x{df}
   2706 
   2707 /[z\x{00df}]+/i,utf
   2708     \x{1e9e}\x{00df}
   2709  0: \x{1e9e}\x{df}
   2710 
   2711 /\x{1f88}+/i,utf
   2712     \x{1f88}\x{1f80} 
   2713  0: \x{1f88}\x{1f80}
   2714 
   2715 /[z\x{1f88}]+/i,utf
   2716     \x{1f88}\x{1f80} 
   2717  0: \x{1f88}\x{1f80}
   2718     
   2719 # Characters with more than one other case; test in classes 
   2720 
   2721 /[z\x{00b5}]+/i,utf
   2722     \x{00b5}\x{039c}\x{03bc}
   2723  0: \x{b5}\x{39c}\x{3bc}
   2724 
   2725 /[z\x{039c}]+/i,utf
   2726     \x{00b5}\x{039c}\x{03bc}
   2727  0: \x{b5}\x{39c}\x{3bc}
   2728 
   2729 /[z\x{03bc}]+/i,utf
   2730     \x{00b5}\x{039c}\x{03bc}
   2731  0: \x{b5}\x{39c}\x{3bc}
   2732 
   2733 /[z\x{00c5}]+/i,utf
   2734     \x{00c5}\x{00e5}\x{212b}
   2735  0: \x{c5}\x{e5}\x{212b}
   2736 
   2737 /[z\x{00e5}]+/i,utf
   2738     \x{00c5}\x{00e5}\x{212b}
   2739  0: \x{c5}\x{e5}\x{212b}
   2740 
   2741 /[z\x{212b}]+/i,utf
   2742     \x{00c5}\x{00e5}\x{212b}
   2743  0: \x{c5}\x{e5}\x{212b}
   2744 
   2745 /[z\x{01c4}]+/i,utf
   2746     \x{01c4}\x{01c5}\x{01c6}
   2747  0: \x{1c4}\x{1c5}\x{1c6}
   2748 
   2749 /[z\x{01c5}]+/i,utf
   2750     \x{01c4}\x{01c5}\x{01c6}
   2751  0: \x{1c4}\x{1c5}\x{1c6}
   2752 
   2753 /[z\x{01c6}]+/i,utf
   2754     \x{01c4}\x{01c5}\x{01c6}
   2755  0: \x{1c4}\x{1c5}\x{1c6}
   2756 
   2757 /[z\x{01c7}]+/i,utf
   2758     \x{01c7}\x{01c8}\x{01c9}
   2759  0: \x{1c7}\x{1c8}\x{1c9}
   2760 
   2761 /[z\x{01c8}]+/i,utf
   2762     \x{01c7}\x{01c8}\x{01c9}
   2763  0: \x{1c7}\x{1c8}\x{1c9}
   2764 
   2765 /[z\x{01c9}]+/i,utf
   2766     \x{01c7}\x{01c8}\x{01c9}
   2767  0: \x{1c7}\x{1c8}\x{1c9}
   2768 
   2769 /[z\x{01ca}]+/i,utf
   2770     \x{01ca}\x{01cb}\x{01cc}
   2771  0: \x{1ca}\x{1cb}\x{1cc}
   2772 
   2773 /[z\x{01cb}]+/i,utf
   2774     \x{01ca}\x{01cb}\x{01cc}
   2775  0: \x{1ca}\x{1cb}\x{1cc}
   2776 
   2777 /[z\x{01cc}]+/i,utf
   2778     \x{01ca}\x{01cb}\x{01cc}
   2779  0: \x{1ca}\x{1cb}\x{1cc}
   2780 
   2781 /[z\x{01f1}]+/i,utf
   2782     \x{01f1}\x{01f2}\x{01f3}
   2783  0: \x{1f1}\x{1f2}\x{1f3}
   2784 
   2785 /[z\x{01f2}]+/i,utf
   2786     \x{01f1}\x{01f2}\x{01f3}
   2787  0: \x{1f1}\x{1f2}\x{1f3}
   2788 
   2789 /[z\x{01f3}]+/i,utf
   2790     \x{01f1}\x{01f2}\x{01f3}
   2791  0: \x{1f1}\x{1f2}\x{1f3}
   2792 
   2793 /[z\x{0345}]+/i,utf
   2794     \x{0345}\x{0399}\x{03b9}\x{1fbe}
   2795  0: \x{345}\x{399}\x{3b9}\x{1fbe}
   2796 
   2797 /[z\x{0399}]+/i,utf
   2798     \x{0345}\x{0399}\x{03b9}\x{1fbe}
   2799  0: \x{345}\x{399}\x{3b9}\x{1fbe}
   2800 
   2801 /[z\x{03b9}]+/i,utf
   2802     \x{0345}\x{0399}\x{03b9}\x{1fbe}
   2803  0: \x{345}\x{399}\x{3b9}\x{1fbe}
   2804 
   2805 /[z\x{1fbe}]+/i,utf
   2806     \x{0345}\x{0399}\x{03b9}\x{1fbe}
   2807  0: \x{345}\x{399}\x{3b9}\x{1fbe}
   2808 
   2809 /[z\x{0392}]+/i,utf
   2810     \x{0392}\x{03b2}\x{03d0}
   2811  0: \x{392}\x{3b2}\x{3d0}
   2812 
   2813 /[z\x{03b2}]+/i,utf
   2814     \x{0392}\x{03b2}\x{03d0}
   2815  0: \x{392}\x{3b2}\x{3d0}
   2816 
   2817 /[z\x{03d0}]+/i,utf
   2818     \x{0392}\x{03b2}\x{03d0}
   2819  0: \x{392}\x{3b2}\x{3d0}
   2820 
   2821 /[z\x{0395}]+/i,utf
   2822     \x{0395}\x{03b5}\x{03f5}
   2823  0: \x{395}\x{3b5}\x{3f5}
   2824 
   2825 /[z\x{03b5}]+/i,utf
   2826     \x{0395}\x{03b5}\x{03f5}
   2827  0: \x{395}\x{3b5}\x{3f5}
   2828 
   2829 /[z\x{03f5}]+/i,utf
   2830     \x{0395}\x{03b5}\x{03f5}
   2831  0: \x{395}\x{3b5}\x{3f5}
   2832 
   2833 /[z\x{0398}]+/i,utf
   2834     \x{0398}\x{03b8}\x{03d1}\x{03f4}
   2835  0: \x{398}\x{3b8}\x{3d1}\x{3f4}
   2836 
   2837 /[z\x{03b8}]+/i,utf
   2838     \x{0398}\x{03b8}\x{03d1}\x{03f4}
   2839  0: \x{398}\x{3b8}\x{3d1}\x{3f4}
   2840 
   2841 /[z\x{03d1}]+/i,utf
   2842     \x{0398}\x{03b8}\x{03d1}\x{03f4}
   2843  0: \x{398}\x{3b8}\x{3d1}\x{3f4}
   2844 
   2845 /[z\x{03f4}]+/i,utf
   2846     \x{0398}\x{03b8}\x{03d1}\x{03f4}
   2847  0: \x{398}\x{3b8}\x{3d1}\x{3f4}
   2848 
   2849 /[z\x{039a}]+/i,utf
   2850     \x{039a}\x{03ba}\x{03f0}
   2851  0: \x{39a}\x{3ba}\x{3f0}
   2852 
   2853 /[z\x{03ba}]+/i,utf
   2854     \x{039a}\x{03ba}\x{03f0}
   2855  0: \x{39a}\x{3ba}\x{3f0}
   2856 
   2857 /[z\x{03f0}]+/i,utf
   2858     \x{039a}\x{03ba}\x{03f0}
   2859  0: \x{39a}\x{3ba}\x{3f0}
   2860 
   2861 /[z\x{03a0}]+/i,utf
   2862     \x{03a0}\x{03c0}\x{03d6} 
   2863  0: \x{3a0}\x{3c0}\x{3d6}
   2864 
   2865 /[z\x{03c0}]+/i,utf
   2866     \x{03a0}\x{03c0}\x{03d6} 
   2867  0: \x{3a0}\x{3c0}\x{3d6}
   2868 
   2869 /[z\x{03d6}]+/i,utf
   2870     \x{03a0}\x{03c0}\x{03d6} 
   2871  0: \x{3a0}\x{3c0}\x{3d6}
   2872 
   2873 /[z\x{03a1}]+/i,utf
   2874     \x{03a1}\x{03c1}\x{03f1}
   2875  0: \x{3a1}\x{3c1}\x{3f1}
   2876 
   2877 /[z\x{03c1}]+/i,utf
   2878     \x{03a1}\x{03c1}\x{03f1}
   2879  0: \x{3a1}\x{3c1}\x{3f1}
   2880 
   2881 /[z\x{03f1}]+/i,utf
   2882     \x{03a1}\x{03c1}\x{03f1}
   2883  0: \x{3a1}\x{3c1}\x{3f1}
   2884 
   2885 /[z\x{03a3}]+/i,utf
   2886     \x{03A3}\x{03C2}\x{03C3}
   2887  0: \x{3a3}\x{3c2}\x{3c3}
   2888 
   2889 /[z\x{03c2}]+/i,utf
   2890     \x{03A3}\x{03C2}\x{03C3}
   2891  0: \x{3a3}\x{3c2}\x{3c3}
   2892 
   2893 /[z\x{03c3}]+/i,utf
   2894     \x{03A3}\x{03C2}\x{03C3}
   2895  0: \x{3a3}\x{3c2}\x{3c3}
   2896 
   2897 /[z\x{03a6}]+/i,utf
   2898     \x{03a6}\x{03c6}\x{03d5} 
   2899  0: \x{3a6}\x{3c6}\x{3d5}
   2900 
   2901 /[z\x{03c6}]+/i,utf
   2902     \x{03a6}\x{03c6}\x{03d5} 
   2903  0: \x{3a6}\x{3c6}\x{3d5}
   2904 
   2905 /[z\x{03d5}]+/i,utf
   2906     \x{03a6}\x{03c6}\x{03d5} 
   2907  0: \x{3a6}\x{3c6}\x{3d5}
   2908 
   2909 /[z\x{03c9}]+/i,utf
   2910     \x{03c9}\x{03a9}\x{2126}
   2911  0: \x{3c9}\x{3a9}\x{2126}
   2912 
   2913 /[z\x{03a9}]+/i,utf
   2914     \x{03c9}\x{03a9}\x{2126}
   2915  0: \x{3c9}\x{3a9}\x{2126}
   2916 
   2917 /[z\x{2126}]+/i,utf
   2918     \x{03c9}\x{03a9}\x{2126}
   2919  0: \x{3c9}\x{3a9}\x{2126}
   2920 
   2921 /[z\x{1e60}]+/i,utf
   2922     \x{1e60}\x{1e61}\x{1e9b}
   2923  0: \x{1e60}\x{1e61}\x{1e9b}
   2924 
   2925 /[z\x{1e61}]+/i,utf
   2926     \x{1e60}\x{1e61}\x{1e9b}
   2927  0: \x{1e60}\x{1e61}\x{1e9b}
   2928 
   2929 /[z\x{1e9b}]+/i,utf
   2930     \x{1e60}\x{1e61}\x{1e9b}
   2931  0: \x{1e60}\x{1e61}\x{1e9b}
   2932 
   2933 # Perl 5.12.4 gets these wrong, but 5.15.3 is OK 
   2934 
   2935 /[z\x{004b}]+/i,utf
   2936     \x{004b}\x{006b}\x{212a}
   2937  0: Kk\x{212a}
   2938 
   2939 /[z\x{006b}]+/i,utf
   2940     \x{004b}\x{006b}\x{212a}
   2941  0: Kk\x{212a}
   2942 
   2943 /[z\x{212a}]+/i,utf
   2944     \x{004b}\x{006b}\x{212a}
   2945  0: Kk\x{212a}
   2946 
   2947 /[z\x{0053}]+/i,utf
   2948     \x{0053}\x{0073}\x{017f}
   2949  0: Ss\x{17f}
   2950 
   2951 /[z\x{0073}]+/i,utf
   2952     \x{0053}\x{0073}\x{017f}
   2953  0: Ss\x{17f}
   2954 
   2955 /[z\x{017f}]+/i,utf
   2956     \x{0053}\x{0073}\x{017f}
   2957  0: Ss\x{17f}
   2958     
   2959 # --------------------------------------  
   2960 
   2961 /() \1/i,utf
   2962      
   2963  0: \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3} \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3}
   2964  1: \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3}
   2965      
   2966  0: \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3} \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2}
   2967  1: \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3}
   2968      
   2969  0: \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2} \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2}
   2970  1: \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2}
   2971      
   2972  0: \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2} \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c3}
   2973  1: \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2}
   2974        
   2975  0: \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2} \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3}
   2976  1: \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2}
   2977 
   2978 /() \1/i,utf
   2979      
   2980  0: \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3} \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3}
   2981  1: \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3}
   2982      
   2983  0: \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3} \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2}
   2984  1: \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3}
   2985      
   2986  0: \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2} \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2}
   2987  1: \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2}
   2988      
   2989  0: \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2} \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c3}
   2990  1: \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2}
   2991        
   2992  0: \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2} \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3}
   2993  1: \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2}
   2994 
   2995 /() \1*/i,utf
   2996     \x20
   2997  0: \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3} 
   2998  1: \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3}
   2999      
   3000  0: \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3} \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3}\x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2}\x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2}
   3001  1: \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3}
   3002 
   3003 # Perl matches these 
   3004 
   3005 /\x{00b5}+/i,utf
   3006     \x{00b5}\x{039c}\x{03bc}
   3007  0: \x{b5}\x{39c}\x{3bc}
   3008 
   3009 /\x{039c}+/i,utf
   3010     \x{00b5}\x{039c}\x{03bc}
   3011  0: \x{b5}\x{39c}\x{3bc}
   3012 
   3013 /\x{03bc}+/i,utf
   3014     \x{00b5}\x{039c}\x{03bc}
   3015  0: \x{b5}\x{39c}\x{3bc}
   3016 
   3017 
   3018 /\x{00c5}+/i,utf
   3019     \x{00c5}\x{00e5}\x{212b}
   3020  0: \x{c5}\x{e5}\x{212b}
   3021 
   3022 /\x{00e5}+/i,utf
   3023     \x{00c5}\x{00e5}\x{212b}
   3024  0: \x{c5}\x{e5}\x{212b}
   3025 
   3026 /\x{212b}+/i,utf
   3027     \x{00c5}\x{00e5}\x{212b}
   3028  0: \x{c5}\x{e5}\x{212b}
   3029 
   3030 
   3031 /\x{01c4}+/i,utf
   3032     \x{01c4}\x{01c5}\x{01c6}
   3033  0: \x{1c4}\x{1c5}\x{1c6}
   3034 
   3035 /\x{01c5}+/i,utf
   3036     \x{01c4}\x{01c5}\x{01c6}
   3037  0: \x{1c4}\x{1c5}\x{1c6}
   3038 
   3039 /\x{01c6}+/i,utf
   3040     \x{01c4}\x{01c5}\x{01c6}
   3041  0: \x{1c4}\x{1c5}\x{1c6}
   3042 
   3043 
   3044 /\x{01c7}+/i,utf
   3045     \x{01c7}\x{01c8}\x{01c9}
   3046  0: \x{1c7}\x{1c8}\x{1c9}
   3047 
   3048 /\x{01c8}+/i,utf
   3049     \x{01c7}\x{01c8}\x{01c9}
   3050  0: \x{1c7}\x{1c8}\x{1c9}
   3051 
   3052 /\x{01c9}+/i,utf
   3053     \x{01c7}\x{01c8}\x{01c9}
   3054  0: \x{1c7}\x{1c8}\x{1c9}
   3055 
   3056 
   3057 /\x{01ca}+/i,utf
   3058     \x{01ca}\x{01cb}\x{01cc}
   3059  0: \x{1ca}\x{1cb}\x{1cc}
   3060 
   3061 /\x{01cb}+/i,utf
   3062     \x{01ca}\x{01cb}\x{01cc}
   3063  0: \x{1ca}\x{1cb}\x{1cc}
   3064 
   3065 /\x{01cc}+/i,utf
   3066     \x{01ca}\x{01cb}\x{01cc}
   3067  0: \x{1ca}\x{1cb}\x{1cc}
   3068 
   3069 
   3070 /\x{01f1}+/i,utf
   3071     \x{01f1}\x{01f2}\x{01f3}
   3072  0: \x{1f1}\x{1f2}\x{1f3}
   3073 
   3074 /\x{01f2}+/i,utf
   3075     \x{01f1}\x{01f2}\x{01f3}
   3076  0: \x{1f1}\x{1f2}\x{1f3}
   3077 
   3078 /\x{01f3}+/i,utf
   3079     \x{01f1}\x{01f2}\x{01f3}
   3080  0: \x{1f1}\x{1f2}\x{1f3}
   3081 
   3082 
   3083 /\x{0345}+/i,utf
   3084     \x{0345}\x{0399}\x{03b9}\x{1fbe}
   3085  0: \x{345}\x{399}\x{3b9}\x{1fbe}
   3086 
   3087 /\x{0399}+/i,utf
   3088     \x{0345}\x{0399}\x{03b9}\x{1fbe}
   3089  0: \x{345}\x{399}\x{3b9}\x{1fbe}
   3090 
   3091 /\x{03b9}+/i,utf
   3092     \x{0345}\x{0399}\x{03b9}\x{1fbe}
   3093  0: \x{345}\x{399}\x{3b9}\x{1fbe}
   3094 
   3095 /\x{1fbe}+/i,utf
   3096     \x{0345}\x{0399}\x{03b9}\x{1fbe}
   3097  0: \x{345}\x{399}\x{3b9}\x{1fbe}
   3098 
   3099 
   3100 /\x{0392}+/i,utf
   3101     \x{0392}\x{03b2}\x{03d0}
   3102  0: \x{392}\x{3b2}\x{3d0}
   3103 
   3104 /\x{03b2}+/i,utf
   3105     \x{0392}\x{03b2}\x{03d0}
   3106  0: \x{392}\x{3b2}\x{3d0}
   3107 
   3108 /\x{03d0}+/i,utf
   3109     \x{0392}\x{03b2}\x{03d0}
   3110  0: \x{392}\x{3b2}\x{3d0}
   3111     
   3112 
   3113 /\x{0395}+/i,utf
   3114     \x{0395}\x{03b5}\x{03f5}
   3115  0: \x{395}\x{3b5}\x{3f5}
   3116 
   3117 /\x{03b5}+/i,utf
   3118     \x{0395}\x{03b5}\x{03f5}
   3119  0: \x{395}\x{3b5}\x{3f5}
   3120 
   3121 /\x{03f5}+/i,utf
   3122     \x{0395}\x{03b5}\x{03f5}
   3123  0: \x{395}\x{3b5}\x{3f5}
   3124 
   3125 
   3126 /\x{0398}+/i,utf
   3127     \x{0398}\x{03b8}\x{03d1}\x{03f4}
   3128  0: \x{398}\x{3b8}\x{3d1}\x{3f4}
   3129 
   3130 /\x{03b8}+/i,utf
   3131     \x{0398}\x{03b8}\x{03d1}\x{03f4}
   3132  0: \x{398}\x{3b8}\x{3d1}\x{3f4}
   3133 
   3134 /\x{03d1}+/i,utf
   3135     \x{0398}\x{03b8}\x{03d1}\x{03f4}
   3136  0: \x{398}\x{3b8}\x{3d1}\x{3f4}
   3137 
   3138 /\x{03f4}+/i,utf
   3139     \x{0398}\x{03b8}\x{03d1}\x{03f4}
   3140  0: \x{398}\x{3b8}\x{3d1}\x{3f4}
   3141     
   3142 
   3143 /\x{039a}+/i,utf
   3144     \x{039a}\x{03ba}\x{03f0}
   3145  0: \x{39a}\x{3ba}\x{3f0}
   3146 
   3147 /\x{03ba}+/i,utf
   3148     \x{039a}\x{03ba}\x{03f0}
   3149  0: \x{39a}\x{3ba}\x{3f0}
   3150 
   3151 /\x{03f0}+/i,utf
   3152     \x{039a}\x{03ba}\x{03f0}
   3153  0: \x{39a}\x{3ba}\x{3f0}
   3154     
   3155 
   3156 /\x{03a0}+/i,utf
   3157     \x{03a0}\x{03c0}\x{03d6} 
   3158  0: \x{3a0}\x{3c0}\x{3d6}
   3159 
   3160 /\x{03c0}+/i,utf
   3161     \x{03a0}\x{03c0}\x{03d6} 
   3162  0: \x{3a0}\x{3c0}\x{3d6}
   3163 
   3164 /\x{03d6}+/i,utf
   3165     \x{03a0}\x{03c0}\x{03d6} 
   3166  0: \x{3a0}\x{3c0}\x{3d6}
   3167 
   3168 
   3169 /\x{03a1}+/i,utf
   3170     \x{03a1}\x{03c1}\x{03f1}
   3171  0: \x{3a1}\x{3c1}\x{3f1}
   3172 
   3173 /\x{03c1}+/i,utf
   3174     \x{03a1}\x{03c1}\x{03f1}
   3175  0: \x{3a1}\x{3c1}\x{3f1}
   3176 
   3177 /\x{03f1}+/i,utf
   3178     \x{03a1}\x{03c1}\x{03f1}
   3179  0: \x{3a1}\x{3c1}\x{3f1}
   3180 
   3181 
   3182 /\x{03a3}+/i,utf
   3183     \x{03A3}\x{03C2}\x{03C3}
   3184  0: \x{3a3}\x{3c2}\x{3c3}
   3185 
   3186 /\x{03c2}+/i,utf
   3187     \x{03A3}\x{03C2}\x{03C3}
   3188  0: \x{3a3}\x{3c2}\x{3c3}
   3189 
   3190 /\x{03c3}+/i,utf
   3191     \x{03A3}\x{03C2}\x{03C3}
   3192  0: \x{3a3}\x{3c2}\x{3c3}
   3193     
   3194 
   3195 /\x{03a6}+/i,utf
   3196     \x{03a6}\x{03c6}\x{03d5} 
   3197  0: \x{3a6}\x{3c6}\x{3d5}
   3198 
   3199 /\x{03c6}+/i,utf
   3200     \x{03a6}\x{03c6}\x{03d5} 
   3201  0: \x{3a6}\x{3c6}\x{3d5}
   3202 
   3203 /\x{03d5}+/i,utf
   3204     \x{03a6}\x{03c6}\x{03d5} 
   3205  0: \x{3a6}\x{3c6}\x{3d5}
   3206 
   3207 
   3208 /\x{03c9}+/i,utf
   3209     \x{03c9}\x{03a9}\x{2126}
   3210  0: \x{3c9}\x{3a9}\x{2126}
   3211 
   3212 /\x{03a9}+/i,utf
   3213     \x{03c9}\x{03a9}\x{2126}
   3214  0: \x{3c9}\x{3a9}\x{2126}
   3215 
   3216 /\x{2126}+/i,utf
   3217     \x{03c9}\x{03a9}\x{2126}
   3218  0: \x{3c9}\x{3a9}\x{2126}
   3219     
   3220 
   3221 /\x{1e60}+/i,utf
   3222     \x{1e60}\x{1e61}\x{1e9b}
   3223  0: \x{1e60}\x{1e61}\x{1e9b}
   3224 
   3225 /\x{1e61}+/i,utf
   3226     \x{1e60}\x{1e61}\x{1e9b}
   3227  0: \x{1e60}\x{1e61}\x{1e9b}
   3228 
   3229 /\x{1e9b}+/i,utf
   3230     \x{1e60}\x{1e61}\x{1e9b}
   3231  0: \x{1e60}\x{1e61}\x{1e9b}
   3232     
   3233 
   3234 /\x{1e9e}+/i,utf
   3235     \x{1e9e}\x{00df}
   3236  0: \x{1e9e}\x{df}
   3237 
   3238 /\x{00df}+/i,utf
   3239     \x{1e9e}\x{00df}
   3240  0: \x{1e9e}\x{df}
   3241     
   3242 
   3243 /\x{1f88}+/i,utf
   3244     \x{1f88}\x{1f80} 
   3245  0: \x{1f88}\x{1f80}
   3246 
   3247 /\x{1f80}+/i,utf
   3248     \x{1f88}\x{1f80} 
   3249  0: \x{1f88}\x{1f80}
   3250 
   3251 # Perl 5.12.4 gets these wrong, but 5.15.3 is OK 
   3252 
   3253 /\x{004b}+/i,utf
   3254     \x{004b}\x{006b}\x{212a}
   3255  0: Kk\x{212a}
   3256 
   3257 /\x{006b}+/i,utf
   3258     \x{004b}\x{006b}\x{212a}
   3259  0: Kk\x{212a}
   3260 
   3261 /\x{212a}+/i,utf
   3262     \x{004b}\x{006b}\x{212a}
   3263  0: Kk\x{212a}
   3264 
   3265 
   3266 /\x{0053}+/i,utf
   3267     \x{0053}\x{0073}\x{017f}
   3268  0: Ss\x{17f}
   3269 
   3270 /\x{0073}+/i,utf
   3271     \x{0053}\x{0073}\x{017f}
   3272  0: Ss\x{17f}
   3273 
   3274 /\x{017f}+/i,utf
   3275     \x{0053}\x{0073}\x{017f}
   3276  0: Ss\x{17f}
   3277 
   3278 /^\p{Any}*\d{4}/utf
   3279     1234
   3280  0: 1234
   3281 \= Expect no match
   3282     123 
   3283 No match
   3284 
   3285 /^\X*\w{4}/utf
   3286     1234
   3287  0: 1234
   3288 \= Expect no match
   3289     123  
   3290 No match
   3291 
   3292 /^A\s+Z/utf,ucp
   3293     A\x{2005}Z
   3294  0: A\x{2005}Z
   3295     A\x{85}\x{2005}Z
   3296  0: A\x{85}\x{2005}Z
   3297 
   3298 /^A[\s]+Z/utf,ucp
   3299     A\x{2005}Z
   3300  0: A\x{2005}Z
   3301     A\x{85}\x{2005}Z
   3302  0: A\x{85}\x{2005}Z
   3303 
   3304 /^[[:graph:]]+$/utf,ucp
   3305     Letter:ABC
   3306  0: Letter:ABC
   3307     Mark:\x{300}\x{1d172}\x{1d17b}
   3308  0: Mark:\x{300}\x{1d172}\x{1d17b}
   3309     Number:9\x{660}
   3310  0: Number:9\x{660}
   3311     Punctuation:\x{66a},;
   3312  0: Punctuation:\x{66a},;
   3313     Symbol:\x{6de}<>\x{fffc}
   3314  0: Symbol:\x{6de}<>\x{fffc}
   3315     Cf-property:\x{ad}\x{600}\x{601}\x{602}\x{603}\x{604}\x{6dd}\x{70f}
   3316  0: Cf-property:\x{ad}\x{600}\x{601}\x{602}\x{603}\x{604}\x{6dd}\x{70f}
   3317     \x{200b}\x{200c}\x{200d}\x{200e}\x{200f}
   3318  0: \x{200b}\x{200c}\x{200d}\x{200e}\x{200f}
   3319     \x{202a}\x{202b}\x{202c}\x{202d}\x{202e}
   3320  0: \x{202a}\x{202b}\x{202c}\x{202d}\x{202e}
   3321     \x{2060}\x{2061}\x{2062}\x{2063}\x{2064}
   3322  0: \x{2060}\x{2061}\x{2062}\x{2063}\x{2064}
   3323     \x{206a}\x{206b}\x{206c}\x{206d}\x{206e}\x{206f}
   3324  0: \x{206a}\x{206b}\x{206c}\x{206d}\x{206e}\x{206f}
   3325     \x{feff}
   3326  0: \x{feff}
   3327     \x{fff9}\x{fffa}\x{fffb}
   3328  0: \x{fff9}\x{fffa}\x{fffb}
   3329     \x{110bd}
   3330  0: \x{110bd}
   3331     \x{1d173}\x{1d174}\x{1d175}\x{1d176}\x{1d177}\x{1d178}\x{1d179}\x{1d17a}
   3332  0: \x{1d173}\x{1d174}\x{1d175}\x{1d176}\x{1d177}\x{1d178}\x{1d179}\x{1d17a}
   3333     \x{e0001}
   3334  0: \x{e0001}
   3335     \x{e0020}\x{e0030}\x{e0040}\x{e0050}\x{e0060}\x{e0070}\x{e007f}
   3336  0: \x{e0020}\x{e0030}\x{e0040}\x{e0050}\x{e0060}\x{e0070}\x{e007f}
   3337 \= Expect no match
   3338     \x{09}
   3339 No match
   3340     \x{0a}
   3341 No match
   3342     \x{1D}
   3343 No match
   3344     \x{20}
   3345 No match
   3346     \x{85}
   3347 No match
   3348     \x{a0}
   3349 No match
   3350     \x{1680}
   3351 No match
   3352     \x{2028}
   3353 No match
   3354     \x{2029}
   3355 No match
   3356     \x{202f}
   3357 No match
   3358     \x{2065}
   3359 No match
   3360     \x{3000}
   3361 No match
   3362     \x{e0002}
   3363 No match
   3364     \x{e001f}
   3365 No match
   3366     \x{e0080} 
   3367 No match
   3368 
   3369 /^[[:print:]]+$/utf,ucp
   3370     Space: \x{a0}
   3371  0: Space: \x{a0}
   3372     \x{1680}\x{2000}\x{2001}\x{2002}\x{2003}\x{2004}\x{2005}
   3373  0: \x{1680}\x{2000}\x{2001}\x{2002}\x{2003}\x{2004}\x{2005}
   3374     \x{2006}\x{2007}\x{2008}\x{2009}\x{200a} 
   3375  0: \x{2006}\x{2007}\x{2008}\x{2009}\x{200a}
   3376     \x{202f}\x{205f} 
   3377  0: \x{202f}\x{205f}
   3378     \x{3000}
   3379  0: \x{3000}
   3380     Letter:ABC
   3381  0: Letter:ABC
   3382     Mark:\x{300}\x{1d172}\x{1d17b}
   3383  0: Mark:\x{300}\x{1d172}\x{1d17b}
   3384     Number:9\x{660}
   3385  0: Number:9\x{660}
   3386     Punctuation:\x{66a},;
   3387  0: Punctuation:\x{66a},;
   3388     Symbol:\x{6de}<>\x{fffc}
   3389  0: Symbol:\x{6de}<>\x{fffc}
   3390     Cf-property:\x{ad}\x{600}\x{601}\x{602}\x{603}\x{604}\x{6dd}\x{70f}
   3391  0: Cf-property:\x{ad}\x{600}\x{601}\x{602}\x{603}\x{604}\x{6dd}\x{70f}
   3392     \x{200b}\x{200c}\x{200d}\x{200e}\x{200f}
   3393  0: \x{200b}\x{200c}\x{200d}\x{200e}\x{200f}
   3394     \x{202a}\x{202b}\x{202c}\x{202d}\x{202e}
   3395  0: \x{202a}\x{202b}\x{202c}\x{202d}\x{202e}
   3396     \x{202f}
   3397  0: \x{202f}
   3398     \x{2060}\x{2061}\x{2062}\x{2063}\x{2064}
   3399  0: \x{2060}\x{2061}\x{2062}\x{2063}\x{2064}
   3400     \x{206a}\x{206b}\x{206c}\x{206d}\x{206e}\x{206f}
   3401  0: \x{206a}\x{206b}\x{206c}\x{206d}\x{206e}\x{206f}
   3402     \x{feff}
   3403  0: \x{feff}
   3404     \x{fff9}\x{fffa}\x{fffb}
   3405  0: \x{fff9}\x{fffa}\x{fffb}
   3406     \x{110bd}
   3407  0: \x{110bd}
   3408     \x{1d173}\x{1d174}\x{1d175}\x{1d176}\x{1d177}\x{1d178}\x{1d179}\x{1d17a}
   3409  0: \x{1d173}\x{1d174}\x{1d175}\x{1d176}\x{1d177}\x{1d178}\x{1d179}\x{1d17a}
   3410     \x{e0001}
   3411  0: \x{e0001}
   3412     \x{e0020}\x{e0030}\x{e0040}\x{e0050}\x{e0060}\x{e0070}\x{e007f}
   3413  0: \x{e0020}\x{e0030}\x{e0040}\x{e0050}\x{e0060}\x{e0070}\x{e007f}
   3414 \= Expect no match
   3415     \x{09}
   3416 No match
   3417     \x{1D}
   3418 No match
   3419     \x{85}
   3420 No match
   3421     \x{2028}
   3422 No match
   3423     \x{2029}
   3424 No match
   3425     \x{2065}
   3426 No match
   3427     \x{e0002}
   3428 No match
   3429     \x{e001f}
   3430 No match
   3431     \x{e0080} 
   3432 No match
   3433 
   3434 /^[[:punct:]]+$/utf,ucp
   3435     \$+<=>^`|~
   3436  0: $+<=>^`|~
   3437     !\"#%&'()*,-./:;?@[\\]_{}
   3438  0: !"#%&'()*,-./:;?@[\]_{}
   3439     \x{a1}\x{a7}  
   3440  0: \x{a1}\x{a7}
   3441     \x{37e} 
   3442  0: \x{37e}
   3443 \= Expect no match
   3444     abcde  
   3445 No match
   3446 
   3447 /^[[:^graph:]]+$/utf,ucp
   3448     \x{09}\x{0a}\x{1D}\x{20}\x{85}\x{a0}\x{1680}
   3449  0: \x{09}\x{0a}\x{1d} \x{85}\x{a0}\x{1680}
   3450     \x{2028}\x{2029}\x{202f}\x{2065}
   3451  0: \x{2028}\x{2029}\x{202f}\x{2065}
   3452     \x{3000}\x{e0002}\x{e001f}\x{e0080}
   3453  0: \x{3000}\x{e0002}\x{e001f}\x{e0080}
   3454 \= Expect no match
   3455     Letter:ABC
   3456 No match
   3457     Mark:\x{300}\x{1d172}\x{1d17b}
   3458 No match
   3459     Number:9\x{660}
   3460 No match
   3461     Punctuation:\x{66a},;
   3462 No match
   3463     Symbol:\x{6de}<>\x{fffc}
   3464 No match
   3465     Cf-property:\x{ad}\x{600}\x{601}\x{602}\x{603}\x{604}\x{6dd}\x{70f}
   3466 No match
   3467     \x{200b}\x{200c}\x{200d}\x{200e}\x{200f}
   3468 No match
   3469     \x{202a}\x{202b}\x{202c}\x{202d}\x{202e}
   3470 No match
   3471     \x{2060}\x{2061}\x{2062}\x{2063}\x{2064}
   3472 No match
   3473     \x{206a}\x{206b}\x{206c}\x{206d}\x{206e}\x{206f}
   3474 No match
   3475     \x{feff}
   3476 No match
   3477     \x{fff9}\x{fffa}\x{fffb}
   3478 No match
   3479     \x{110bd}
   3480 No match
   3481     \x{1d173}\x{1d174}\x{1d175}\x{1d176}\x{1d177}\x{1d178}\x{1d179}\x{1d17a}
   3482 No match
   3483     \x{e0001}
   3484 No match
   3485     \x{e0020}\x{e0030}\x{e0040}\x{e0050}\x{e0060}\x{e0070}\x{e007f}
   3486 No match
   3487 
   3488 /^[[:^print:]]+$/utf,ucp
   3489     \x{09}\x{1D}\x{85}\x{2028}\x{2029}\x{2065}
   3490  0: \x{09}\x{1d}\x{85}\x{2028}\x{2029}\x{2065}
   3491     \x{e0002}\x{e001f}\x{e0080}
   3492  0: \x{e0002}\x{e001f}\x{e0080}
   3493 \= Expect no match
   3494     Space: \x{a0}
   3495 No match
   3496     \x{1680}\x{2000}\x{2001}\x{2002}\x{2003}\x{2004}\x{2005}
   3497 No match
   3498     \x{2006}\x{2007}\x{2008}\x{2009}\x{200a} 
   3499 No match
   3500     \x{202f}\x{205f} 
   3501 No match
   3502     \x{3000}
   3503 No match
   3504     Letter:ABC
   3505 No match
   3506     Mark:\x{300}\x{1d172}\x{1d17b}
   3507 No match
   3508     Number:9\x{660}
   3509 No match
   3510     Punctuation:\x{66a},;
   3511 No match
   3512     Symbol:\x{6de}<>\x{fffc}
   3513 No match
   3514     Cf-property:\x{ad}\x{600}\x{601}\x{602}\x{603}\x{604}\x{6dd}\x{70f}
   3515 No match
   3516     \x{200b}\x{200c}\x{200d}\x{200e}\x{200f}
   3517 No match
   3518     \x{202a}\x{202b}\x{202c}\x{202d}\x{202e}
   3519 No match
   3520     \x{202f}
   3521 No match
   3522     \x{2060}\x{2061}\x{2062}\x{2063}\x{2064}
   3523 No match
   3524     \x{206a}\x{206b}\x{206c}\x{206d}\x{206e}\x{206f}
   3525 No match
   3526     \x{feff}
   3527 No match
   3528     \x{fff9}\x{fffa}\x{fffb}
   3529 No match
   3530     \x{110bd}
   3531 No match
   3532     \x{1d173}\x{1d174}\x{1d175}\x{1d176}\x{1d177}\x{1d178}\x{1d179}\x{1d17a}
   3533 No match
   3534     \x{e0001}
   3535 No match
   3536     \x{e0020}\x{e0030}\x{e0040}\x{e0050}\x{e0060}\x{e0070}\x{e007f}
   3537 No match
   3538 
   3539 /^[[:^punct:]]+$/utf,ucp
   3540     abcde  
   3541  0: abcde
   3542 \= Expect no match
   3543     \$+<=>^`|~
   3544 No match
   3545     !\"#%&'()*,-./:;?@[\\]_{}
   3546 No match
   3547     \x{a1}\x{a7}  
   3548 No match
   3549     \x{37e} 
   3550 No match
   3551 
   3552 /[RST]+/i,utf,ucp
   3553     Ss\x{17f}
   3554  0: Ss\x{17f}
   3555     
   3556 /[R-T]+/i,utf,ucp
   3557     Ss\x{17f}
   3558  0: Ss\x{17f}
   3559 
   3560 /[q-u]+/i,utf,ucp
   3561     Ss\x{17f}
   3562  0: Ss\x{17f}
   3563 
   3564 /^s?c/im,utf
   3565     scat
   3566  0: sc
   3567     
   3568 # The next four tests are for repeated caseless back references when the 
   3569 # code unit length of the matched text is different to that of the original
   3570 # group in the UTF-8 case.
   3571 
   3572 /^(\x{23a})\1*(.)/i,utf
   3573     \x{23a}\x{23a}\x{23a}\x{23a}
   3574  0: \x{23a}\x{23a}\x{23a}\x{23a}
   3575  1: \x{23a}
   3576  2: \x{23a}
   3577     \x{23a}\x{2c65}\x{2c65}\x{2c65}
   3578  0: \x{23a}\x{2c65}\x{2c65}\x{2c65}
   3579  1: \x{23a}
   3580  2: \x{2c65}
   3581     \x{23a}\x{23a}\x{2c65}\x{23a}
   3582  0: \x{23a}\x{23a}\x{2c65}\x{23a}
   3583  1: \x{23a}
   3584  2: \x{23a}
   3585 
   3586 /^(\x{23a})\1*(..)/i,utf
   3587     \x{23a}\x{2c65}\x{2c65}\x{2c65}
   3588  0: \x{23a}\x{2c65}\x{2c65}\x{2c65}
   3589  1: \x{23a}
   3590  2: \x{2c65}\x{2c65}
   3591     \x{23a}\x{23a}\x{2c65}\x{23a}
   3592  0: \x{23a}\x{23a}\x{2c65}\x{23a}
   3593  1: \x{23a}
   3594  2: \x{2c65}\x{23a}
   3595 
   3596 /^(\x{23a})\1*(...)/i,utf
   3597     \x{23a}\x{2c65}\x{2c65}\x{2c65}
   3598  0: \x{23a}\x{2c65}\x{2c65}\x{2c65}
   3599  1: \x{23a}
   3600  2: \x{2c65}\x{2c65}\x{2c65}
   3601     \x{23a}\x{23a}\x{2c65}\x{23a}
   3602  0: \x{23a}\x{23a}\x{2c65}\x{23a}
   3603  1: \x{23a}
   3604  2: \x{23a}\x{2c65}\x{23a}
   3605 
   3606 /^(\x{23a})\1*(....)/i,utf
   3607 \= Expect no match
   3608     \x{23a}\x{2c65}\x{2c65}\x{2c65}
   3609 No match
   3610     \x{23a}\x{23a}\x{2c65}\x{23a}
   3611 No match
   3612 
   3613 /[A-`]/i,utf
   3614     abcdefghijklmno
   3615  0: a
   3616 
   3617 "[\S\V\H]"utf
   3618 
   3619 /[^\p{Any}]*+x/utf
   3620     x
   3621  0: x
   3622 
   3623 /[[:punct:]]/utf,ucp
   3624     \x{b4} 
   3625 No match
   3626 
   3627 /[[:^ascii:]]/utf,ucp
   3628     \x{100}
   3629  0: \x{100}
   3630     \x{200}
   3631  0: \x{200}
   3632     \x{300}
   3633  0: \x{300}
   3634     \x{37e}
   3635  0: \x{37e}
   3636 \= Expect no match     
   3637     aa
   3638 No match
   3639     99
   3640 No match
   3641     
   3642 /[[:^ascii:]\w]/utf,ucp
   3643     aa
   3644  0: a
   3645     99
   3646  0: 9
   3647     gg
   3648  0: g
   3649     \x{100}
   3650  0: \x{100}
   3651     \x{200}
   3652  0: \x{200}
   3653     \x{300}
   3654  0: \x{300}
   3655     \x{37e}
   3656  0: \x{37e}
   3657 
   3658 /[\w[:^ascii:]]/utf,ucp
   3659     aa
   3660  0: a
   3661     99
   3662  0: 9
   3663     gg
   3664  0: g
   3665     \x{100}
   3666  0: \x{100}
   3667     \x{200}
   3668  0: \x{200}
   3669     \x{300}
   3670  0: \x{300}
   3671     \x{37e}
   3672  0: \x{37e}
   3673 
   3674 /[^[:ascii:]\W]/utf,ucp
   3675     \x{100}
   3676  0: \x{100}
   3677     \x{200}
   3678  0: \x{200}
   3679 \= Expect no match     
   3680     aa
   3681 No match
   3682     99
   3683 No match
   3684     gg
   3685 No match
   3686     \x{37e}
   3687 No match
   3688 
   3689 /[^[:^ascii:]\d]/utf,ucp
   3690     a
   3691  0: a
   3692     ~
   3693  0: ~
   3694     \a
   3695  0: \x{07}
   3696     \x{7f}
   3697  0: \x{7f}
   3698 \= Expect no match
   3699     0
   3700 No match
   3701     \x{389}
   3702 No match
   3703     \x{20ac}
   3704 No match
   3705 
   3706 # End of testinput4
   3707