Home | History | Annotate | Download | only in testdata
      1 # This set of tests checks the API, internals, and non-Perl stuff for UTF
      2 # support, including Unicode properties. However, tests that give different
      3 # results in 8-bit, 16-bit, and 32-bit modes are excluded (see tests 10 and
      4 # 12).
      5 
      6 #newline_default lf any anycrlf
      7 
      8 # PCRE2 and Perl disagree about the characteristics of certain Unicode
      9 # characters. For example, 061C was considered by Perl to be Arabic, though
     10 # it was not listed as such in the Unicode Scripts.txt file for Unicode 8.
     11 # However, it *is* in that file for Unicode 10, but when I came to re-check,
     12 # Perl had changed in the meantime, with 5.026 not recognizing it as Arabic.
     13 
     14 # 2066-2069 are graphic and printable according to Perl, though they are
     15 # actually "isolate" control characters. That is why the following tests are
     16 # here rather than in test 4.
     17 
     18 /^[\p{Arabic}]/utf
     19     \x{061c}
     20  0: \x{61c}
     21 
     22 /^[[:graph:]]+$/utf,ucp
     23 \= Expect no match
     24     \x{61c}
     25 No match
     26     \x{2066}
     27 No match
     28     \x{2067}
     29 No match
     30     \x{2068}
     31 No match
     32     \x{2069}
     33 No match
     34 
     35 /^[[:print:]]+$/utf,ucp
     36 \= Expect no match
     37     \x{61c}
     38 No match
     39     \x{2066}
     40 No match
     41     \x{2067}
     42 No match
     43     \x{2068}
     44 No match
     45     \x{2069}
     46 No match
     47 
     48 /^[[:^graph:]]+$/utf,ucp
     49     \x{09}\x{0a}\x{1D}\x{20}\x{85}\x{a0}\x{61c}\x{1680}
     50  0: \x{09}\x{0a}\x{1d} \x{85}\x{a0}\x{61c}\x{1680}
     51     \x{2028}\x{2029}\x{202f}\x{2065}\x{2066}\x{2067}\x{2068}\x{2069}
     52  0: \x{2028}\x{2029}\x{202f}\x{2065}\x{2066}\x{2067}\x{2068}\x{2069}
     53 
     54 /^[[:^print:]]+$/utf,ucp
     55     \x{09}\x{1D}\x{85}\x{61c}\x{2028}\x{2029}\x{2065}\x{2066}\x{2067}
     56  0: \x{09}\x{1d}\x{85}\x{61c}\x{2028}\x{2029}\x{2065}\x{2066}\x{2067}
     57     \x{2068}\x{2069}
     58  0: \x{2068}\x{2069}
     59 
     60 # Perl does not consider U+180e to be a space character. It is true that it
     61 # does not appear in the Unicode PropList.txt file as such, but in many other
     62 # sources it is listed as a space, and has been treated as such in PCRE for
     63 # a long time.
     64 
     65 /^>[[:blank:]]*/utf,ucp
     66     >\x{20}\x{a0}\x{1680}\x{180e}\x{2000}\x{202f}\x{9}\x{b}\x{2028}
     67  0: > \x{a0}\x{1680}\x{180e}\x{2000}\x{202f}\x{09}
     68 
     69 /^A\s+Z/utf,ucp
     70     A\x{85}\x{180e}\x{2005}Z
     71  0: A\x{85}\x{180e}\x{2005}Z
     72 
     73 /^A[\s]+Z/utf,ucp
     74     A\x{2005}Z
     75  0: A\x{2005}Z
     76     A\x{85}\x{2005}Z
     77  0: A\x{85}\x{2005}Z
     78 
     79 /^[[:graph:]]+$/utf,ucp
     80 \= Expect no match
     81     \x{180e}
     82 No match
     83 
     84 /^[[:print:]]+$/utf,ucp
     85     \x{180e}
     86  0: \x{180e}
     87 
     88 /^[[:^graph:]]+$/utf,ucp
     89     \x{09}\x{0a}\x{1D}\x{20}\x{85}\x{a0}\x{61c}\x{1680}\x{180e}
     90  0: \x{09}\x{0a}\x{1d} \x{85}\x{a0}\x{61c}\x{1680}\x{180e}
     91 
     92 /^[[:^print:]]+$/utf,ucp
     93 \= Expect no match
     94     \x{180e}
     95 No match
     96 
     97 # End of U+180E tests.
     98 
     99 # ---------------------------------------------------------------------
    100 
    101 /\x{110000}/IB,utf
    102 Failed: error 134 at offset 9: character code point value in \x{} or \o{} is too large
    103 
    104 /\o{4200000}/IB,utf
    105 Failed: error 134 at offset 10: character code point value in \x{} or \o{} is too large
    106 
    107 /\x{ffffffff}/utf
    108 Failed: error 134 at offset 11: character code point value in \x{} or \o{} is too large
    109 
    110 /\o{37777777777}/utf
    111 Failed: error 134 at offset 14: character code point value in \x{} or \o{} is too large
    112 
    113 /\x{100000000}/utf
    114 Failed: error 134 at offset 12: character code point value in \x{} or \o{} is too large
    115 
    116 /\o{77777777777}/utf
    117 Failed: error 134 at offset 14: character code point value in \x{} or \o{} is too large
    118 
    119 /\x{d800}/utf
    120 Failed: error 173 at offset 7: disallowed Unicode code point (>= 0xd800 && <= 0xdfff)
    121 
    122 /\o{154000}/utf
    123 Failed: error 173 at offset 9: disallowed Unicode code point (>= 0xd800 && <= 0xdfff)
    124 
    125 /\x{dfff}/utf
    126 Failed: error 173 at offset 7: disallowed Unicode code point (>= 0xd800 && <= 0xdfff)
    127 
    128 /\o{157777}/utf
    129 Failed: error 173 at offset 9: disallowed Unicode code point (>= 0xd800 && <= 0xdfff)
    130 
    131 /\x{d7ff}/utf
    132 
    133 /\o{153777}/utf
    134 
    135 /\x{e000}/utf
    136 
    137 /\o{170000}/utf
    138 
    139 /^\x{100}a\x{1234}/utf
    140     \x{100}a\x{1234}bcd
    141  0: \x{100}a\x{1234}
    142 
    143 /\x{0041}\x{2262}\x{0391}\x{002e}/IB,utf
    144 ------------------------------------------------------------------
    145         Bra
    146         A\x{2262}\x{391}.
    147         Ket
    148         End
    149 ------------------------------------------------------------------
    150 Capturing subpattern count = 0
    151 Options: utf
    152 First code unit = 'A'
    153 Last code unit = '.'
    154 Subject length lower bound = 4
    155     \x{0041}\x{2262}\x{0391}\x{002e}
    156  0: A\x{2262}\x{391}.
    157 
    158 /.{3,5}X/IB,utf
    159 ------------------------------------------------------------------
    160         Bra
    161         Any{3}
    162         Any{0,2}
    163         X
    164         Ket
    165         End
    166 ------------------------------------------------------------------
    167 Capturing subpattern count = 0
    168 Options: utf
    169 Last code unit = 'X'
    170 Subject length lower bound = 4
    171     \x{212ab}\x{212ab}\x{212ab}\x{861}X
    172  0: \x{212ab}\x{212ab}\x{212ab}\x{861}X
    173 
    174 /.{3,5}?/IB,utf
    175 ------------------------------------------------------------------
    176         Bra
    177         Any{3}
    178         Any{0,2}?
    179         Ket
    180         End
    181 ------------------------------------------------------------------
    182 Capturing subpattern count = 0
    183 Options: utf
    184 Subject length lower bound = 3
    185     \x{212ab}\x{212ab}\x{212ab}\x{861}
    186  0: \x{212ab}\x{212ab}\x{212ab}
    187 
    188 /^[ab]/IB,utf
    189 ------------------------------------------------------------------
    190         Bra
    191         ^
    192         [ab]
    193         Ket
    194         End
    195 ------------------------------------------------------------------
    196 Capturing subpattern count = 0
    197 Compile options: utf
    198 Overall options: anchored utf
    199 Starting code units: a b 
    200 Subject length lower bound = 1
    201     bar
    202  0: b
    203 \= Expect no match
    204     c
    205 No match
    206     \x{ff}
    207 No match
    208     \x{100}
    209 No match
    210 
    211 /\x{100}*(\d+|"(?1)")/utf
    212     1234
    213  0: 1234
    214  1: 1234
    215     "1234"
    216  0: "1234"
    217  1: "1234"
    218     \x{100}1234
    219  0: \x{100}1234
    220  1: 1234
    221     "\x{100}1234"
    222  0: \x{100}1234
    223  1: 1234
    224     \x{100}\x{100}12ab
    225  0: \x{100}\x{100}12
    226  1: 12
    227     \x{100}\x{100}"12"
    228  0: \x{100}\x{100}"12"
    229  1: "12"
    230 \= Expect no match
    231     \x{100}\x{100}abcd
    232 No match
    233 
    234 /\x{100}*/IB,utf
    235 ------------------------------------------------------------------
    236         Bra
    237         \x{100}*+
    238         Ket
    239         End
    240 ------------------------------------------------------------------
    241 Capturing subpattern count = 0
    242 May match empty string
    243 Options: utf
    244 Subject length lower bound = 0
    245 
    246 /a\x{100}*/IB,utf
    247 ------------------------------------------------------------------
    248         Bra
    249         a
    250         \x{100}*+
    251         Ket
    252         End
    253 ------------------------------------------------------------------
    254 Capturing subpattern count = 0
    255 Options: utf
    256 First code unit = 'a'
    257 Subject length lower bound = 1
    258 
    259 /ab\x{100}*/IB,utf
    260 ------------------------------------------------------------------
    261         Bra
    262         ab
    263         \x{100}*+
    264         Ket
    265         End
    266 ------------------------------------------------------------------
    267 Capturing subpattern count = 0
    268 Options: utf
    269 First code unit = 'a'
    270 Last code unit = 'b'
    271 Subject length lower bound = 2
    272 
    273 /[\x{200}-\x{100}]/utf
    274 Failed: error 108 at offset 15: range out of order in character class
    275 
    276 /[-]/utf
    277     \x{100}
    278  0: \x{100}
    279     \x{104}
    280  0: \x{104}
    281 \= Expect no match
    282     \x{105}
    283 No match
    284     \x{ff}
    285 No match
    286 
    287 /[\xFF]/IB
    288 ------------------------------------------------------------------
    289         Bra
    290         \x{ff}
    291         Ket
    292         End
    293 ------------------------------------------------------------------
    294 Capturing subpattern count = 0
    295 First code unit = \xff
    296 Subject length lower bound = 1
    297     >\xff<
    298  0: \xff
    299 
    300 /[^\xFF]/IB
    301 ------------------------------------------------------------------
    302         Bra
    303         [^\x{ff}]
    304         Ket
    305         End
    306 ------------------------------------------------------------------
    307 Capturing subpattern count = 0
    308 Subject length lower bound = 1
    309 
    310 /[-]/utf
    311      # Matches without Study
    312  0: \x{d6}
    313     \x{d6}
    314  0: \x{d6}
    315 
    316 /[-]/utf
    317      <-- Same with Study
    318  0: \x{d6}
    319     \x{d6}
    320  0: \x{d6}
    321 
    322 /[\x{c4}-\x{dc}]/utf
    323      # Matches without Study
    324  0: \x{d6}
    325     \x{d6}
    326  0: \x{d6}
    327 
    328 /[\x{c4}-\x{dc}]/utf
    329      <-- Same with Study
    330  0: \x{d6}
    331     \x{d6}
    332  0: \x{d6}
    333 
    334 /[^\x{100}]abc(xyz(?1))/IB,utf
    335 ------------------------------------------------------------------
    336         Bra
    337         [^\x{100}]
    338         abc
    339         CBra 1
    340         xyz
    341         Recurse
    342         Ket
    343         Ket
    344         End
    345 ------------------------------------------------------------------
    346 Capturing subpattern count = 1
    347 Options: utf
    348 Last code unit = 'z'
    349 Subject length lower bound = 7
    350 
    351 /(\x{100}(b(?2)c))?/IB,utf
    352 ------------------------------------------------------------------
    353         Bra
    354         Brazero
    355         CBra 1
    356         \x{100}
    357         CBra 2
    358         b
    359         Recurse
    360         c
    361         Ket
    362         Ket
    363         Ket
    364         End
    365 ------------------------------------------------------------------
    366 Capturing subpattern count = 2
    367 May match empty string
    368 Options: utf
    369 Subject length lower bound = 0
    370 
    371 /(\x{100}(b(?2)c)){0,2}/IB,utf
    372 ------------------------------------------------------------------
    373         Bra
    374         Brazero
    375         Bra
    376         CBra 1
    377         \x{100}
    378         CBra 2
    379         b
    380         Recurse
    381         c
    382         Ket
    383         Ket
    384         Brazero
    385         CBra 1
    386         \x{100}
    387         CBra 2
    388         b
    389         Recurse
    390         c
    391         Ket
    392         Ket
    393         Ket
    394         Ket
    395         End
    396 ------------------------------------------------------------------
    397 Capturing subpattern count = 2
    398 May match empty string
    399 Options: utf
    400 Subject length lower bound = 0
    401 
    402 /(\x{100}(b(?1)c))?/IB,utf
    403 ------------------------------------------------------------------
    404         Bra
    405         Brazero
    406         CBra 1
    407         \x{100}
    408         CBra 2
    409         b
    410         Recurse
    411         c
    412         Ket
    413         Ket
    414         Ket
    415         End
    416 ------------------------------------------------------------------
    417 Capturing subpattern count = 2
    418 May match empty string
    419 Options: utf
    420 Subject length lower bound = 0
    421 
    422 /(\x{100}(b(?1)c)){0,2}/IB,utf
    423 ------------------------------------------------------------------
    424         Bra
    425         Brazero
    426         Bra
    427         CBra 1
    428         \x{100}
    429         CBra 2
    430         b
    431         Recurse
    432         c
    433         Ket
    434         Ket
    435         Brazero
    436         CBra 1
    437         \x{100}
    438         CBra 2
    439         b
    440         Recurse
    441         c
    442         Ket
    443         Ket
    444         Ket
    445         Ket
    446         End
    447 ------------------------------------------------------------------
    448 Capturing subpattern count = 2
    449 May match empty string
    450 Options: utf
    451 Subject length lower bound = 0
    452 
    453 /\W/utf
    454     A.B
    455  0: .
    456     A\x{100}B
    457  0: \x{100}
    458 
    459 /\w/utf
    460     \x{100}X
    461  0: X
    462 
    463 # Use no_start_optimize because the first code unit is different in 8-bit from
    464 # the wider modes.
    465 
    466 /^\/IB,utf,no_start_optimize
    467 ------------------------------------------------------------------
    468         Bra
    469         ^
    470         \x{1234}
    471         Ket
    472         End
    473 ------------------------------------------------------------------
    474 Capturing subpattern count = 0
    475 Compile options: no_start_optimize utf
    476 Overall options: anchored no_start_optimize utf
    477 Subject length lower bound = 0
    478 
    479 /()()()()()()()()()()
    480  ()()()()()()()()()()
    481  ()()()()()()()()()()
    482  ()()()()()()()()()()
    483  A (x) (?41) B/x,utf
    484     AxxB
    485 Matched, but too many substrings
    486  0: AxxB
    487  1: 
    488  2: 
    489  3: 
    490  4: 
    491  5: 
    492  6: 
    493  7: 
    494  8: 
    495  9: 
    496 10: 
    497 11: 
    498 12: 
    499 13: 
    500 14: 
    501 
    502 /^[\x{100}\E-\Q\E\x{150}]/B,utf
    503 ------------------------------------------------------------------
    504         Bra
    505         ^
    506         [\x{100}-\x{150}]
    507         Ket
    508         End
    509 ------------------------------------------------------------------
    510 
    511 /^[\Q\E-\Q\E]/B,utf
    512 ------------------------------------------------------------------
    513         Bra
    514         ^
    515         [\x{100}-\x{150}]
    516         Ket
    517         End
    518 ------------------------------------------------------------------
    519 
    520 /^abc./gmx,newline=any,utf
    521     abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x{0085}abc7 \x{2028}abc8 \x{2029}abc9 JUNK
    522  0: abc1
    523  0: abc2
    524  0: abc3
    525  0: abc4
    526  0: abc5
    527  0: abc6
    528  0: abc7
    529  0: abc8
    530  0: abc9
    531 
    532 /abc.$/gmx,newline=any,utf
    533     abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x{0085} abc7\x{2028} abc8\x{2029} abc9
    534  0: abc1
    535  0: abc2
    536  0: abc3
    537  0: abc4
    538  0: abc5
    539  0: abc6
    540  0: abc7
    541  0: abc8
    542  0: abc9
    543 
    544 /^a\Rb/bsr=unicode,utf
    545     a\nb
    546  0: a\x{0a}b
    547     a\rb
    548  0: a\x{0d}b
    549     a\r\nb
    550  0: a\x{0d}\x{0a}b
    551     a\x0bb
    552  0: a\x{0b}b
    553     a\x0cb
    554  0: a\x{0c}b
    555     a\x{85}b
    556  0: a\x{85}b
    557     a\x{2028}b
    558  0: a\x{2028}b
    559     a\x{2029}b
    560  0: a\x{2029}b
    561 \= Expect no match
    562     a\n\rb
    563 No match
    564 
    565 /^a\R*b/bsr=unicode,utf
    566     ab
    567  0: ab
    568     a\nb
    569  0: a\x{0a}b
    570     a\rb
    571  0: a\x{0d}b
    572     a\r\nb
    573  0: a\x{0d}\x{0a}b
    574     a\x0bb
    575  0: a\x{0b}b
    576     a\x0c\x{2028}\x{2029}b
    577  0: a\x{0c}\x{2028}\x{2029}b
    578     a\x{85}b
    579  0: a\x{85}b
    580     a\n\rb
    581  0: a\x{0a}\x{0d}b
    582     a\n\r\x{85}\x0cb
    583  0: a\x{0a}\x{0d}\x{85}\x{0c}b
    584 
    585 /^a\R+b/bsr=unicode,utf
    586     a\nb
    587  0: a\x{0a}b
    588     a\rb
    589  0: a\x{0d}b
    590     a\r\nb
    591  0: a\x{0d}\x{0a}b
    592     a\x0bb
    593  0: a\x{0b}b
    594     a\x0c\x{2028}\x{2029}b
    595  0: a\x{0c}\x{2028}\x{2029}b
    596     a\x{85}b
    597  0: a\x{85}b
    598     a\n\rb
    599  0: a\x{0a}\x{0d}b
    600     a\n\r\x{85}\x0cb
    601  0: a\x{0a}\x{0d}\x{85}\x{0c}b
    602 \= Expect no match
    603     ab
    604 No match
    605 
    606 /^a\R{1,3}b/bsr=unicode,utf
    607     a\nb
    608  0: a\x{0a}b
    609     a\n\rb
    610  0: a\x{0a}\x{0d}b
    611     a\n\r\x{85}b
    612  0: a\x{0a}\x{0d}\x{85}b
    613     a\r\n\r\nb
    614  0: a\x{0d}\x{0a}\x{0d}\x{0a}b
    615     a\r\n\r\n\r\nb
    616  0: a\x{0d}\x{0a}\x{0d}\x{0a}\x{0d}\x{0a}b
    617     a\n\r\n\rb
    618  0: a\x{0a}\x{0d}\x{0a}\x{0d}b
    619     a\n\n\r\nb
    620  0: a\x{0a}\x{0a}\x{0d}\x{0a}b
    621 \= Expect no match
    622     a\n\n\n\rb
    623 No match
    624     a\r
    625 No match
    626 
    627 /\H\h\V\v/utf
    628     X X\x0a
    629  0: X X\x{0a}
    630     X\x09X\x0b
    631  0: X\x{09}X\x{0b}
    632 \= Expect no match
    633     \x{a0} X\x0a
    634 No match
    635 
    636 /\H*\h+\V?\v{3,4}/utf
    637     \x09\x20\x{a0}X\x0a\x0b\x0c\x0d\x0a
    638  0: \x{09} \x{a0}X\x{0a}\x{0b}\x{0c}\x{0d}
    639     \x09\x20\x{a0}\x0a\x0b\x0c\x0d\x0a
    640  0: \x{09} \x{a0}\x{0a}\x{0b}\x{0c}\x{0d}
    641     \x09\x20\x{a0}\x0a\x0b\x0c
    642  0: \x{09} \x{a0}\x{0a}\x{0b}\x{0c}
    643 \= Expect no match
    644     \x09\x20\x{a0}\x0a\x0b
    645 No match
    646 
    647 /\H\h\V\v/utf
    648     \x{3001}\x{3000}\x{2030}\x{2028}
    649  0: \x{3001}\x{3000}\x{2030}\x{2028}
    650     X\x{180e}X\x{85}
    651  0: X\x{180e}X\x{85}
    652 \= Expect no match
    653     \x{2009} X\x0a
    654 No match
    655 
    656 /\H*\h+\V?\v{3,4}/utf
    657     \x{1680}\x{180e}\x{2007}X\x{2028}\x{2029}\x0c\x0d\x0a
    658  0: \x{1680}\x{180e}\x{2007}X\x{2028}\x{2029}\x{0c}\x{0d}
    659     \x09\x{205f}\x{a0}\x0a\x{2029}\x0c\x{2028}\x0a
    660  0: \x{09}\x{205f}\x{a0}\x{0a}\x{2029}\x{0c}\x{2028}
    661     \x09\x20\x{202f}\x0a\x0b\x0c
    662  0: \x{09} \x{202f}\x{0a}\x{0b}\x{0c}
    663 \= Expect no match
    664     \x09\x{200a}\x{a0}\x{2028}\x0b
    665 No match
    666 
    667 /[\h]/B,utf
    668 ------------------------------------------------------------------
    669         Bra
    670         [\x09 \xa0\x{1680}\x{180e}\x{2000}-\x{200a}\x{202f}\x{205f}\x{3000}]
    671         Ket
    672         End
    673 ------------------------------------------------------------------
    674     >\x{1680}
    675  0: \x{1680}
    676 
    677 /[\h]{3,}/B,utf
    678 ------------------------------------------------------------------
    679         Bra
    680         [\x09 \xa0\x{1680}\x{180e}\x{2000}-\x{200a}\x{202f}\x{205f}\x{3000}]{3,}+
    681         Ket
    682         End
    683 ------------------------------------------------------------------
    684     >\x{1680}\x{180e}\x{2000}\x{2003}\x{200a}\x{202f}\x{205f}\x{3000}<
    685  0: \x{1680}\x{180e}\x{2000}\x{2003}\x{200a}\x{202f}\x{205f}\x{3000}
    686 
    687 /[\v]/B,utf
    688 ------------------------------------------------------------------
    689         Bra
    690         [\x0a-\x0d\x85\x{2028}-\x{2029}]
    691         Ket
    692         End
    693 ------------------------------------------------------------------
    694 
    695 /[\H]/B,utf
    696 ------------------------------------------------------------------
    697         Bra
    698         [\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff\x{100}-\x{167f}\x{1681}-\x{180d}\x{180f}-\x{1fff}\x{200b}-\x{202e}\x{2030}-\x{205e}\x{2060}-\x{2fff}\x{3001}-\x{10ffff}]
    699         Ket
    700         End
    701 ------------------------------------------------------------------
    702 
    703 /[\V]/B,utf
    704 ------------------------------------------------------------------
    705         Bra
    706         [\x00-\x09\x0e-\x84\x86-\xff\x{100}-\x{2027}\x{202a}-\x{10ffff}]
    707         Ket
    708         End
    709 ------------------------------------------------------------------
    710 
    711 /.*$/newline=any,utf
    712     \x{1ec5}
    713  0: \x{1ec5}
    714 
    715 /a\Rb/I,bsr=anycrlf,utf
    716 Capturing subpattern count = 0
    717 Options: utf
    718 \R matches CR, LF, or CRLF
    719 First code unit = 'a'
    720 Last code unit = 'b'
    721 Subject length lower bound = 3
    722     a\rb
    723  0: a\x{0d}b
    724     a\nb
    725  0: a\x{0a}b
    726     a\r\nb
    727  0: a\x{0d}\x{0a}b
    728 \= Expect no match
    729     a\x{85}b
    730 No match
    731     a\x0bb
    732 No match
    733 
    734 /a\Rb/I,bsr=unicode,utf
    735 Capturing subpattern count = 0
    736 Options: utf
    737 \R matches any Unicode newline
    738 First code unit = 'a'
    739 Last code unit = 'b'
    740 Subject length lower bound = 3
    741     a\rb
    742  0: a\x{0d}b
    743     a\nb
    744  0: a\x{0a}b
    745     a\r\nb
    746  0: a\x{0d}\x{0a}b
    747     a\x{85}b
    748  0: a\x{85}b
    749     a\x0bb
    750  0: a\x{0b}b
    751 
    752 /a\R?b/I,bsr=anycrlf,utf
    753 Capturing subpattern count = 0
    754 Options: utf
    755 \R matches CR, LF, or CRLF
    756 First code unit = 'a'
    757 Last code unit = 'b'
    758 Subject length lower bound = 2
    759     a\rb
    760  0: a\x{0d}b
    761     a\nb
    762  0: a\x{0a}b
    763     a\r\nb
    764  0: a\x{0d}\x{0a}b
    765 \= Expect no match
    766     a\x{85}b
    767 No match
    768     a\x0bb
    769 No match
    770 
    771 /a\R?b/I,bsr=unicode,utf
    772 Capturing subpattern count = 0
    773 Options: utf
    774 \R matches any Unicode newline
    775 First code unit = 'a'
    776 Last code unit = 'b'
    777 Subject length lower bound = 2
    778     a\rb
    779  0: a\x{0d}b
    780     a\nb
    781  0: a\x{0a}b
    782     a\r\nb
    783  0: a\x{0d}\x{0a}b
    784     a\x{85}b
    785  0: a\x{85}b
    786     a\x0bb
    787  0: a\x{0b}b
    788 
    789 /.*a.*=.b.*/utf,newline=any
    790     QQQ\x{2029}ABCaXYZ=!bPQR
    791  0: ABCaXYZ=!bPQR
    792 \= Expect no match
    793     a\x{2029}b
    794 No match
    795     \x61\xe2\x80\xa9\x62
    796 No match
    797 
    798 /[[:a\x{100}b:]]/utf
    799 Failed: error 130 at offset 3: unknown POSIX class name
    800 
    801 /a[^]b/utf,alt_bsux,allow_empty_class,match_unset_backref
    802     a\x{1234}b
    803  0: a\x{1234}b
    804     a\nb
    805  0: a\x{0a}b
    806 \= Expect no match
    807     ab
    808 No match
    809 
    810 /a[^]+b/utf,alt_bsux,allow_empty_class,match_unset_backref
    811     aXb
    812  0: aXb
    813     a\nX\nX\x{1234}b
    814  0: a\x{0a}X\x{0a}X\x{1234}b
    815 \= Expect no match
    816     ab
    817 No match
    818 
    819 /(\x{de})\1/
    820     \x{de}\x{de}
    821  0: \xde\xde
    822  1: \xde
    823 
    824 /X/newline=any,utf,firstline
    825     A\x{1ec5}ABCXYZ
    826  0: X
    827 
    828 /Xa{2,4}b/utf
    829     X\=ps
    830 Partial match: X
    831     Xa\=ps
    832 Partial match: Xa
    833     Xaa\=ps
    834 Partial match: Xaa
    835     Xaaa\=ps
    836 Partial match: Xaaa
    837     Xaaaa\=ps
    838 Partial match: Xaaaa
    839 
    840 /Xa{2,4}?b/utf
    841     X\=ps
    842 Partial match: X
    843     Xa\=ps
    844 Partial match: Xa
    845     Xaa\=ps
    846 Partial match: Xaa
    847     Xaaa\=ps
    848 Partial match: Xaaa
    849     Xaaaa\=ps
    850 Partial match: Xaaaa
    851 
    852 /Xa{2,4}+b/utf
    853     X\=ps
    854 Partial match: X
    855     Xa\=ps
    856 Partial match: Xa
    857     Xaa\=ps
    858 Partial match: Xaa
    859     Xaaa\=ps
    860 Partial match: Xaaa
    861     Xaaaa\=ps
    862 Partial match: Xaaaa
    863 
    864 /X\x{123}{2,4}b/utf
    865     X\=ps
    866 Partial match: X
    867     X\x{123}\=ps
    868 Partial match: X\x{123}
    869     X\x{123}\x{123}\=ps
    870 Partial match: X\x{123}\x{123}
    871     X\x{123}\x{123}\x{123}\=ps
    872 Partial match: X\x{123}\x{123}\x{123}
    873     X\x{123}\x{123}\x{123}\x{123}\=ps
    874 Partial match: X\x{123}\x{123}\x{123}\x{123}
    875 
    876 /X\x{123}{2,4}?b/utf
    877     X\=ps
    878 Partial match: X
    879     X\x{123}\=ps
    880 Partial match: X\x{123}
    881     X\x{123}\x{123}\=ps
    882 Partial match: X\x{123}\x{123}
    883     X\x{123}\x{123}\x{123}\=ps
    884 Partial match: X\x{123}\x{123}\x{123}
    885     X\x{123}\x{123}\x{123}\x{123}\=ps
    886 Partial match: X\x{123}\x{123}\x{123}\x{123}
    887 
    888 /X\x{123}{2,4}+b/utf
    889     X\=ps
    890 Partial match: X
    891     X\x{123}\=ps
    892 Partial match: X\x{123}
    893     X\x{123}\x{123}\=ps
    894 Partial match: X\x{123}\x{123}
    895     X\x{123}\x{123}\x{123}\=ps
    896 Partial match: X\x{123}\x{123}\x{123}
    897     X\x{123}\x{123}\x{123}\x{123}\=ps
    898 Partial match: X\x{123}\x{123}\x{123}\x{123}
    899 
    900 /X\x{123}{2,4}b/utf
    901 \= Expect no match
    902     Xx\=ps
    903 No match
    904     X\x{123}x\=ps
    905 No match
    906     X\x{123}\x{123}x\=ps
    907 No match
    908     X\x{123}\x{123}\x{123}x\=ps
    909 No match
    910     X\x{123}\x{123}\x{123}\x{123}x\=ps
    911 No match
    912 
    913 /X\x{123}{2,4}?b/utf
    914 \= Expect no match
    915     Xx\=ps
    916 No match
    917     X\x{123}x\=ps
    918 No match
    919     X\x{123}\x{123}x\=ps
    920 No match
    921     X\x{123}\x{123}\x{123}x\=ps
    922 No match
    923     X\x{123}\x{123}\x{123}\x{123}x\=ps
    924 No match
    925 
    926 /X\x{123}{2,4}+b/utf
    927 \= Expect no match
    928     Xx\=ps
    929 No match
    930     X\x{123}x\=ps
    931 No match
    932     X\x{123}\x{123}x\=ps
    933 No match
    934     X\x{123}\x{123}\x{123}x\=ps
    935 No match
    936     X\x{123}\x{123}\x{123}\x{123}x\=ps
    937 No match
    938 
    939 /X\d{2,4}b/utf
    940     X\=ps
    941 Partial match: X
    942     X3\=ps
    943 Partial match: X3
    944     X33\=ps
    945 Partial match: X33
    946     X333\=ps
    947 Partial match: X333
    948     X3333\=ps
    949 Partial match: X3333
    950 
    951 /X\d{2,4}?b/utf
    952     X\=ps
    953 Partial match: X
    954     X3\=ps
    955 Partial match: X3
    956     X33\=ps
    957 Partial match: X33
    958     X333\=ps
    959 Partial match: X333
    960     X3333\=ps
    961 Partial match: X3333
    962 
    963 /X\d{2,4}+b/utf
    964     X\=ps
    965 Partial match: X
    966     X3\=ps
    967 Partial match: X3
    968     X33\=ps
    969 Partial match: X33
    970     X333\=ps
    971 Partial match: X333
    972     X3333\=ps
    973 Partial match: X3333
    974 
    975 /X\D{2,4}b/utf
    976     X\=ps
    977 Partial match: X
    978     Xa\=ps
    979 Partial match: Xa
    980     Xaa\=ps
    981 Partial match: Xaa
    982     Xaaa\=ps
    983 Partial match: Xaaa
    984     Xaaaa\=ps
    985 Partial match: Xaaaa
    986 
    987 /X\D{2,4}?b/utf
    988     X\=ps
    989 Partial match: X
    990     Xa\=ps
    991 Partial match: Xa
    992     Xaa\=ps
    993 Partial match: Xaa
    994     Xaaa\=ps
    995 Partial match: Xaaa
    996     Xaaaa\=ps
    997 Partial match: Xaaaa
    998 
    999 /X\D{2,4}+b/utf
   1000     X\=ps
   1001 Partial match: X
   1002     Xa\=ps
   1003 Partial match: Xa
   1004     Xaa\=ps
   1005 Partial match: Xaa
   1006     Xaaa\=ps
   1007 Partial match: Xaaa
   1008     Xaaaa\=ps
   1009 Partial match: Xaaaa
   1010 
   1011 /X\D{2,4}b/utf
   1012     X\=ps
   1013 Partial match: X
   1014     X\x{123}\=ps
   1015 Partial match: X\x{123}
   1016     X\x{123}\x{123}\=ps
   1017 Partial match: X\x{123}\x{123}
   1018     X\x{123}\x{123}\x{123}\=ps
   1019 Partial match: X\x{123}\x{123}\x{123}
   1020     X\x{123}\x{123}\x{123}\x{123}\=ps
   1021 Partial match: X\x{123}\x{123}\x{123}\x{123}
   1022 
   1023 /X\D{2,4}?b/utf
   1024     X\=ps
   1025 Partial match: X
   1026     X\x{123}\=ps
   1027 Partial match: X\x{123}
   1028     X\x{123}\x{123}\=ps
   1029 Partial match: X\x{123}\x{123}
   1030     X\x{123}\x{123}\x{123}\=ps
   1031 Partial match: X\x{123}\x{123}\x{123}
   1032     X\x{123}\x{123}\x{123}\x{123}\=ps
   1033 Partial match: X\x{123}\x{123}\x{123}\x{123}
   1034 
   1035 /X\D{2,4}+b/utf
   1036     X\=ps
   1037 Partial match: X
   1038     X\x{123}\=ps
   1039 Partial match: X\x{123}
   1040     X\x{123}\x{123}\=ps
   1041 Partial match: X\x{123}\x{123}
   1042     X\x{123}\x{123}\x{123}\=ps
   1043 Partial match: X\x{123}\x{123}\x{123}
   1044     X\x{123}\x{123}\x{123}\x{123}\=ps
   1045 Partial match: X\x{123}\x{123}\x{123}\x{123}
   1046 
   1047 /X[abc]{2,4}b/utf
   1048     X\=ps
   1049 Partial match: X
   1050     Xa\=ps
   1051 Partial match: Xa
   1052     Xaa\=ps
   1053 Partial match: Xaa
   1054     Xaaa\=ps
   1055 Partial match: Xaaa
   1056     Xaaaa\=ps
   1057 Partial match: Xaaaa
   1058 
   1059 /X[abc]{2,4}?b/utf
   1060     X\=ps
   1061 Partial match: X
   1062     Xa\=ps
   1063 Partial match: Xa
   1064     Xaa\=ps
   1065 Partial match: Xaa
   1066     Xaaa\=ps
   1067 Partial match: Xaaa
   1068     Xaaaa\=ps
   1069 Partial match: Xaaaa
   1070 
   1071 /X[abc]{2,4}+b/utf
   1072     X\=ps
   1073 Partial match: X
   1074     Xa\=ps
   1075 Partial match: Xa
   1076     Xaa\=ps
   1077 Partial match: Xaa
   1078     Xaaa\=ps
   1079 Partial match: Xaaa
   1080     Xaaaa\=ps
   1081 Partial match: Xaaaa
   1082 
   1083 /X[abc\x{123}]{2,4}b/utf
   1084     X\=ps
   1085 Partial match: X
   1086     X\x{123}\=ps
   1087 Partial match: X\x{123}
   1088     X\x{123}\x{123}\=ps
   1089 Partial match: X\x{123}\x{123}
   1090     X\x{123}\x{123}\x{123}\=ps
   1091 Partial match: X\x{123}\x{123}\x{123}
   1092     X\x{123}\x{123}\x{123}\x{123}\=ps
   1093 Partial match: X\x{123}\x{123}\x{123}\x{123}
   1094 
   1095 /X[abc\x{123}]{2,4}?b/utf
   1096     X\=ps
   1097 Partial match: X
   1098     X\x{123}\=ps
   1099 Partial match: X\x{123}
   1100     X\x{123}\x{123}\=ps
   1101 Partial match: X\x{123}\x{123}
   1102     X\x{123}\x{123}\x{123}\=ps
   1103 Partial match: X\x{123}\x{123}\x{123}
   1104     X\x{123}\x{123}\x{123}\x{123}\=ps
   1105 Partial match: X\x{123}\x{123}\x{123}\x{123}
   1106 
   1107 /X[abc\x{123}]{2,4}+b/utf
   1108     X\=ps
   1109 Partial match: X
   1110     X\x{123}\=ps
   1111 Partial match: X\x{123}
   1112     X\x{123}\x{123}\=ps
   1113 Partial match: X\x{123}\x{123}
   1114     X\x{123}\x{123}\x{123}\=ps
   1115 Partial match: X\x{123}\x{123}\x{123}
   1116     X\x{123}\x{123}\x{123}\x{123}\=ps
   1117 Partial match: X\x{123}\x{123}\x{123}\x{123}
   1118 
   1119 /X[^a]{2,4}b/utf
   1120     X\=ps
   1121 Partial match: X
   1122     Xz\=ps
   1123 Partial match: Xz
   1124     Xzz\=ps
   1125 Partial match: Xzz
   1126     Xzzz\=ps
   1127 Partial match: Xzzz
   1128     Xzzzz\=ps
   1129 Partial match: Xzzzz
   1130 
   1131 /X[^a]{2,4}?b/utf
   1132     X\=ps
   1133 Partial match: X
   1134     Xz\=ps
   1135 Partial match: Xz
   1136     Xzz\=ps
   1137 Partial match: Xzz
   1138     Xzzz\=ps
   1139 Partial match: Xzzz
   1140     Xzzzz\=ps
   1141 Partial match: Xzzzz
   1142 
   1143 /X[^a]{2,4}+b/utf
   1144     X\=ps
   1145 Partial match: X
   1146     Xz\=ps
   1147 Partial match: Xz
   1148     Xzz\=ps
   1149 Partial match: Xzz
   1150     Xzzz\=ps
   1151 Partial match: Xzzz
   1152     Xzzzz\=ps
   1153 Partial match: Xzzzz
   1154 
   1155 /X[^a]{2,4}b/utf
   1156     X\=ps
   1157 Partial match: X
   1158     X\x{123}\=ps
   1159 Partial match: X\x{123}
   1160     X\x{123}\x{123}\=ps
   1161 Partial match: X\x{123}\x{123}
   1162     X\x{123}\x{123}\x{123}\=ps
   1163 Partial match: X\x{123}\x{123}\x{123}
   1164     X\x{123}\x{123}\x{123}\x{123}\=ps
   1165 Partial match: X\x{123}\x{123}\x{123}\x{123}
   1166 
   1167 /X[^a]{2,4}?b/utf
   1168     X\=ps
   1169 Partial match: X
   1170     X\x{123}\=ps
   1171 Partial match: X\x{123}
   1172     X\x{123}\x{123}\=ps
   1173 Partial match: X\x{123}\x{123}
   1174     X\x{123}\x{123}\x{123}\=ps
   1175 Partial match: X\x{123}\x{123}\x{123}
   1176     X\x{123}\x{123}\x{123}\x{123}\=ps
   1177 Partial match: X\x{123}\x{123}\x{123}\x{123}
   1178 
   1179 /X[^a]{2,4}+b/utf
   1180     X\=ps
   1181 Partial match: X
   1182     X\x{123}\=ps
   1183 Partial match: X\x{123}
   1184     X\x{123}\x{123}\=ps
   1185 Partial match: X\x{123}\x{123}
   1186     X\x{123}\x{123}\x{123}\=ps
   1187 Partial match: X\x{123}\x{123}\x{123}
   1188     X\x{123}\x{123}\x{123}\x{123}\=ps
   1189 Partial match: X\x{123}\x{123}\x{123}\x{123}
   1190 
   1191 /(Y)X\1{2,4}b/utf
   1192     YX\=ps
   1193 Partial match: YX
   1194     YXY\=ps
   1195 Partial match: YXY
   1196     YXYY\=ps
   1197 Partial match: YXYY
   1198     YXYYY\=ps
   1199 Partial match: YXYYY
   1200     YXYYYY\=ps
   1201 Partial match: YXYYYY
   1202 
   1203 /(Y)X\1{2,4}?b/utf
   1204     YX\=ps
   1205 Partial match: YX
   1206     YXY\=ps
   1207 Partial match: YXY
   1208     YXYY\=ps
   1209 Partial match: YXYY
   1210     YXYYY\=ps
   1211 Partial match: YXYYY
   1212     YXYYYY\=ps
   1213 Partial match: YXYYYY
   1214 
   1215 /(Y)X\1{2,4}+b/utf
   1216     YX\=ps
   1217 Partial match: YX
   1218     YXY\=ps
   1219 Partial match: YXY
   1220     YXYY\=ps
   1221 Partial match: YXYY
   1222     YXYYY\=ps
   1223 Partial match: YXYYY
   1224     YXYYYY\=ps
   1225 Partial match: YXYYYY
   1226 
   1227 /(\x{123})X\1{2,4}b/utf
   1228     \x{123}X\=ps
   1229 Partial match: \x{123}X
   1230     \x{123}X\x{123}\=ps
   1231 Partial match: \x{123}X\x{123}
   1232     \x{123}X\x{123}\x{123}\=ps
   1233 Partial match: \x{123}X\x{123}\x{123}
   1234     \x{123}X\x{123}\x{123}\x{123}\=ps
   1235 Partial match: \x{123}X\x{123}\x{123}\x{123}
   1236     \x{123}X\x{123}\x{123}\x{123}\x{123}\=ps
   1237 Partial match: \x{123}X\x{123}\x{123}\x{123}\x{123}
   1238 
   1239 /(\x{123})X\1{2,4}?b/utf
   1240     \x{123}X\=ps
   1241 Partial match: \x{123}X
   1242     \x{123}X\x{123}\=ps
   1243 Partial match: \x{123}X\x{123}
   1244     \x{123}X\x{123}\x{123}\=ps
   1245 Partial match: \x{123}X\x{123}\x{123}
   1246     \x{123}X\x{123}\x{123}\x{123}\=ps
   1247 Partial match: \x{123}X\x{123}\x{123}\x{123}
   1248     \x{123}X\x{123}\x{123}\x{123}\x{123}\=ps
   1249 Partial match: \x{123}X\x{123}\x{123}\x{123}\x{123}
   1250 
   1251 /(\x{123})X\1{2,4}+b/utf
   1252     \x{123}X\=ps
   1253 Partial match: \x{123}X
   1254     \x{123}X\x{123}\=ps
   1255 Partial match: \x{123}X\x{123}
   1256     \x{123}X\x{123}\x{123}\=ps
   1257 Partial match: \x{123}X\x{123}\x{123}
   1258     \x{123}X\x{123}\x{123}\x{123}\=ps
   1259 Partial match: \x{123}X\x{123}\x{123}\x{123}
   1260     \x{123}X\x{123}\x{123}\x{123}\x{123}\=ps
   1261 Partial match: \x{123}X\x{123}\x{123}\x{123}\x{123}
   1262 
   1263 /\bthe cat\b/utf
   1264     the cat\=ps
   1265  0: the cat
   1266     the cat\=ph
   1267 Partial match: the cat
   1268 
   1269 /abcd*/utf
   1270     xxxxabcd\=ps
   1271  0: abcd
   1272     xxxxabcd\=ph
   1273 Partial match: abcd
   1274 
   1275 /abcd*/i,utf
   1276     xxxxabcd\=ps
   1277  0: abcd
   1278     xxxxabcd\=ph
   1279 Partial match: abcd
   1280     XXXXABCD\=ps
   1281  0: ABCD
   1282     XXXXABCD\=ph
   1283 Partial match: ABCD
   1284 
   1285 /abc\d*/utf
   1286     xxxxabc1\=ps
   1287  0: abc1
   1288     xxxxabc1\=ph
   1289 Partial match: abc1
   1290 
   1291 /(a)bc\1*/utf
   1292     xxxxabca\=ps
   1293  0: abca
   1294  1: a
   1295     xxxxabca\=ph
   1296 Partial match: abca
   1297 
   1298 /abc[de]*/utf
   1299     xxxxabcde\=ps
   1300  0: abcde
   1301     xxxxabcde\=ph
   1302 Partial match: abcde
   1303 
   1304 /X\W{3}X/utf
   1305     X\=ps
   1306 Partial match: X
   1307 
   1308 /\sxxx\s/utf,tables=2
   1309     AB\x{85}xxx\x{a0}XYZ
   1310  0: \x{85}xxx\x{a0}
   1311     AB\x{a0}xxx\x{85}XYZ
   1312  0: \x{a0}xxx\x{85}
   1313 
   1314 /\S \S/utf,tables=2
   1315     \x{a2} \x{84}
   1316  0: \x{a2} \x{84}
   1317 
   1318 'A#'Bx,newline=any,utf
   1319 ------------------------------------------------------------------
   1320         Bra
   1321         A
   1322         Ket
   1323         End
   1324 ------------------------------------------------------------------
   1325 
   1326 'A#
   1327   PQ'Bx,newline=any,utf
   1328 ------------------------------------------------------------------
   1329         Bra
   1330         APQ
   1331         Ket
   1332         End
   1333 ------------------------------------------------------------------
   1334 
   1335 /a+#aa
   1336   z#XX?/Bx,newline=any,utf
   1337 ------------------------------------------------------------------
   1338         Bra
   1339         a++
   1340         z
   1341         Ket
   1342         End
   1343 ------------------------------------------------------------------
   1344 
   1345 /a+#aa
   1346   z#?/Bx,newline=any,utf
   1347 ------------------------------------------------------------------
   1348         Bra
   1349         a++
   1350         z
   1351         Ket
   1352         End
   1353 ------------------------------------------------------------------
   1354 
   1355 /\g{A}xxx#bXX(?'A'123)
(?'A'456)/Bx,newline=any,utf
   1357 ------------------------------------------------------------------
   1358         Bra
   1359         \1
   1360         xxx
   1361         CBra 1
   1362         456
   1363         Ket
   1364         Ket
   1365         End
   1366 ------------------------------------------------------------------
   1367 
   1368 /\g{A}xxx#b(?'A'123)
(?'A'456)/Bx,newline=any,utf
   1370 ------------------------------------------------------------------
   1371         Bra
   1372         \1
   1373         xxx
   1374         CBra 1
   1375         456
   1376         Ket
   1377         Ket
   1378         End
   1379 ------------------------------------------------------------------
   1380 
   1381 /^\c/utf
   1382 Failed: error 168 at offset 3: \c must be followed by a printable ASCII character
   1383 
   1384 /(\R*)(.)/s,utf
   1385     \r\n
   1386  0: \x{0d}
   1387  1: 
   1388  2: \x{0d}
   1389     \r\r\n\n\r
   1390  0: \x{0d}\x{0d}\x{0a}\x{0a}\x{0d}
   1391  1: \x{0d}\x{0d}\x{0a}\x{0a}
   1392  2: \x{0d}
   1393     \r\r\n\n\r\n
   1394  0: \x{0d}\x{0d}\x{0a}\x{0a}\x{0d}
   1395  1: \x{0d}\x{0d}\x{0a}\x{0a}
   1396  2: \x{0d}
   1397 
   1398 /(\R)*(.)/s,utf
   1399     \r\n
   1400  0: \x{0d}
   1401  1: <unset>
   1402  2: \x{0d}
   1403     \r\r\n\n\r
   1404  0: \x{0d}\x{0d}\x{0a}\x{0a}\x{0d}
   1405  1: \x{0a}
   1406  2: \x{0d}
   1407     \r\r\n\n\r\n
   1408  0: \x{0d}\x{0d}\x{0a}\x{0a}\x{0d}
   1409  1: \x{0a}
   1410  2: \x{0d}
   1411 
   1412 /[^\x{1234}]+/Ii,utf
   1413 Capturing subpattern count = 0
   1414 Options: caseless utf
   1415 Subject length lower bound = 1
   1416 
   1417 /[^\x{1234}]+?/Ii,utf
   1418 Capturing subpattern count = 0
   1419 Options: caseless utf
   1420 Subject length lower bound = 1
   1421 
   1422 /[^\x{1234}]++/Ii,utf
   1423 Capturing subpattern count = 0
   1424 Options: caseless utf
   1425 Subject length lower bound = 1
   1426 
   1427 /[^\x{1234}]{2}/Ii,utf
   1428 Capturing subpattern count = 0
   1429 Options: caseless utf
   1430 Subject length lower bound = 2
   1431 
   1432 /f.*/
   1433     for\=ph
   1434 Partial match: for
   1435 
   1436 /f.*/s
   1437     for\=ph
   1438 Partial match: for
   1439 
   1440 /f.*/utf
   1441     for\=ph
   1442 Partial match: for
   1443 
   1444 /f.*/s,utf
   1445     for\=ph
   1446 Partial match: for
   1447 
   1448 /\x{d7ff}\x{e000}/utf
   1449 
   1450 /\x{d800}/utf
   1451 Failed: error 173 at offset 7: disallowed Unicode code point (>= 0xd800 && <= 0xdfff)
   1452 
   1453 /\x{dfff}/utf
   1454 Failed: error 173 at offset 7: disallowed Unicode code point (>= 0xd800 && <= 0xdfff)
   1455 
   1456 /\h+/utf
   1457     \x{1681}\x{200b}\x{1680}\x{2000}\x{202f}\x{3000}
   1458  0: \x{1680}\x{2000}\x{202f}\x{3000}
   1459     \x{3001}\x{2fff}\x{200a}\x{a0}\x{2000}
   1460  0: \x{200a}\x{a0}\x{2000}
   1461 
   1462 /[\h\x{e000}]+/B,utf
   1463 ------------------------------------------------------------------
   1464         Bra
   1465         [\x09 \xa0\x{1680}\x{180e}\x{2000}-\x{200a}\x{202f}\x{205f}\x{3000}\x{e000}]++
   1466         Ket
   1467         End
   1468 ------------------------------------------------------------------
   1469     \x{1681}\x{200b}\x{1680}\x{2000}\x{202f}\x{3000}
   1470  0: \x{1680}\x{2000}\x{202f}\x{3000}
   1471     \x{3001}\x{2fff}\x{200a}\x{a0}\x{2000}
   1472  0: \x{200a}\x{a0}\x{2000}
   1473 
   1474 /\H+/utf
   1475     \x{1680}\x{180e}\x{167f}\x{1681}\x{180d}\x{180f}
   1476  0: \x{167f}\x{1681}\x{180d}\x{180f}
   1477     \x{2000}\x{200a}\x{1fff}\x{200b}
   1478  0: \x{1fff}\x{200b}
   1479     \x{202f}\x{205f}\x{202e}\x{2030}\x{205e}\x{2060}
   1480  0: \x{202e}\x{2030}\x{205e}\x{2060}
   1481     \x{a0}\x{3000}\x{9f}\x{a1}\x{2fff}\x{3001}
   1482  0: \x{9f}\x{a1}\x{2fff}\x{3001}
   1483 
   1484 /[\H\x{d7ff}]+/B,utf
   1485 ------------------------------------------------------------------
   1486         Bra
   1487         [\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff\x{100}-\x{167f}\x{1681}-\x{180d}\x{180f}-\x{1fff}\x{200b}-\x{202e}\x{2030}-\x{205e}\x{2060}-\x{2fff}\x{3001}-\x{10ffff}\x{d7ff}]++
   1488         Ket
   1489         End
   1490 ------------------------------------------------------------------
   1491     \x{1680}\x{180e}\x{167f}\x{1681}\x{180d}\x{180f}
   1492  0: \x{167f}\x{1681}\x{180d}\x{180f}
   1493     \x{2000}\x{200a}\x{1fff}\x{200b}
   1494  0: \x{1fff}\x{200b}
   1495     \x{202f}\x{205f}\x{202e}\x{2030}\x{205e}\x{2060}
   1496  0: \x{202e}\x{2030}\x{205e}\x{2060}
   1497     \x{a0}\x{3000}\x{9f}\x{a1}\x{2fff}\x{3001}
   1498  0: \x{9f}\x{a1}\x{2fff}\x{3001}
   1499 
   1500 /\v+/utf
   1501     \x{2027}\x{2030}\x{2028}\x{2029}
   1502  0: \x{2028}\x{2029}
   1503     \x09\x0e\x{84}\x{86}\x{85}\x0a\x0b\x0c\x0d
   1504  0: \x{85}\x{0a}\x{0b}\x{0c}\x{0d}
   1505 
   1506 /[\v\x{e000}]+/B,utf
   1507 ------------------------------------------------------------------
   1508         Bra
   1509         [\x0a-\x0d\x85\x{2028}-\x{2029}\x{e000}]++
   1510         Ket
   1511         End
   1512 ------------------------------------------------------------------
   1513     \x{2027}\x{2030}\x{2028}\x{2029}
   1514  0: \x{2028}\x{2029}
   1515     \x09\x0e\x{84}\x{86}\x{85}\x0a\x0b\x0c\x0d
   1516  0: \x{85}\x{0a}\x{0b}\x{0c}\x{0d}
   1517 
   1518 /\V+/utf
   1519     \x{2028}\x{2029}\x{2027}\x{2030}
   1520  0: \x{2027}\x{2030}
   1521     \x{85}\x0a\x0b\x0c\x0d\x09\x0e\x{84}\x{86}
   1522  0: \x{09}\x{0e}\x{84}\x{86}
   1523 
   1524 /[\V\x{d7ff}]+/B,utf
   1525 ------------------------------------------------------------------
   1526         Bra
   1527         [\x00-\x09\x0e-\x84\x86-\xff\x{100}-\x{2027}\x{202a}-\x{10ffff}\x{d7ff}]++
   1528         Ket
   1529         End
   1530 ------------------------------------------------------------------
   1531     \x{2028}\x{2029}\x{2027}\x{2030}
   1532  0: \x{2027}\x{2030}
   1533     \x{85}\x0a\x0b\x0c\x0d\x09\x0e\x{84}\x{86}
   1534  0: \x{09}\x{0e}\x{84}\x{86}
   1535 
   1536 /\R+/bsr=unicode,utf
   1537     \x{2027}\x{2030}\x{2028}\x{2029}
   1538  0: \x{2028}\x{2029}
   1539     \x09\x0e\x{84}\x{86}\x{85}\x0a\x0b\x0c\x0d
   1540  0: \x{85}\x{0a}\x{0b}\x{0c}\x{0d}
   1541 
   1542 /(..)\1/utf
   1543     ab\=ps
   1544 Partial match: ab
   1545     aba\=ps
   1546 Partial match: aba
   1547     abab\=ps
   1548  0: abab
   1549  1: ab
   1550 
   1551 /(..)\1/i,utf
   1552     ab\=ps
   1553 Partial match: ab
   1554     abA\=ps
   1555 Partial match: abA
   1556     aBAb\=ps
   1557  0: aBAb
   1558  1: aB
   1559 
   1560 /(..)\1{2,}/utf
   1561     ab\=ps
   1562 Partial match: ab
   1563     aba\=ps
   1564 Partial match: aba
   1565     abab\=ps
   1566 Partial match: abab
   1567     ababa\=ps
   1568 Partial match: ababa
   1569     ababab\=ps
   1570  0: ababab
   1571  1: ab
   1572     ababab\=ph
   1573 Partial match: ababab
   1574     abababa\=ps
   1575  0: ababab
   1576  1: ab
   1577     abababa\=ph
   1578 Partial match: abababa
   1579 
   1580 /(..)\1{2,}/i,utf
   1581     ab\=ps
   1582 Partial match: ab
   1583     aBa\=ps
   1584 Partial match: aBa
   1585     aBAb\=ps
   1586 Partial match: aBAb
   1587     AbaBA\=ps
   1588 Partial match: AbaBA
   1589     abABAb\=ps
   1590  0: abABAb
   1591  1: ab
   1592     aBAbaB\=ph
   1593 Partial match: aBAbaB
   1594     abABabA\=ps
   1595  0: abABab
   1596  1: ab
   1597     abaBABa\=ph
   1598 Partial match: abaBABa
   1599 
   1600 /(..)\1{2,}?x/i,utf
   1601     ab\=ps
   1602 Partial match: ab
   1603     abA\=ps
   1604 Partial match: abA
   1605     aBAb\=ps
   1606 Partial match: aBAb
   1607     abaBA\=ps
   1608 Partial match: abaBA
   1609     abAbaB\=ps
   1610 Partial match: abAbaB
   1611     abaBabA\=ps
   1612 Partial match: abaBabA
   1613     abAbABaBx\=ps
   1614  0: abAbABaBx
   1615  1: ab
   1616 
   1617 /./utf,newline=crlf
   1618     \r\=ps
   1619  0: \x{0d}
   1620     \r\=ph
   1621 Partial match: \x{0d}
   1622 
   1623 /.{2,3}/utf,newline=crlf
   1624     \r\=ps
   1625 Partial match: \x{0d}
   1626     \r\=ph
   1627 Partial match: \x{0d}
   1628     \r\r\=ps
   1629  0: \x{0d}\x{0d}
   1630     \r\r\=ph
   1631 Partial match: \x{0d}\x{0d}
   1632     \r\r\r\=ps
   1633  0: \x{0d}\x{0d}\x{0d}
   1634     \r\r\r\=ph
   1635 Partial match: \x{0d}\x{0d}\x{0d}
   1636 
   1637 /.{2,3}?/utf,newline=crlf
   1638     \r\=ps
   1639 Partial match: \x{0d}
   1640     \r\=ph
   1641 Partial match: \x{0d}
   1642     \r\r\=ps
   1643  0: \x{0d}\x{0d}
   1644     \r\r\=ph
   1645 Partial match: \x{0d}\x{0d}
   1646     \r\r\r\=ps
   1647  0: \x{0d}\x{0d}
   1648     \r\r\r\=ph
   1649  0: \x{0d}\x{0d}
   1650 
   1651 /[^\x{100}][^\x{1234}][^\x{ffff}][^\x{10000}][^\x{10ffff}]/B,utf
   1652 ------------------------------------------------------------------
   1653         Bra
   1654         [^\x{100}]
   1655         [^\x{1234}]
   1656         [^\x{ffff}]
   1657         [^\x{10000}]
   1658         [^\x{10ffff}]
   1659         Ket
   1660         End
   1661 ------------------------------------------------------------------
   1662 
   1663 /[^\x{100}][^\x{1234}][^\x{ffff}][^\x{10000}][^\x{10ffff}]/Bi,utf
   1664 ------------------------------------------------------------------
   1665         Bra
   1666      /i [^\x{100}]
   1667      /i [^\x{1234}]
   1668      /i [^\x{ffff}]
   1669      /i [^\x{10000}]
   1670      /i [^\x{10ffff}]
   1671         Ket
   1672         End
   1673 ------------------------------------------------------------------
   1674 
   1675 /[^\x{100}]*[^\x{10000}]+[^\x{10ffff}]??[^\x{8000}]{4,}[^\x{7fff}]{2,9}?[^\x{fffff}]{5,6}+/B,utf
   1676 ------------------------------------------------------------------
   1677         Bra
   1678         [^\x{100}]*
   1679         [^\x{10000}]+
   1680         [^\x{10ffff}]??
   1681         [^\x{8000}]{4}
   1682         [^\x{8000}]*
   1683         [^\x{7fff}]{2}
   1684         [^\x{7fff}]{0,7}?
   1685         [^\x{fffff}]{5}
   1686         [^\x{fffff}]?+
   1687         Ket
   1688         End
   1689 ------------------------------------------------------------------
   1690 
   1691 /[^\x{100}]*[^\x{10000}]+[^\x{10ffff}]??[^\x{8000}]{4,}[^\x{7fff}]{2,9}?[^\x{fffff}]{5,6}+/Bi,utf
   1692 ------------------------------------------------------------------
   1693         Bra
   1694      /i [^\x{100}]*
   1695      /i [^\x{10000}]+
   1696      /i [^\x{10ffff}]??
   1697      /i [^\x{8000}]{4}
   1698      /i [^\x{8000}]*
   1699      /i [^\x{7fff}]{2}
   1700      /i [^\x{7fff}]{0,7}?
   1701      /i [^\x{fffff}]{5}
   1702      /i [^\x{fffff}]?+
   1703         Ket
   1704         End
   1705 ------------------------------------------------------------------
   1706 
   1707 /(?<=\x{1234}\x{1234})\bxy/I,utf
   1708 Capturing subpattern count = 0
   1709 Max lookbehind = 2
   1710 Options: utf
   1711 First code unit = 'x'
   1712 Last code unit = 'y'
   1713 Subject length lower bound = 2
   1714 
   1715 /(?<!^)ETA/utf
   1716 \= Expect no match
   1717     ETA
   1718 No match
   1719 
   1720 /\u0100/B,utf,alt_bsux,allow_empty_class,match_unset_backref
   1721 ------------------------------------------------------------------
   1722         Bra
   1723         \x{100}
   1724         Ket
   1725         End
   1726 ------------------------------------------------------------------
   1727 
   1728 /[\u0100-\u0200]/B,utf,alt_bsux,allow_empty_class,match_unset_backref
   1729 ------------------------------------------------------------------
   1730         Bra
   1731         [\x{100}-\x{200}]
   1732         Ket
   1733         End
   1734 ------------------------------------------------------------------
   1735 
   1736 /\ud800/utf,alt_bsux,allow_empty_class,match_unset_backref
   1737 Failed: error 173 at offset 6: disallowed Unicode code point (>= 0xd800 && <= 0xdfff)
   1738 
   1739 /^a+[a\x{200}]/B,utf
   1740 ------------------------------------------------------------------
   1741         Bra
   1742         ^
   1743         a+
   1744         [a\x{200}]
   1745         Ket
   1746         End
   1747 ------------------------------------------------------------------
   1748     aa
   1749  0: aa
   1750 
   1751 /[b-d\x{200}-\x{250}]*[ae-h]?#[\x{200}-\x{250}]{0,8}[\x00-\xff]*#[\x{200}-\x{250}]+[a-z]/B,utf
   1752 ------------------------------------------------------------------
   1753         Bra
   1754         [b-d\x{200}-\x{250}]*+
   1755         [ae-h]?+
   1756         #
   1757         [\x{200}-\x{250}]{0,8}+
   1758         [\x00-\xff]*
   1759         #
   1760         [\x{200}-\x{250}]++
   1761         [a-z]
   1762         Ket
   1763         End
   1764 ------------------------------------------------------------------
   1765 
   1766 /[\p{L}]/IB
   1767 ------------------------------------------------------------------
   1768         Bra
   1769         [\p{L}]
   1770         Ket
   1771         End
   1772 ------------------------------------------------------------------
   1773 Capturing subpattern count = 0
   1774 Subject length lower bound = 1
   1775 
   1776 /[\p{^L}]/IB
   1777 ------------------------------------------------------------------
   1778         Bra
   1779         [\P{L}]
   1780         Ket
   1781         End
   1782 ------------------------------------------------------------------
   1783 Capturing subpattern count = 0
   1784 Subject length lower bound = 1
   1785 
   1786 /[\P{L}]/IB
   1787 ------------------------------------------------------------------
   1788         Bra
   1789         [\P{L}]
   1790         Ket
   1791         End
   1792 ------------------------------------------------------------------
   1793 Capturing subpattern count = 0
   1794 Subject length lower bound = 1
   1795 
   1796 /[\P{^L}]/IB
   1797 ------------------------------------------------------------------
   1798         Bra
   1799         [\p{L}]
   1800         Ket
   1801         End
   1802 ------------------------------------------------------------------
   1803 Capturing subpattern count = 0
   1804 Subject length lower bound = 1
   1805 
   1806 /[abc\p{L}\x{0660}]/IB,utf
   1807 ------------------------------------------------------------------
   1808         Bra
   1809         [a-c\p{L}\x{660}]
   1810         Ket
   1811         End
   1812 ------------------------------------------------------------------
   1813 Capturing subpattern count = 0
   1814 Options: utf
   1815 Subject length lower bound = 1
   1816 
   1817 /[\p{Nd}]/IB,utf
   1818 ------------------------------------------------------------------
   1819         Bra
   1820         [\p{Nd}]
   1821         Ket
   1822         End
   1823 ------------------------------------------------------------------
   1824 Capturing subpattern count = 0
   1825 Options: utf
   1826 Subject length lower bound = 1
   1827     1234
   1828  0: 1
   1829 
   1830 /[\p{Nd}+-]+/IB,utf
   1831 ------------------------------------------------------------------
   1832         Bra
   1833         [+\-\p{Nd}]++
   1834         Ket
   1835         End
   1836 ------------------------------------------------------------------
   1837 Capturing subpattern count = 0
   1838 Options: utf
   1839 Subject length lower bound = 1
   1840     1234
   1841  0: 1234
   1842     12-34
   1843  0: 12-34
   1844     12+\x{661}-34
   1845  0: 12+\x{661}-34
   1846 \= Expect no match
   1847     abcd
   1848 No match
   1849 
   1850 /(?:[\PPa*]*){8,}/
   1851 
   1852 /[\P{Any}]/B
   1853 ------------------------------------------------------------------
   1854         Bra
   1855         [\P{Any}]
   1856         Ket
   1857         End
   1858 ------------------------------------------------------------------
   1859 
   1860 /[\P{Any}\E]/B
   1861 ------------------------------------------------------------------
   1862         Bra
   1863         [\P{Any}]
   1864         Ket
   1865         End
   1866 ------------------------------------------------------------------
   1867 
   1868 /(\P{Yi}+\277)/
   1869 
   1870 /(\P{Yi}+\277)?/
   1871 
   1872 /(?<=\P{Yi}{3}A)X/
   1873 
   1874 /\p{Yi}+(\P{Yi}+)(?1)/
   1875 
   1876 /(\P{Yi}{2}\277)?/
   1877 
   1878 /[\P{Yi}A]/
   1879 
   1880 /[\P{Yi}\P{Yi}\P{Yi}A]/
   1881 
   1882 /[^\P{Yi}A]/
   1883 
   1884 /[^\P{Yi}\P{Yi}\P{Yi}A]/
   1885 
   1886 /(\P{Yi}*\277)*/
   1887 
   1888 /(\P{Yi}*?\277)*/
   1889 
   1890 /(\p{Yi}*+\277)*/
   1891 
   1892 /(\P{Yi}?\277)*/
   1893 
   1894 /(\P{Yi}??\277)*/
   1895 
   1896 /(\p{Yi}?+\277)*/
   1897 
   1898 /(\P{Yi}{0,3}\277)*/
   1899 
   1900 /(\P{Yi}{0,3}?\277)*/
   1901 
   1902 /(\p{Yi}{0,3}+\277)*/
   1903 
   1904 /\p{Zl}{2,3}+/B,utf
   1905 ------------------------------------------------------------------
   1906         Bra
   1907         prop Zl {2}
   1908         prop Zl ?+
   1909         Ket
   1910         End
   1911 ------------------------------------------------------------------
   1912     
   1915  0: \x{2028}\x{2028}
   1916     \x{2028}\x{2028}\x{2028}
   1917  0: \x{2028}\x{2028}\x{2028}
   1918 
   1919 /\p{Zl}/B,utf
   1920 ------------------------------------------------------------------
   1921         Bra
   1922         prop Zl
   1923         Ket
   1924         End
   1925 ------------------------------------------------------------------
   1926 
   1927 /\p{Lu}{3}+/B,utf
   1928 ------------------------------------------------------------------
   1929         Bra
   1930         prop Lu {3}
   1931         Ket
   1932         End
   1933 ------------------------------------------------------------------
   1934 
   1935 /\pL{2}+/B,utf
   1936 ------------------------------------------------------------------
   1937         Bra
   1938         prop L {2}
   1939         Ket
   1940         End
   1941 ------------------------------------------------------------------
   1942 
   1943 /\p{Cc}{2}+/B,utf
   1944 ------------------------------------------------------------------
   1945         Bra
   1946         prop Cc {2}
   1947         Ket
   1948         End
   1949 ------------------------------------------------------------------
   1950 
   1951 /^\p{Cf}/utf
   1952     \x{180e}
   1953  0: \x{180e}
   1954     \x{061c}
   1955  0: \x{61c}
   1956     \x{2066}
   1957  0: \x{2066}
   1958     \x{2067}
   1959  0: \x{2067}
   1960     \x{2068}
   1961  0: \x{2068}
   1962     \x{2069}
   1963  0: \x{2069}
   1964 
   1965 /^\p{Cs}/utf
   1966     \x{dfff}\=no_utf_check
   1967  0: \x{dfff}
   1968 \= Expect no match
   1969     \x{09f}
   1970 No match
   1971 
   1972 /^\p{Mn}/utf
   1973     \x{1a1b}
   1974  0: \x{1a1b}
   1975 
   1976 /^\p{Pe}/utf
   1977     \x{2309}
   1978  0: \x{2309}
   1979     \x{230b}
   1980  0: \x{230b}
   1981 
   1982 /^\p{Ps}/utf
   1983     \x{2308}
   1984  0: \x{2308}
   1985     \x{230a}
   1986  0: \x{230a}
   1987 
   1988 /^\p{Sc}+/utf
   1989     $\x{a2}\x{a3}\x{a4}\x{a5}\x{a6}
   1990  0: $\x{a2}\x{a3}\x{a4}\x{a5}
   1991     \x{9f2}
   1992  0: \x{9f2}
   1993 \= Expect no match
   1994     X
   1995 No match
   1996     \x{2c2}
   1997 No match
   1998 
   1999 /^\p{Zs}/utf
   2000     \ \
   2001  0:  
   2002     \x{a0}
   2003  0: \x{a0}
   2004     \x{1680}
   2005  0: \x{1680}
   2006     \x{2000}
   2007  0: \x{2000}
   2008     \x{2001}
   2009  0: \x{2001}
   2010 \= Expect no match
   2011     \x{2028}
   2012 No match
   2013     \x{200d}
   2014 No match
   2015 
   2016 # These are here because Perl has problems with the negative versions of the
   2017 # properties and has changed how it behaves for caseless matching.
   2018 
   2019 /\p{^Lu}/i,utf
   2020     1234
   2021  0: 1
   2022 \= Expect no match
   2023     ABC
   2024 No match
   2025 
   2026 /\P{Lu}/i,utf
   2027     1234
   2028  0: 1
   2029 \= Expect no match
   2030     ABC
   2031 No match
   2032 
   2033 /\p{Ll}/i,utf
   2034     a
   2035  0: a
   2036     Az
   2037  0: z
   2038 \= Expect no match
   2039     ABC
   2040 No match
   2041 
   2042 /\p{Lu}/i,utf
   2043     A
   2044  0: A
   2045     a\x{10a0}B
   2046  0: \x{10a0}
   2047 \= Expect no match
   2048     a
   2049 No match
   2050     \x{1d00}
   2051 No match
   2052 
   2053 /\p{Lu}/i,utf
   2054     A
   2055  0: A
   2056     aZ
   2057  0: Z
   2058 \= Expect no match
   2059     abc
   2060 No match
   2061 
   2062 /[\x{c0}\x{391}]/i,utf
   2063     \x{c0}
   2064  0: \x{c0}
   2065     \x{e0}
   2066  0: \x{e0}
   2067 
   2068 # The next two are special cases where the lengths of the different cases of
   2069 # the same character differ. The first went wrong with heap frame storage; the
   2070 # second was broken in all cases.
   2071 
   2072 /^\x{023a}+?(\x{0130}+)/i,utf
   2073   \x{023a}\x{2c65}\x{0130}
   2074  0: \x{23a}\x{2c65}\x{130}
   2075  1: \x{130}
   2076 
   2077 /^\x{023a}+([^X])/i,utf
   2078   \x{023a}\x{2c65}X
   2079  0: \x{23a}\x{2c65}
   2080  1: \x{2c65}
   2081 
   2082 /\x{c0}+\x{116}+/i,utf
   2083     \x{c0}\x{e0}\x{116}\x{117}
   2084  0: \x{c0}\x{e0}\x{116}\x{117}
   2085 
   2086 /[\x{c0}\x{116}]+/i,utf
   2087     \x{c0}\x{e0}\x{116}\x{117}
   2088  0: \x{c0}\x{e0}\x{116}\x{117}
   2089 
   2090 /(\x{de})\1/i,utf
   2091     \x{de}\x{de}
   2092  0: \x{de}\x{de}
   2093  1: \x{de}
   2094     \x{de}\x{fe}
   2095  0: \x{de}\x{fe}
   2096  1: \x{de}
   2097     \x{fe}\x{fe}
   2098  0: \x{fe}\x{fe}
   2099  1: \x{fe}
   2100     \x{fe}\x{de}
   2101  0: \x{fe}\x{de}
   2102  1: \x{fe}
   2103 
   2104 /^\x{c0}$/i,utf
   2105     \x{c0}
   2106  0: \x{c0}
   2107     \x{e0}
   2108  0: \x{e0}
   2109 
   2110 /^\x{e0}$/i,utf
   2111     \x{c0}
   2112  0: \x{c0}
   2113     \x{e0}
   2114  0: \x{e0}
   2115 
   2116 # The next two should be Perl-compatible, but it fails to match \x{e0}. PCRE
   2117 # will match it only with UCP support, because without that it has no notion
   2118 # of case for anything other than the ASCII letters.
   2119 
   2120 /((?i)[\x{c0}])/utf
   2121     \x{c0}
   2122  0: \x{c0}
   2123  1: \x{c0}
   2124     \x{e0}
   2125  0: \x{e0}
   2126  1: \x{e0}
   2127 
   2128 /(?i:[\x{c0}])/utf
   2129     \x{c0}
   2130  0: \x{c0}
   2131     \x{e0}
   2132  0: \x{e0}
   2133 
   2134 # These are PCRE's extra properties to help with Unicodizing \d etc.
   2135 
   2136 /^\p{Xan}/utf
   2137     ABCD
   2138  0: A
   2139     1234
   2140  0: 1
   2141     \x{6ca}
   2142  0: \x{6ca}
   2143     \x{a6c}
   2144  0: \x{a6c}
   2145     \x{10a7}
   2146  0: \x{10a7}
   2147 \= Expect no match
   2148     _ABC
   2149 No match
   2150 
   2151 /^\p{Xan}+/utf
   2152     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
   2153  0: ABCD1234\x{6ca}\x{a6c}\x{10a7}
   2154 \= Expect no match
   2155     _ABC
   2156 No match
   2157 
   2158 /^\p{Xan}+?/utf
   2159     \x{6ca}\x{a6c}\x{10a7}_
   2160  0: \x{6ca}
   2161 
   2162 /^\p{Xan}*/utf
   2163     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
   2164  0: ABCD1234\x{6ca}\x{a6c}\x{10a7}
   2165 
   2166 /^\p{Xan}{2,9}/utf
   2167     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
   2168  0: ABCD1234\x{6ca}
   2169 
   2170 /^\p{Xan}{2,9}?/utf
   2171     \x{6ca}\x{a6c}\x{10a7}_
   2172  0: \x{6ca}\x{a6c}
   2173 
   2174 /^[\p{Xan}]/utf
   2175     ABCD1234_
   2176  0: A
   2177     1234abcd_
   2178  0: 1
   2179     \x{6ca}
   2180  0: \x{6ca}
   2181     \x{a6c}
   2182  0: \x{a6c}
   2183     \x{10a7}
   2184  0: \x{10a7}
   2185 \= Expect no match
   2186     _ABC
   2187 No match
   2188 
   2189 /^[\p{Xan}]+/utf
   2190     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
   2191  0: ABCD1234\x{6ca}\x{a6c}\x{10a7}
   2192 \= Expect no match
   2193     _ABC
   2194 No match
   2195 
   2196 /^>\p{Xsp}/utf
   2197     >\x{1680}\x{2028}\x{0b}
   2198  0: >\x{1680}
   2199     >\x{a0}
   2200  0: >\x{a0}
   2201 \= Expect no match
   2202     \x{0b}
   2203 No match
   2204 
   2205 /^>\p{Xsp}+/utf
   2206     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
   2207  0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
   2208 
   2209 /^>\p{Xsp}+?/utf
   2210     >\x{1680}\x{2028}\x{0b}
   2211  0: >\x{1680}
   2212 
   2213 /^>\p{Xsp}*/utf
   2214     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
   2215  0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
   2216 
   2217 /^>\p{Xsp}{2,9}/utf
   2218     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
   2219  0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
   2220 
   2221 /^>\p{Xsp}{2,9}?/utf
   2222     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
   2223  0: > \x{09}
   2224 
   2225 /^>[\p{Xsp}]/utf
   2226     >\x{2028}\x{0b}
   2227  0: >\x{2028}
   2228 
   2229 /^>[\p{Xsp}]+/utf
   2230     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
   2231  0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
   2232 
   2233 /^>\p{Xps}/utf
   2234     >\x{1680}\x{2028}\x{0b}
   2235  0: >\x{1680}
   2236     >\x{a0}
   2237  0: >\x{a0}
   2238 \= Expect no match
   2239     \x{0b}
   2240 No match
   2241 
   2242 /^>\p{Xps}+/utf
   2243     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
   2244  0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
   2245 
   2246 /^>\p{Xps}+?/utf
   2247     >\x{1680}\x{2028}\x{0b}
   2248  0: >\x{1680}
   2249 
   2250 /^>\p{Xps}*/utf
   2251     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
   2252  0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
   2253 
   2254 /^>\p{Xps}{2,9}/utf
   2255     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
   2256  0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
   2257 
   2258 /^>\p{Xps}{2,9}?/utf
   2259     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
   2260  0: > \x{09}
   2261 
   2262 /^>[\p{Xps}]/utf
   2263     >\x{2028}\x{0b}
   2264  0: >\x{2028}
   2265 
   2266 /^>[\p{Xps}]+/utf
   2267     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
   2268  0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
   2269 
   2270 /^\p{Xwd}/utf
   2271     ABCD
   2272  0: A
   2273     1234
   2274  0: 1
   2275     \x{6ca}
   2276  0: \x{6ca}
   2277     \x{a6c}
   2278  0: \x{a6c}
   2279     \x{10a7}
   2280  0: \x{10a7}
   2281     _ABC
   2282  0: _
   2283 \= Expect no match
   2284     []
   2285 No match
   2286 
   2287 /^\p{Xwd}+/utf
   2288     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
   2289  0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
   2290 
   2291 /^\p{Xwd}+?/utf
   2292     \x{6ca}\x{a6c}\x{10a7}_
   2293  0: \x{6ca}
   2294 
   2295 /^\p{Xwd}*/utf
   2296     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
   2297  0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
   2298 
   2299 /^\p{Xwd}{2,9}/utf
   2300     A_B12\x{6ca}\x{a6c}\x{10a7}
   2301  0: A_B12\x{6ca}\x{a6c}\x{10a7}
   2302 
   2303 /^\p{Xwd}{2,9}?/utf
   2304     \x{6ca}\x{a6c}\x{10a7}_
   2305  0: \x{6ca}\x{a6c}
   2306 
   2307 /^[\p{Xwd}]/utf
   2308     ABCD1234_
   2309  0: A
   2310     1234abcd_
   2311  0: 1
   2312     \x{6ca}
   2313  0: \x{6ca}
   2314     \x{a6c}
   2315  0: \x{a6c}
   2316     \x{10a7}
   2317  0: \x{10a7}
   2318     _ABC
   2319  0: _
   2320 \= Expect no match
   2321     []
   2322 No match
   2323 
   2324 /^[\p{Xwd}]+/utf
   2325     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
   2326  0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
   2327 
   2328 # A check not in UTF-8 mode
   2329 
   2330 /^[\p{Xwd}]+/
   2331     ABCD1234_
   2332  0: ABCD1234_
   2333 
   2334 # Some negative checks
   2335 
   2336 /^[\P{Xwd}]+/utf
   2337     !.+\x{019}\x{35a}AB
   2338  0: !.+\x{19}\x{35a}
   2339 
   2340 /^[\p{^Xwd}]+/utf
   2341     !.+\x{019}\x{35a}AB
   2342  0: !.+\x{19}\x{35a}
   2343 
   2344 /[\D]/B,utf,ucp
   2345 ------------------------------------------------------------------
   2346         Bra
   2347         [\P{Nd}]
   2348         Ket
   2349         End
   2350 ------------------------------------------------------------------
   2351     1\x{3c8}2
   2352  0: \x{3c8}
   2353 
   2354 /[\d]/B,utf,ucp
   2355 ------------------------------------------------------------------
   2356         Bra
   2357         [\p{Nd}]
   2358         Ket
   2359         End
   2360 ------------------------------------------------------------------
   2361     >\x{6f4}<
   2362  0: \x{6f4}
   2363 
   2364 /[\S]/B,utf,ucp
   2365 ------------------------------------------------------------------
   2366         Bra
   2367         [\P{Xsp}]
   2368         Ket
   2369         End
   2370 ------------------------------------------------------------------
   2371     \x{1680}\x{6f4}\x{1680}
   2372  0: \x{6f4}
   2373 
   2374 /[\s]/B,utf,ucp
   2375 ------------------------------------------------------------------
   2376         Bra
   2377         [\p{Xsp}]
   2378         Ket
   2379         End
   2380 ------------------------------------------------------------------
   2381     >\x{1680}<
   2382  0: \x{1680}
   2383 
   2384 /[\W]/B,utf,ucp
   2385 ------------------------------------------------------------------
   2386         Bra
   2387         [\P{Xwd}]
   2388         Ket
   2389         End
   2390 ------------------------------------------------------------------
   2391     A\x{1712}B
   2392  0: \x{1712}
   2393 
   2394 /[\w]/B,utf,ucp
   2395 ------------------------------------------------------------------
   2396         Bra
   2397         [\p{Xwd}]
   2398         Ket
   2399         End
   2400 ------------------------------------------------------------------
   2401     >\x{1723}<
   2402  0: \x{1723}
   2403 
   2404 /\D/B,utf,ucp
   2405 ------------------------------------------------------------------
   2406         Bra
   2407         notprop Nd
   2408         Ket
   2409         End
   2410 ------------------------------------------------------------------
   2411     1\x{3c8}2
   2412  0: \x{3c8}
   2413 
   2414 /\d/B,utf,ucp
   2415 ------------------------------------------------------------------
   2416         Bra
   2417         prop Nd
   2418         Ket
   2419         End
   2420 ------------------------------------------------------------------
   2421     >\x{6f4}<
   2422  0: \x{6f4}
   2423 
   2424 /\S/B,utf,ucp
   2425 ------------------------------------------------------------------
   2426         Bra
   2427         notprop Xsp
   2428         Ket
   2429         End
   2430 ------------------------------------------------------------------
   2431     \x{1680}\x{6f4}\x{1680}
   2432  0: \x{6f4}
   2433 
   2434 /\s/B,utf,ucp
   2435 ------------------------------------------------------------------
   2436         Bra
   2437         prop Xsp
   2438         Ket
   2439         End
   2440 ------------------------------------------------------------------
   2441     >\x{1680}>
   2442  0: \x{1680}
   2443 
   2444 /\W/B,utf,ucp
   2445 ------------------------------------------------------------------
   2446         Bra
   2447         notprop Xwd
   2448         Ket
   2449         End
   2450 ------------------------------------------------------------------
   2451     A\x{1712}B
   2452  0: \x{1712}
   2453 
   2454 /\w/B,utf,ucp
   2455 ------------------------------------------------------------------
   2456         Bra
   2457         prop Xwd
   2458         Ket
   2459         End
   2460 ------------------------------------------------------------------
   2461     >\x{1723}<
   2462  0: \x{1723}
   2463 
   2464 /[[:alpha:]]/B,ucp
   2465 ------------------------------------------------------------------
   2466         Bra
   2467         [\p{L}]
   2468         Ket
   2469         End
   2470 ------------------------------------------------------------------
   2471 
   2472 /[[:lower:]]/B,ucp
   2473 ------------------------------------------------------------------
   2474         Bra
   2475         [\p{Ll}]
   2476         Ket
   2477         End
   2478 ------------------------------------------------------------------
   2479 
   2480 /[[:upper:]]/B,ucp
   2481 ------------------------------------------------------------------
   2482         Bra
   2483         [\p{Lu}]
   2484         Ket
   2485         End
   2486 ------------------------------------------------------------------
   2487 
   2488 /[[:alnum:]]/B,ucp
   2489 ------------------------------------------------------------------
   2490         Bra
   2491         [\p{Xan}]
   2492         Ket
   2493         End
   2494 ------------------------------------------------------------------
   2495 
   2496 /[[:ascii:]]/B,ucp
   2497 ------------------------------------------------------------------
   2498         Bra
   2499         [\x00-\x7f]
   2500         Ket
   2501         End
   2502 ------------------------------------------------------------------
   2503 
   2504 /[[:cntrl:]]/B,ucp
   2505 ------------------------------------------------------------------
   2506         Bra
   2507         [\p{Cc}]
   2508         Ket
   2509         End
   2510 ------------------------------------------------------------------
   2511 
   2512 /[[:digit:]]/B,ucp
   2513 ------------------------------------------------------------------
   2514         Bra
   2515         [\p{Nd}]
   2516         Ket
   2517         End
   2518 ------------------------------------------------------------------
   2519 
   2520 /[[:graph:]]/B,ucp
   2521 ------------------------------------------------------------------
   2522         Bra
   2523         [[:graph:]]
   2524         Ket
   2525         End
   2526 ------------------------------------------------------------------
   2527 
   2528 /[[:print:]]/B,ucp
   2529 ------------------------------------------------------------------
   2530         Bra
   2531         [[:print:]]
   2532         Ket
   2533         End
   2534 ------------------------------------------------------------------
   2535 
   2536 /[[:punct:]]/B,ucp
   2537 ------------------------------------------------------------------
   2538         Bra
   2539         [[:punct:]]
   2540         Ket
   2541         End
   2542 ------------------------------------------------------------------
   2543 
   2544 /[[:space:]]/B,ucp
   2545 ------------------------------------------------------------------
   2546         Bra
   2547         [\p{Xps}]
   2548         Ket
   2549         End
   2550 ------------------------------------------------------------------
   2551 
   2552 /[[:word:]]/B,ucp
   2553 ------------------------------------------------------------------
   2554         Bra
   2555         [\p{Xwd}]
   2556         Ket
   2557         End
   2558 ------------------------------------------------------------------
   2559 
   2560 /[[:xdigit:]]/B,ucp
   2561 ------------------------------------------------------------------
   2562         Bra
   2563         [0-9A-Fa-f]
   2564         Ket
   2565         End
   2566 ------------------------------------------------------------------
   2567 
   2568 # Unicode properties for \b abd \B
   2569 
   2570 /\b...\B/utf,ucp
   2571     abc_
   2572  0: abc
   2573     \x{37e}abc\x{376}
   2574  0: abc
   2575     \x{37e}\x{376}\x{371}\x{393}\x{394}
   2576  0: \x{376}\x{371}\x{393}
   2577     !\x{c0}++\x{c1}\x{c2}
   2578  0: ++\x{c1}
   2579     !\x{c0}+++++
   2580  0: \x{c0}++
   2581 
   2582 # Without PCRE_UCP, non-ASCII always fail, even if < 256
   2583 
   2584 /\b...\B/utf
   2585     abc_
   2586  0: abc
   2587 \= Expect no match
   2588     \x{37e}abc\x{376}
   2589 No match
   2590     \x{37e}\x{376}\x{371}\x{393}\x{394}
   2591 No match
   2592     !\x{c0}++\x{c1}\x{c2}
   2593 No match
   2594     !\x{c0}+++++
   2595 No match
   2596 
   2597 # With PCRE_UCP, non-UTF8 chars that are < 256 still check properties
   2598 
   2599 /\b...\B/ucp
   2600     abc_
   2601  0: abc
   2602     !\x{c0}++\x{c1}\x{c2}
   2603  0: ++\xc1
   2604     !\x{c0}+++++
   2605  0: \xc0++
   2606 
   2607 # Some of these are silly, but they check various combinations
   2608 
   2609 /[[:^alpha:][:^cntrl:]]+/B,utf,ucp
   2610 ------------------------------------------------------------------
   2611         Bra
   2612         [\P{L}\P{Cc}]++
   2613         Ket
   2614         End
   2615 ------------------------------------------------------------------
   2616     123
   2617  0: 123
   2618     abc
   2619  0: abc
   2620 
   2621 /[[:^cntrl:][:^alpha:]]+/B,utf,ucp
   2622 ------------------------------------------------------------------
   2623         Bra
   2624         [\P{Cc}\P{L}]++
   2625         Ket
   2626         End
   2627 ------------------------------------------------------------------
   2628     123
   2629  0: 123
   2630     abc
   2631  0: abc
   2632 
   2633 /[[:alpha:]]+/B,utf,ucp
   2634 ------------------------------------------------------------------
   2635         Bra
   2636         [\p{L}]++
   2637         Ket
   2638         End
   2639 ------------------------------------------------------------------
   2640     abc
   2641  0: abc
   2642 
   2643 /[[:^alpha:]\S]+/B,utf,ucp
   2644 ------------------------------------------------------------------
   2645         Bra
   2646         [\P{L}\P{Xsp}]++
   2647         Ket
   2648         End
   2649 ------------------------------------------------------------------
   2650     123
   2651  0: 123
   2652     abc
   2653  0: abc
   2654 
   2655 /[^\d]+/B,utf,ucp
   2656 ------------------------------------------------------------------
   2657         Bra
   2658         [^\p{Nd}]++
   2659         Ket
   2660         End
   2661 ------------------------------------------------------------------
   2662     abc123
   2663  0: abc
   2664     abc\x{123}
   2665  0: abc\x{123}
   2666     \x{660}abc
   2667  0: abc
   2668 
   2669 /\p{Lu}+9\p{Lu}+B\p{Lu}+b/B
   2670 ------------------------------------------------------------------
   2671         Bra
   2672         prop Lu ++
   2673         9
   2674         prop Lu +
   2675         B
   2676         prop Lu ++
   2677         b
   2678         Ket
   2679         End
   2680 ------------------------------------------------------------------
   2681 
   2682 /\p{^Lu}+9\p{^Lu}+B\p{^Lu}+b/B
   2683 ------------------------------------------------------------------
   2684         Bra
   2685         notprop Lu +
   2686         9
   2687         notprop Lu ++
   2688         B
   2689         notprop Lu +
   2690         b
   2691         Ket
   2692         End
   2693 ------------------------------------------------------------------
   2694 
   2695 /\P{Lu}+9\P{Lu}+B\P{Lu}+b/B
   2696 ------------------------------------------------------------------
   2697         Bra
   2698         notprop Lu +
   2699         9
   2700         notprop Lu ++
   2701         B
   2702         notprop Lu +
   2703         b
   2704         Ket
   2705         End
   2706 ------------------------------------------------------------------
   2707 
   2708 /\p{Han}+X\p{Greek}+\x{370}/B,utf
   2709 ------------------------------------------------------------------
   2710         Bra
   2711         prop Han ++
   2712         X
   2713         prop Greek +
   2714         \x{370}
   2715         Ket
   2716         End
   2717 ------------------------------------------------------------------
   2718 
   2719 /\p{Xan}+!\p{Xan}+A/B
   2720 ------------------------------------------------------------------
   2721         Bra
   2722         prop Xan ++
   2723         !
   2724         prop Xan +
   2725         A
   2726         Ket
   2727         End
   2728 ------------------------------------------------------------------
   2729 
   2730 /\p{Xsp}+!\p{Xsp}\t/B
   2731 ------------------------------------------------------------------
   2732         Bra
   2733         prop Xsp ++
   2734         !
   2735         prop Xsp
   2736         \x09
   2737         Ket
   2738         End
   2739 ------------------------------------------------------------------
   2740 
   2741 /\p{Xps}+!\p{Xps}\t/B
   2742 ------------------------------------------------------------------
   2743         Bra
   2744         prop Xps ++
   2745         !
   2746         prop Xps
   2747         \x09
   2748         Ket
   2749         End
   2750 ------------------------------------------------------------------
   2751 
   2752 /\p{Xwd}+!\p{Xwd}_/B
   2753 ------------------------------------------------------------------
   2754         Bra
   2755         prop Xwd ++
   2756         !
   2757         prop Xwd
   2758         _
   2759         Ket
   2760         End
   2761 ------------------------------------------------------------------
   2762 
   2763 /A+\p{N}A+\dB+\p{N}*B+\d*/B,ucp
   2764 ------------------------------------------------------------------
   2765         Bra
   2766         A++
   2767         prop N
   2768         A++
   2769         prop Nd
   2770         B+
   2771         prop N *+
   2772         B++
   2773         prop Nd *+
   2774         Ket
   2775         End
   2776 ------------------------------------------------------------------
   2777 
   2778 # These behaved oddly in Perl, so they are kept in this test
   2779 
   2780 /(\x{23a}\x{23a}\x{23a})?\1/i,utf
   2781 \= Expect no match
   2782     \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}
   2783 No match
   2784 
   2785 /()?\1/i,utf
   2786 \= Expect no match
   2787     
   2788 No match
   2789 
   2790 /(\x{23a}\x{23a}\x{23a})?\1/i,utf
   2791     \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
   2792  0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
   2793  1: \x{23a}\x{23a}\x{23a}
   2794 
   2795 /()?\1/i,utf
   2796     
   2797  0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
   2798  1: \x{23a}\x{23a}\x{23a}
   2799 
   2800 /(\x{23a}\x{23a}\x{23a})\1/i,utf
   2801 \= Expect no match
   2802     \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}
   2803 No match
   2804 
   2805 /()\1/i,utf
   2806 \= Expect no match
   2807     
   2808 No match
   2809 
   2810 /(\x{23a}\x{23a}\x{23a})\1/i,utf
   2811     \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
   2812  0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
   2813  1: \x{23a}\x{23a}\x{23a}
   2814 
   2815 /()\1/i,utf
   2816     
   2817  0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
   2818  1: \x{23a}\x{23a}\x{23a}
   2819 
   2820 /(\x{2c65}\x{2c65})\1/i,utf
   2821     \x{2c65}\x{2c65}\x{23a}\x{23a}
   2822  0: \x{2c65}\x{2c65}\x{23a}\x{23a}
   2823  1: \x{2c65}\x{2c65}
   2824 
   2825 /()\1/i,utf
   2826     
   2827  0: \x{2c65}\x{2c65}\x{23a}\x{23a}
   2828  1: \x{2c65}\x{2c65}
   2829 
   2830 /(\x{23a}\x{23a}\x{23a})\1Y/i,utf
   2831     X\x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}YZ
   2832  0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}Y
   2833  1: \x{23a}\x{23a}\x{23a}
   2834 
   2835 /(\x{2c65}\x{2c65})\1Y/i,utf
   2836     X\x{2c65}\x{2c65}\x{23a}\x{23a}YZ
   2837  0: \x{2c65}\x{2c65}\x{23a}\x{23a}Y
   2838  1: \x{2c65}\x{2c65}
   2839 
   2840 # These scripts weren't yet in Perl when I added Unicode 6.0.0 to PCRE
   2841 
   2842 /^[\p{Batak}]/utf
   2843     \x{1bc0}
   2844  0: \x{1bc0}
   2845     \x{1bff}
   2846  0: \x{1bff}
   2847 \= Expect no match
   2848     \x{1bf4}
   2849 No match
   2850 
   2851 /^[\p{Brahmi}]/utf
   2852     \x{11000}
   2853  0: \x{11000}
   2854     \x{1106f}
   2855  0: \x{1106f}
   2856 \= Expect no match
   2857     \x{1104e}
   2858 No match
   2859 
   2860 /^[\p{Mandaic}]/utf
   2861     \x{840}
   2862  0: \x{840}
   2863     \x{85e}
   2864  0: \x{85e}
   2865 \= Expect no match
   2866     \x{85c}
   2867 No match
   2868     \x{85d}
   2869 No match
   2870 
   2871 /(\X*)(.)/s,utf
   2872     A\x{300}
   2873  0: A
   2874  1: 
   2875  2: A
   2876 
   2877 /^S(\X*)e(\X*)$/utf
   2878     Stereo
   2879  0: Ste\x{301}re\x{301}o
   2880  1: te\x{301}r
   2881  2: \x{301}o
   2882 
   2883 /^\X/utf
   2884     reo
   2885  0: \x{301}
   2886 
   2887 /^a\X41z/alt_bsux,allow_empty_class,match_unset_backref,dupnames
   2888     aX41z
   2889  0: aX41z
   2890 \= Expect no match
   2891     aAz
   2892 No match
   2893 
   2894 /\X/
   2895     a\=ps
   2896  0: a
   2897     a\=ph
   2898 Partial match: a
   2899 
   2900 /\Xa/
   2901     aa\=ps
   2902  0: aa
   2903     aa\=ph
   2904  0: aa
   2905 
   2906 /\X{2}/
   2907     aa\=ps
   2908  0: aa
   2909     aa\=ph
   2910 Partial match: aa
   2911 
   2912 /\X+a/
   2913     a\=ps
   2914 Partial match: a
   2915     aa\=ps
   2916  0: aa
   2917     aa\=ph
   2918 Partial match: aa
   2919 
   2920 /\X+?a/
   2921     a\=ps
   2922 Partial match: a
   2923     ab\=ps
   2924 Partial match: ab
   2925     aa\=ps
   2926  0: aa
   2927     aa\=ph
   2928  0: aa
   2929     aba\=ps
   2930  0: aba
   2931 
   2932 # These Unicode 6.1.0 scripts are not known to Perl.
   2933 
   2934 /\p{Chakma}\d/utf,ucp
   2935     \x{11100}\x{1113c}
   2936  0: \x{11100}\x{1113c}
   2937 
   2938 /\p{Takri}\d/utf,ucp
   2939     \x{11680}\x{116c0}
   2940  0: \x{11680}\x{116c0}
   2941 
   2942 /^\X/utf
   2943     A\=ps
   2944  0: A
   2945     A\=ph
   2946 Partial match: A
   2947     A\x{300}\x{301}\=ps
   2948  0: A\x{300}\x{301}
   2949     A\x{300}\x{301}\=ph
   2950 Partial match: A\x{300}\x{301}
   2951     A\x{301}\=ps
   2952  0: A\x{301}
   2953     A\x{301}\=ph
   2954 Partial match: A\x{301}
   2955 
   2956 /^\X{2,3}/utf
   2957     A\=ps
   2958 Partial match: A
   2959     A\=ph
   2960 Partial match: A
   2961     AA\=ps
   2962  0: AA
   2963     AA\=ph
   2964 Partial match: AA
   2965     A\x{300}\x{301}\=ps
   2966 Partial match: A\x{300}\x{301}
   2967     A\x{300}\x{301}\=ph
   2968 Partial match: A\x{300}\x{301}
   2969     A\x{300}\x{301}A\x{300}\x{301}\=ps
   2970  0: A\x{300}\x{301}A\x{300}\x{301}
   2971     A\x{300}\x{301}A\x{300}\x{301}\=ph
   2972 Partial match: A\x{300}\x{301}A\x{300}\x{301}
   2973 
   2974 /^\X{2}/utf
   2975     AA\=ps
   2976  0: AA
   2977     AA\=ph
   2978 Partial match: AA
   2979     A\x{300}\x{301}A\x{300}\x{301}\=ps
   2980  0: A\x{300}\x{301}A\x{300}\x{301}
   2981     A\x{300}\x{301}A\x{300}\x{301}\=ph
   2982 Partial match: A\x{300}\x{301}A\x{300}\x{301}
   2983 
   2984 /^\X+/utf
   2985     AA\=ps
   2986  0: AA
   2987     AA\=ph
   2988 Partial match: AA
   2989 
   2990 /^\X+?Z/utf
   2991     AA\=ps
   2992 Partial match: AA
   2993     AA\=ph
   2994 Partial match: AA
   2995 
   2996 /A\x{3a3}B/IBi,utf
   2997 ------------------------------------------------------------------
   2998         Bra
   2999      /i A
   3000         clist 03a3 03c2 03c3
   3001      /i B
   3002         Ket
   3003         End
   3004 ------------------------------------------------------------------
   3005 Capturing subpattern count = 0
   3006 Options: caseless utf
   3007 First code unit = 'A' (caseless)
   3008 Last code unit = 'B' (caseless)
   3009 Subject length lower bound = 3
   3010 
   3011 /[\x{3a3}]/Bi,utf
   3012 ------------------------------------------------------------------
   3013         Bra
   3014         clist 03a3 03c2 03c3
   3015         Ket
   3016         End
   3017 ------------------------------------------------------------------
   3018 
   3019 /[^\x{3a3}]/Bi,utf
   3020 ------------------------------------------------------------------
   3021         Bra
   3022         not clist 03a3 03c2 03c3
   3023         Ket
   3024         End
   3025 ------------------------------------------------------------------
   3026 
   3027 /[\x{3a3}]+/Bi,utf
   3028 ------------------------------------------------------------------
   3029         Bra
   3030         clist 03a3 03c2 03c3 ++
   3031         Ket
   3032         End
   3033 ------------------------------------------------------------------
   3034 
   3035 /[^\x{3a3}]+/Bi,utf
   3036 ------------------------------------------------------------------
   3037         Bra
   3038         not clist 03a3 03c2 03c3 ++
   3039         Ket
   3040         End
   3041 ------------------------------------------------------------------
   3042 
   3043 /a*\x{3a3}/Bi,utf
   3044 ------------------------------------------------------------------
   3045         Bra
   3046      /i a*+
   3047         clist 03a3 03c2 03c3
   3048         Ket
   3049         End
   3050 ------------------------------------------------------------------
   3051 
   3052 /\x{3a3}+a/Bi,utf
   3053 ------------------------------------------------------------------
   3054         Bra
   3055         clist 03a3 03c2 03c3 ++
   3056      /i a
   3057         Ket
   3058         End
   3059 ------------------------------------------------------------------
   3060 
   3061 /\x{3a3}*\x{3c2}/Bi,utf
   3062 ------------------------------------------------------------------
   3063         Bra
   3064         clist 03a3 03c2 03c3 *
   3065         clist 03a3 03c2 03c3
   3066         Ket
   3067         End
   3068 ------------------------------------------------------------------
   3069 
   3070 /\x{3a3}{3}/i,utf,aftertext
   3071     \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2}
   3072  0: \x{3a3}\x{3c3}\x{3c2}
   3073  0+ \x{3a3}\x{3c3}\x{3c2}
   3074 
   3075 /\x{3a3}{2,4}/i,utf,aftertext
   3076     \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2}
   3077  0: \x{3a3}\x{3c3}\x{3c2}\x{3a3}
   3078  0+ \x{3c3}\x{3c2}
   3079 
   3080 /\x{3a3}{2,4}?/i,utf,aftertext
   3081     \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2}
   3082  0: \x{3a3}\x{3c3}
   3083  0+ \x{3c2}\x{3a3}\x{3c3}\x{3c2}
   3084 
   3085 /\x{3a3}+./i,utf,aftertext
   3086     \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2}
   3087  0: \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2}
   3088  0+ 
   3089 
   3090 /\x{3a3}++./i,utf,aftertext
   3091 \= Expect no match
   3092     \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2}
   3093 No match
   3094 
   3095 /\x{3a3}*\x{3c2}/Bi,utf
   3096 ------------------------------------------------------------------
   3097         Bra
   3098         clist 03a3 03c2 03c3 *
   3099         clist 03a3 03c2 03c3
   3100         Ket
   3101         End
   3102 ------------------------------------------------------------------
   3103 
   3104 /[^\x{3a3}]*\x{3c2}/Bi,utf
   3105 ------------------------------------------------------------------
   3106         Bra
   3107         not clist 03a3 03c2 03c3 *+
   3108         clist 03a3 03c2 03c3
   3109         Ket
   3110         End
   3111 ------------------------------------------------------------------
   3112 
   3113 /[^a]*\x{3c2}/Bi,utf
   3114 ------------------------------------------------------------------
   3115         Bra
   3116      /i [^a]*
   3117         clist 03a3 03c2 03c3
   3118         Ket
   3119         End
   3120 ------------------------------------------------------------------
   3121 
   3122 /ist/Bi,utf
   3123 ------------------------------------------------------------------
   3124         Bra
   3125      /i i
   3126         clist 0053 0073 017f
   3127      /i t
   3128         Ket
   3129         End
   3130 ------------------------------------------------------------------
   3131 \= Expect no match
   3132     ikt
   3133 No match
   3134 
   3135 /is+t/i,utf
   3136     iSs\x{17f}t
   3137  0: iSs\x{17f}t
   3138 \= Expect no match
   3139     ikt
   3140 No match
   3141 
   3142 /is+?t/i,utf
   3143 \= Expect no match
   3144     ikt
   3145 No match
   3146 
   3147 /is?t/i,utf
   3148 \= Expect no match
   3149     ikt
   3150 No match
   3151 
   3152 /is{2}t/i,utf
   3153 \= Expect no match
   3154     iskt
   3155 No match
   3156 
   3157 # This property is a PCRE special
   3158 
   3159 /^\p{Xuc}/utf
   3160     $abc
   3161  0: $
   3162     @abc
   3163  0: @
   3164     `abc
   3165  0: `
   3166     \x{1234}abc
   3167  0: \x{1234}
   3168 \= Expect no match
   3169     abc
   3170 No match
   3171 
   3172 /^\p{Xuc}+/utf
   3173     $@`\x{a0}\x{1234}\x{e000}**
   3174  0: $@`\x{a0}\x{1234}\x{e000}
   3175 \= Expect no match
   3176     \x{9f}
   3177 No match
   3178 
   3179 /^\p{Xuc}+?/utf
   3180     $@`\x{a0}\x{1234}\x{e000}**
   3181  0: $
   3182 \= Expect no match
   3183     \x{9f}
   3184 No match
   3185 
   3186 /^\p{Xuc}+?\*/utf
   3187     $@`\x{a0}\x{1234}\x{e000}**
   3188  0: $@`\x{a0}\x{1234}\x{e000}*
   3189 \= Expect no match
   3190     \x{9f}
   3191 No match
   3192 
   3193 /^\p{Xuc}++/utf
   3194     $@`\x{a0}\x{1234}\x{e000}**
   3195  0: $@`\x{a0}\x{1234}\x{e000}
   3196 \= Expect no match
   3197     \x{9f}
   3198 No match
   3199 
   3200 /^\p{Xuc}{3,5}/utf
   3201     $@`\x{a0}\x{1234}\x{e000}**
   3202  0: $@`\x{a0}\x{1234}
   3203 \= Expect no match
   3204     \x{9f}
   3205 No match
   3206 
   3207 /^\p{Xuc}{3,5}?/utf
   3208     $@`\x{a0}\x{1234}\x{e000}**
   3209  0: $@`
   3210 \= Expect no match
   3211     \x{9f}
   3212 No match
   3213 
   3214 /^[\p{Xuc}]/utf
   3215     $@`\x{a0}\x{1234}\x{e000}**
   3216  0: $
   3217 \= Expect no match
   3218     \x{9f}
   3219 No match
   3220 
   3221 /^[\p{Xuc}]+/utf
   3222     $@`\x{a0}\x{1234}\x{e000}**
   3223  0: $@`\x{a0}\x{1234}\x{e000}
   3224 \= Expect no match
   3225     \x{9f}
   3226 No match
   3227 
   3228 /^\P{Xuc}/utf
   3229     abc
   3230  0: a
   3231 \= Expect no match
   3232     $abc
   3233 No match
   3234     @abc
   3235 No match
   3236     `abc
   3237 No match
   3238     \x{1234}abc
   3239 No match
   3240 
   3241 /^[\P{Xuc}]/utf
   3242     abc
   3243  0: a
   3244 \= Expect no match
   3245     $abc
   3246 No match
   3247     @abc
   3248 No match
   3249     `abc
   3250 No match
   3251     \x{1234}abc
   3252 No match
   3253 
   3254 # Some auto-possessification tests
   3255 
   3256 /\pN+\z/B
   3257 ------------------------------------------------------------------
   3258         Bra
   3259         prop N ++
   3260         \z
   3261         Ket
   3262         End
   3263 ------------------------------------------------------------------
   3264 
   3265 /\PN+\z/B
   3266 ------------------------------------------------------------------
   3267         Bra
   3268         notprop N ++
   3269         \z
   3270         Ket
   3271         End
   3272 ------------------------------------------------------------------
   3273 
   3274 /\pN+/B
   3275 ------------------------------------------------------------------
   3276         Bra
   3277         prop N ++
   3278         Ket
   3279         End
   3280 ------------------------------------------------------------------
   3281 
   3282 /\PN+/B
   3283 ------------------------------------------------------------------
   3284         Bra
   3285         notprop N ++
   3286         Ket
   3287         End
   3288 ------------------------------------------------------------------
   3289 
   3290 /\p{Any}+\p{Any} \p{Any}+\P{Any} \p{Any}+\p{L&} \p{Any}+\p{L} \p{Any}+\p{Lu} \p{Any}+\p{Han} \p{Any}+\p{Xan} \p{Any}+\p{Xsp} \p{Any}+\p{Xps} \p{Xwd}+\p{Any} \p{Any}+\p{Xuc}/Bx,ucp
   3291 ------------------------------------------------------------------
   3292         Bra
   3293         prop Any +
   3294         prop Any
   3295         prop Any +
   3296         notprop Any
   3297         prop Any +
   3298         prop L&
   3299         prop Any +
   3300         prop L
   3301         prop Any +
   3302         prop Lu
   3303         prop Any +
   3304         prop Han
   3305         prop Any +
   3306         prop Xan
   3307         prop Any +
   3308         prop Xsp
   3309         prop Any +
   3310         prop Xps
   3311         prop Xwd +
   3312         prop Any
   3313         prop Any +
   3314         prop Xuc
   3315         Ket
   3316         End
   3317 ------------------------------------------------------------------
   3318 
   3319 /\p{L&}+\p{Any} \p{L&}+\p{L&} \P{L&}+\p{L&} \p{L&}+\p{L} \p{L&}+\p{Lu} \p{L&}+\p{Han} \p{L&}+\p{Xan} \p{L&}+\P{Xan} \p{L&}+\p{Xsp} \p{L&}+\p{Xps} \p{Xwd}+\p{L&} \p{L&}+\p{Xuc}/Bx,ucp
   3320 ------------------------------------------------------------------
   3321         Bra
   3322         prop L& +
   3323         prop Any
   3324         prop L& +
   3325         prop L&
   3326         notprop L& ++
   3327         prop L&
   3328         prop L& +
   3329         prop L
   3330         prop L& +
   3331         prop Lu
   3332         prop L& +
   3333         prop Han
   3334         prop L& +
   3335         prop Xan
   3336         prop L& ++
   3337         notprop Xan
   3338         prop L& ++
   3339         prop Xsp
   3340         prop L& ++
   3341         prop Xps
   3342         prop Xwd +
   3343         prop L&
   3344         prop L& +
   3345         prop Xuc
   3346         Ket
   3347         End
   3348 ------------------------------------------------------------------
   3349 
   3350 /\p{N}+\p{Any} \p{N}+\p{L&} \p{N}+\p{L} \p{N}+\P{L} \p{N}+\P{N} \p{N}+\p{Lu} \p{N}+\p{Han} \p{N}+\p{Xan} \p{N}+\p{Xsp} \p{N}+\p{Xps} \p{Xwd}+\p{N} \p{N}+\p{Xuc}/Bx,ucp
   3351 ------------------------------------------------------------------
   3352         Bra
   3353         prop N +
   3354         prop Any
   3355         prop N +
   3356         prop L&
   3357         prop N ++
   3358         prop L
   3359         prop N +
   3360         notprop L
   3361         prop N ++
   3362         notprop N
   3363         prop N ++
   3364         prop Lu
   3365         prop N +
   3366         prop Han
   3367         prop N +
   3368         prop Xan
   3369         prop N ++
   3370         prop Xsp
   3371         prop N ++
   3372         prop Xps
   3373         prop Xwd +
   3374         prop N
   3375         prop N +
   3376         prop Xuc
   3377         Ket
   3378         End
   3379 ------------------------------------------------------------------
   3380 
   3381 /\p{Lu}+\p{Any} \p{Lu}+\p{L&} \p{Lu}+\p{L} \p{Lu}+\p{Lu} \P{Lu}+\p{Lu} \p{Lu}+\p{Nd} \p{Lu}+\P{Nd} \p{Lu}+\p{Han} \p{Lu}+\p{Xan} \p{Lu}+\p{Xsp} \p{Lu}+\p{Xps} \p{Xwd}+\p{Lu} \p{Lu}+\p{Xuc}/Bx,ucp
   3382 ------------------------------------------------------------------
   3383         Bra
   3384         prop Lu +
   3385         prop Any
   3386         prop Lu +
   3387         prop L&
   3388         prop Lu +
   3389         prop L
   3390         prop Lu +
   3391         prop Lu
   3392         notprop Lu ++
   3393         prop Lu
   3394         prop Lu ++
   3395         prop Nd
   3396         prop Lu +
   3397         notprop Nd
   3398         prop Lu +
   3399         prop Han
   3400         prop Lu +
   3401         prop Xan
   3402         prop Lu ++
   3403         prop Xsp
   3404         prop Lu ++
   3405         prop Xps
   3406         prop Xwd +
   3407         prop Lu
   3408         prop Lu +
   3409         prop Xuc
   3410         Ket
   3411         End
   3412 ------------------------------------------------------------------
   3413 
   3414 /\p{Han}+\p{Lu} \p{Han}+\p{L&} \p{Han}+\p{L} \p{Han}+\p{Lu} \p{Han}+\p{Arabic} \p{Arabic}+\p{Arabic} \p{Han}+\p{Xan} \p{Han}+\p{Xsp} \p{Han}+\p{Xps} \p{Xwd}+\p{Han} \p{Han}+\p{Xuc}/Bx,ucp
   3415 ------------------------------------------------------------------
   3416         Bra
   3417         prop Han +
   3418         prop Lu
   3419         prop Han +
   3420         prop L&
   3421         prop Han +
   3422         prop L
   3423         prop Han +
   3424         prop Lu
   3425         prop Han ++
   3426         prop Arabic
   3427         prop Arabic +
   3428         prop Arabic
   3429         prop Han +
   3430         prop Xan
   3431         prop Han +
   3432         prop Xsp
   3433         prop Han +
   3434         prop Xps
   3435         prop Xwd +
   3436         prop Han
   3437         prop Han +
   3438         prop Xuc
   3439         Ket
   3440         End
   3441 ------------------------------------------------------------------
   3442 
   3443 /\p{Xan}+\p{Any} \p{Xan}+\p{L&} \P{Xan}+\p{L&} \p{Xan}+\p{L} \p{Xan}+\p{Lu} \p{Xan}+\p{Han} \p{Xan}+\p{Xan} \p{Xan}+\P{Xan} \p{Xan}+\p{Xsp} \p{Xan}+\p{Xps} \p{Xwd}+\p{Xan} \p{Xan}+\p{Xuc}/Bx,ucp
   3444 ------------------------------------------------------------------
   3445         Bra
   3446         prop Xan +
   3447         prop Any
   3448         prop Xan +
   3449         prop L&
   3450         notprop Xan ++
   3451         prop L&
   3452         prop Xan +
   3453         prop L
   3454         prop Xan +
   3455         prop Lu
   3456         prop Xan +
   3457         prop Han
   3458         prop Xan +
   3459         prop Xan
   3460         prop Xan ++
   3461         notprop Xan
   3462         prop Xan ++
   3463         prop Xsp
   3464         prop Xan ++
   3465         prop Xps
   3466         prop Xwd +
   3467         prop Xan
   3468         prop Xan +
   3469         prop Xuc
   3470         Ket
   3471         End
   3472 ------------------------------------------------------------------
   3473 
   3474 /\p{Xsp}+\p{Any} \p{Xsp}+\p{L&} \p{Xsp}+\p{L} \p{Xsp}+\p{Lu} \p{Xsp}+\p{Han} \p{Xsp}+\p{Xan} \p{Xsp}+\p{Xsp} \P{Xsp}+\p{Xsp} \p{Xsp}+\p{Xps} \p{Xwd}+\p{Xsp} \p{Xsp}+\p{Xuc}/Bx,ucp
   3475 ------------------------------------------------------------------
   3476         Bra
   3477         prop Xsp +
   3478         prop Any
   3479         prop Xsp ++
   3480         prop L&
   3481         prop Xsp ++
   3482         prop L
   3483         prop Xsp ++
   3484         prop Lu
   3485         prop Xsp +
   3486         prop Han
   3487         prop Xsp ++
   3488         prop Xan
   3489         prop Xsp +
   3490         prop Xsp
   3491         notprop Xsp ++
   3492         prop Xsp
   3493         prop Xsp +
   3494         prop Xps
   3495         prop Xwd ++
   3496         prop Xsp
   3497         prop Xsp +
   3498         prop Xuc
   3499         Ket
   3500         End
   3501 ------------------------------------------------------------------
   3502 
   3503 /\p{Xwd}+\p{Any} \p{Xwd}+\p{L&} \p{Xwd}+\p{L} \p{Xwd}+\p{Lu} \p{Xwd}+\p{Han} \p{Xwd}+\p{Xan} \p{Xwd}+\p{Xsp} \p{Xwd}+\p{Xps} \p{Xwd}+\p{Xwd} \p{Xwd}+\P{Xwd} \p{Xwd}+\p{Xuc}/Bx,ucp
   3504 ------------------------------------------------------------------
   3505         Bra
   3506         prop Xwd +
   3507         prop Any
   3508         prop Xwd +
   3509         prop L&
   3510         prop Xwd +
   3511         prop L
   3512         prop Xwd +
   3513         prop Lu
   3514         prop Xwd +
   3515         prop Han
   3516         prop Xwd +
   3517         prop Xan
   3518         prop Xwd ++
   3519         prop Xsp
   3520         prop Xwd ++
   3521         prop Xps
   3522         prop Xwd +
   3523         prop Xwd
   3524         prop Xwd ++
   3525         notprop Xwd
   3526         prop Xwd +
   3527         prop Xuc
   3528         Ket
   3529         End
   3530 ------------------------------------------------------------------
   3531 
   3532 /\p{Xuc}+\p{Any} \p{Xuc}+\p{L&} \p{Xuc}+\p{L} \p{Xuc}+\p{Lu} \p{Xuc}+\p{Han} \p{Xuc}+\p{Xan} \p{Xuc}+\p{Xsp} \p{Xuc}+\p{Xps} \p{Xwd}+\p{Xuc} \p{Xuc}+\p{Xuc} \p{Xuc}+\P{Xuc}/Bx,ucp
   3533 ------------------------------------------------------------------
   3534         Bra
   3535         prop Xuc +
   3536         prop Any
   3537         prop Xuc +
   3538         prop L&
   3539         prop Xuc +
   3540         prop L
   3541         prop Xuc +
   3542         prop Lu
   3543         prop Xuc +
   3544         prop Han
   3545         prop Xuc +
   3546         prop Xan
   3547         prop Xuc +
   3548         prop Xsp
   3549         prop Xuc +
   3550         prop Xps
   3551         prop Xwd +
   3552         prop Xuc
   3553         prop Xuc +
   3554         prop Xuc
   3555         prop Xuc ++
   3556         notprop Xuc
   3557         Ket
   3558         End
   3559 ------------------------------------------------------------------
   3560 
   3561 /\p{N}+\p{Ll} \p{N}+\p{Nd} \p{N}+\P{Nd}/Bx,ucp
   3562 ------------------------------------------------------------------
   3563         Bra
   3564         prop N ++
   3565         prop Ll
   3566         prop N +
   3567         prop Nd
   3568         prop N +
   3569         notprop Nd
   3570         Ket
   3571         End
   3572 ------------------------------------------------------------------
   3573 
   3574 /\p{Xan}+\p{L} \p{Xan}+\p{N} \p{Xan}+\p{C} \p{Xan}+\P{L} \P{Xan}+\p{N} \p{Xan}+\P{C}/Bx,ucp
   3575 ------------------------------------------------------------------
   3576         Bra
   3577         prop Xan +
   3578         prop L
   3579         prop Xan +
   3580         prop N
   3581         prop Xan ++
   3582         prop C
   3583         prop Xan +
   3584         notprop L
   3585         notprop Xan ++
   3586         prop N
   3587         prop Xan +
   3588         notprop C
   3589         Ket
   3590         End
   3591 ------------------------------------------------------------------
   3592 
   3593 /\p{L}+\p{Xan} \p{N}+\p{Xan} \p{C}+\p{Xan} \P{L}+\p{Xan} \p{N}+\p{Xan} \P{C}+\p{Xan} \p{L}+\P{Xan}/Bx,ucp
   3594 ------------------------------------------------------------------
   3595         Bra
   3596         prop L +
   3597         prop Xan
   3598         prop N +
   3599         prop Xan
   3600         prop C ++
   3601         prop Xan
   3602         notprop L +
   3603         prop Xan
   3604         prop N +
   3605         prop Xan
   3606         notprop C +
   3607         prop Xan
   3608         prop L ++
   3609         notprop Xan
   3610         Ket
   3611         End
   3612 ------------------------------------------------------------------
   3613 
   3614 /\p{Xan}+\p{Lu} \p{Xan}+\p{Nd} \p{Xan}+\p{Cc} \p{Xan}+\P{Ll} \P{Xan}+\p{No} \p{Xan}+\P{Cf}/Bx,ucp
   3615 ------------------------------------------------------------------
   3616         Bra
   3617         prop Xan +
   3618         prop Lu
   3619         prop Xan +
   3620         prop Nd
   3621         prop Xan ++
   3622         prop Cc
   3623         prop Xan +
   3624         notprop Ll
   3625         notprop Xan ++
   3626         prop No
   3627         prop Xan +
   3628         notprop Cf
   3629         Ket
   3630         End
   3631 ------------------------------------------------------------------
   3632 
   3633 /\p{Lu}+\p{Xan} \p{Nd}+\p{Xan} \p{Cs}+\p{Xan} \P{Lt}+\p{Xan} \p{Nl}+\p{Xan} \P{Cc}+\p{Xan} \p{Lt}+\P{Xan}/Bx,ucp
   3634 ------------------------------------------------------------------
   3635         Bra
   3636         prop Lu +
   3637         prop Xan
   3638         prop Nd +
   3639         prop Xan
   3640         prop Cs ++
   3641         prop Xan
   3642         notprop Lt +
   3643         prop Xan
   3644         prop Nl +
   3645         prop Xan
   3646         notprop Cc +
   3647         prop Xan
   3648         prop Lt ++
   3649         notprop Xan
   3650         Ket
   3651         End
   3652 ------------------------------------------------------------------
   3653 
   3654 /\w+\p{P} \w+\p{Po} \w+\s \p{Xan}+\s \s+\p{Xan} \s+\w/Bx,ucp
   3655 ------------------------------------------------------------------
   3656         Bra
   3657         prop Xwd +
   3658         prop P
   3659         prop Xwd +
   3660         prop Po
   3661         prop Xwd ++
   3662         prop Xsp
   3663         prop Xan ++
   3664         prop Xsp
   3665         prop Xsp ++
   3666         prop Xan
   3667         prop Xsp ++
   3668         prop Xwd
   3669         Ket
   3670         End
   3671 ------------------------------------------------------------------
   3672 
   3673 /\w+\P{P} \W+\p{Po} \w+\S \P{Xan}+\s \s+\P{Xan} \s+\W/Bx,ucp
   3674 ------------------------------------------------------------------
   3675         Bra
   3676         prop Xwd +
   3677         notprop P
   3678         notprop Xwd +
   3679         prop Po
   3680         prop Xwd +
   3681         notprop Xsp
   3682         notprop Xan +
   3683         prop Xsp
   3684         prop Xsp +
   3685         notprop Xan
   3686         prop Xsp +
   3687         notprop Xwd
   3688         Ket
   3689         End
   3690 ------------------------------------------------------------------
   3691 
   3692 /\w+\p{Po} \w+\p{Pc} \W+\p{Po} \W+\p{Pc} \w+\P{Po} \w+\P{Pc}/Bx,ucp
   3693 ------------------------------------------------------------------
   3694         Bra
   3695         prop Xwd +
   3696         prop Po
   3697         prop Xwd ++
   3698         prop Pc
   3699         notprop Xwd +
   3700         prop Po
   3701         notprop Xwd +
   3702         prop Pc
   3703         prop Xwd +
   3704         notprop Po
   3705         prop Xwd +
   3706         notprop Pc
   3707         Ket
   3708         End
   3709 ------------------------------------------------------------------
   3710 
   3711 /\p{Nl}+\p{Xan} \P{Nl}+\p{Xan} \p{Nl}+\P{Xan} \P{Nl}+\P{Xan}/Bx,ucp
   3712 ------------------------------------------------------------------
   3713         Bra
   3714         prop Nl +
   3715         prop Xan
   3716         notprop Nl +
   3717         prop Xan
   3718         prop Nl ++
   3719         notprop Xan
   3720         notprop Nl +
   3721         notprop Xan
   3722         Ket
   3723         End
   3724 ------------------------------------------------------------------
   3725 
   3726 /\p{Xan}+\p{Nl} \P{Xan}+\p{Nl} \p{Xan}+\P{Nl} \P{Xan}+\P{Nl}/Bx,ucp
   3727 ------------------------------------------------------------------
   3728         Bra
   3729         prop Xan +
   3730         prop Nl
   3731         notprop Xan ++
   3732         prop Nl
   3733         prop Xan +
   3734         notprop Nl
   3735         notprop Xan +
   3736         notprop Nl
   3737         Ket
   3738         End
   3739 ------------------------------------------------------------------
   3740 
   3741 /\p{Xan}+\p{Nd} \P{Xan}+\p{Nd} \p{Xan}+\P{Nd} \P{Xan}+\P{Nd}/Bx,ucp
   3742 ------------------------------------------------------------------
   3743         Bra
   3744         prop Xan +
   3745         prop Nd
   3746         notprop Xan ++
   3747         prop Nd
   3748         prop Xan +
   3749         notprop Nd
   3750         notprop Xan +
   3751         notprop Nd
   3752         Ket
   3753         End
   3754 ------------------------------------------------------------------
   3755 
   3756 # End auto-possessification tests
   3757 
   3758 /\w+/B,utf,ucp,auto_callout
   3759 ------------------------------------------------------------------
   3760         Bra
   3761         Callout 255 0 3
   3762         prop Xwd ++
   3763         Callout 255 3 0
   3764         Ket
   3765         End
   3766 ------------------------------------------------------------------
   3767     abcd
   3768 --->abcd
   3769  +0 ^        \w+
   3770  +3 ^   ^    End of pattern
   3771  0: abcd
   3772 
   3773 /[\p{N}]?+/B,no_auto_possess
   3774 ------------------------------------------------------------------
   3775         Bra
   3776         [\p{N}]?+
   3777         Ket
   3778         End
   3779 ------------------------------------------------------------------
   3780 
   3781 /[\p{L}ab]{2,3}+/B,no_auto_possess
   3782 ------------------------------------------------------------------
   3783         Bra
   3784         [ab\p{L}]{2,3}+
   3785         Ket
   3786         End
   3787 ------------------------------------------------------------------
   3788 
   3789 /\D+\X \d+\X \S+\X \s+\X \W+\X \w+\X \R+\X \H+\X \h+\X \V+\X \v+\X a+\X \n+\X .+\X/Bx
   3790 ------------------------------------------------------------------
   3791         Bra
   3792         \D+
   3793         extuni
   3794         \d+
   3795         extuni
   3796         \S+
   3797         extuni
   3798         \s+
   3799         extuni
   3800         \W+
   3801         extuni
   3802         \w+
   3803         extuni
   3804         \R+
   3805         extuni
   3806         \H+
   3807         extuni
   3808         \h+
   3809         extuni
   3810         \V+
   3811         extuni
   3812         \v+
   3813         extuni
   3814         a+
   3815         extuni
   3816         \x0a+
   3817         extuni
   3818         Any+
   3819         extuni
   3820         Ket
   3821         End
   3822 ------------------------------------------------------------------
   3823 
   3824 /.+\X/Bsx
   3825 ------------------------------------------------------------------
   3826         Bra
   3827         AllAny+
   3828         extuni
   3829         Ket
   3830         End
   3831 ------------------------------------------------------------------
   3832 
   3833 /\X+$/Bmx
   3834 ------------------------------------------------------------------
   3835         Bra
   3836         extuni+
   3837      /m $
   3838         Ket
   3839         End
   3840 ------------------------------------------------------------------
   3841 
   3842 /\X+\D \X+\d \X+\S \X+\s \X+\W \X+\w \X+. \X+\R \X+\H \X+\h \X+\V \X+\v \X+\X \X+\Z \X+\z \X+$/Bx
   3843 ------------------------------------------------------------------
   3844         Bra
   3845         extuni+
   3846         \D
   3847         extuni+
   3848         \d
   3849         extuni+
   3850         \S
   3851         extuni+
   3852         \s
   3853         extuni+
   3854         \W
   3855         extuni+
   3856         \w
   3857         extuni+
   3858         Any
   3859         extuni+
   3860         \R
   3861         extuni+
   3862         \H
   3863         extuni+
   3864         \h
   3865         extuni+
   3866         \V
   3867         extuni+
   3868         \v
   3869         extuni+
   3870         extuni
   3871         extuni+
   3872         \Z
   3873         extuni++
   3874         \z
   3875         extuni+
   3876         $
   3877         Ket
   3878         End
   3879 ------------------------------------------------------------------
   3880 
   3881 /\d+\s{0,5}=\s*\S?=\w{0,4}\W*/B,utf,ucp
   3882 ------------------------------------------------------------------
   3883         Bra
   3884         prop Nd ++
   3885         prop Xsp {0,5}+
   3886         =
   3887         prop Xsp *+
   3888         notprop Xsp ?
   3889         =
   3890         prop Xwd {0,4}+
   3891         notprop Xwd *+
   3892         Ket
   3893         End
   3894 ------------------------------------------------------------------
   3895 
   3896 /[RST]+/Bi,utf,ucp
   3897 ------------------------------------------------------------------
   3898         Bra
   3899         [R-Tr-t\x{17f}]++
   3900         Ket
   3901         End
   3902 ------------------------------------------------------------------
   3903 
   3904 /[R-T]+/Bi,utf,ucp
   3905 ------------------------------------------------------------------
   3906         Bra
   3907         [R-Tr-t\x{17f}]++
   3908         Ket
   3909         End
   3910 ------------------------------------------------------------------
   3911 
   3912 /[Q-U]+/Bi,utf,ucp
   3913 ------------------------------------------------------------------
   3914         Bra
   3915         [Q-Uq-u\x{17f}]++
   3916         Ket
   3917         End
   3918 ------------------------------------------------------------------
   3919 
   3920 /^s?c/Iim,utf
   3921 Capturing subpattern count = 0
   3922 Options: caseless multiline utf
   3923 First code unit at start or follows newline
   3924 Last code unit = 'c' (caseless)
   3925 Subject length lower bound = 1
   3926     scat
   3927  0: sc
   3928 
   3929 /\X?abc/utf,no_start_optimize
   3930     \xff\x7f\x00\x00\x03\x00\x41\xcc\x80\x41\x{300}\x61\x62\x63\x00\=no_utf_check,offset=06
   3931  0: A\x{300}abc
   3932 
   3933 /\x{100}\x{200}\K\x{300}/utf,startchar
   3934     \x{100}\x{200}\x{300}
   3935  0: \x{100}\x{200}\x{300}
   3936     ^^^^^^^^^^^^^^
   3937 
   3938 # Test UTF characters in a substitution
   3939 
   3940 /bc/utf,replace=XZ
   3941     123bc123
   3942  1: 123X\x{1234}Z123
   3943 
   3944 /(?<=abc)(|def)/g,utf,replace=<$0>
   3945     123abcyzabcdef789abcqr
   3946  4: 123abc<>\x{e1}yzabc<><def>789abc<>\x{1234}qr
   3947 
   3948 /[A-`]/iB,utf
   3949 ------------------------------------------------------------------
   3950         Bra
   3951         [A-z\x{212a}\x{17f}]
   3952         Ket
   3953         End
   3954 ------------------------------------------------------------------
   3955     abcdefghijklmno
   3956  0: a
   3957 
   3958 /(?<=\K\x{17f})/g,utf,aftertext
   3959     \x{17f}\x{17f}\x{17f}\x{17f}\x{17f}
   3960  0: \x{17f}
   3961  0+ \x{17f}\x{17f}\x{17f}\x{17f}
   3962  0: \x{17f}
   3963  0+ \x{17f}\x{17f}\x{17f}
   3964  0: \x{17f}
   3965  0+ \x{17f}\x{17f}
   3966  0: \x{17f}
   3967  0+ \x{17f}
   3968  0: \x{17f}
   3969  0+ 
   3970 
   3971 /(?<=\K\x{17f})/altglobal,utf,aftertext
   3972     \x{17f}\x{17f}\x{17f}\x{17f}\x{17f}
   3973  0: \x{17f}
   3974  0+ \x{17f}\x{17f}\x{17f}\x{17f}
   3975  0: \x{17f}
   3976  0+ \x{17f}\x{17f}\x{17f}
   3977  0: \x{17f}
   3978  0+ \x{17f}\x{17f}
   3979  0: \x{17f}
   3980  0+ \x{17f}
   3981  0: \x{17f}
   3982  0+ 
   3983 
   3984 "\xa\xf<(.\pZ*\P{Xwd}+^\xa8\3'3yq.::?(?J:()\xd1+!~:3'(8?:)':(?'d'(?'d'^u]!.+.+\\A\Ah(n+?9){7}+\K;(?'X'u'(?'c'(?'z'(?<y>\xb::\xf0'|\xd3(\xae?'w(z\x8?P>l)\x8?P>a)'\H\R\xd1+!!~:3'(?:h$N{26875}\W+?\\=D{2}\x89(?i:Uy0\N({2\xa(\v\x85*){y*\A(()\p{L}+?\P{^Xan}'+?\xff\+pS\?|).{;y*\A(()\p{L}+?\8}\d?1(|)(/1){7}.+[Lp{Me}].\s\xdcC*?(?(<y>))(?<!^)$C((;*?(R))+(\xbf(R))\x8a\X*?\x8a\xb\xd1^9\3*+(\xc1,\k'R'\xb4)\xcc(z\z(?J)(?'X'\x1b(\xb\xd1^9\?'3*+P{^Xan}+?\xff\+(\xc1.]k+\xb'Pm'\xb4)\xcc4f\xa7'\xd1V(?i:U,{2,2})'(?'X'))?-%--\x95$9*\4'|\xd1(\x9c''%\x94$9)#(?'R')3\x7?('P\xed7'\xa8\xb1^u\xeaw\1\0\0\(|(?1){7}.+[\p{Me}].\s\xdcC*^\x14?(?(<y>))(?<!^)$C((;*?(R*?))+(?(R)\x8a\X*?\x8a\xb\xd1^9\3*+|(\xc1,\k'R'\xb4)\xcc! z)\z(?JJ)(?'X';(\xb\xd1^9\?'3*+(\xc1.]k+\xb'Pm'\xb4))':(?'d')(?'RD'(d')|)|$)'|(?<x>\g{d});\g{x}\x11\g{d}\x81\|$((?'X'\'X'(?'W''\x92()'9'\x83*))\xba*\!?^ <){)':;\xcc4'\xd1'(?'X'28))?-%--\x95$9*\4'|\xd1((''e\x94*$9:)*#(?'R')3)\x7?('P\xed')\\x16:;()\x1e\x10*:(?<y>)\xd1+0!~:(?)'d'E:yD!\s(?'R'\x1e;\x10:U))|'\x9g!\xb0*){)\\x16:;()\x1e\x10\x87*:(?<y>)\xd1+!~:(?)'}'\d'E:yD!\s(?'R'\x1e;\x10:U))|'))|)g!\xb0*R+9{29+)#(?'P'})*?pS\{3,}\x85,{0,}l{*UTF)(\xe{7}){3722,{9,}d{2,?|))|{)\(A?&d}}{\xa,}2}){3,}7,l{)22}(,}l:7{2,4}}29\x19+)#?'P'})*v?))\x5"
   3985 Failed: error 122 at offset 1227: unmatched closing parenthesis
   3986 
   3987 /$(&.+[\p{Me}].\s\xdcC*?(?(<y>))(?<!^)$C((;*?(R))+(?(R)){0,6}?|){12\x8a\X*?\x8a\x0b\xd1^9\3*+(\xc1,\k'P'\xb4)\xcc(z\z(?JJ)(?'X'8};(\x0b\xd1^9\?'3*+(\xc1.]k+\x0b'Pm'\xb4\xcc4'\xd1'(?'X'))?-%--\x95$9*\4'|\xd1(''%\x95*$9)#(?'R')3\x07?('P\xed')\\x16:;()\x1e\x10*:(?<y>)\xd1+!~:(?)''(d'E:yD!\s(?'R'\x1e;\x10:U))|')g!\xb0*){29+))#(?'P'})*?/
   3988 
   3989 "(*UTF)(*UCP)(.UTF).+X(\V+;\^(\D|)!999}(?(?C{7(?C')\H*\S*/^\x5\xa\\xd3\x85n?(;\D*(?m).[^mH+((*UCP)(*U:F)})(?!^)(?'"
   3990 Failed: error 162 at offset 113: subpattern name expected
   3991 
   3992 /[\pS#moq]/
   3993     =
   3994  0: =
   3995 
   3996 /(*:a\x{12345}b\t(d\)c)xxx/utf,alt_verbnames,mark
   3997     cxxxz
   3998  0: xxx
   3999 MK: a\x{12345}b\x{09}(d)c
   4000 
   4001 /abcd/utf,replace=x\x{824}y\o{3333}z(\Q12\$34$$\x34\E5$$),substitute_extended
   4002     abcd
   4003  1: x\x{824}y\x{6db}z(12\$34$$\x345$)
   4004 
   4005 /a(\x{e0}\x{101})(\x{c0}\x{102})/utf,replace=a\u$1\U$1\E$1\l$2\L$2\Eab\U\x{e0}\x{101}\L\x{d0}\x{160}\EDone,substitute_extended
   4006     a\x{e0}\x{101}\x{c0}\x{102}
   4007  1: a\x{c0}\x{101}\x{c0}\x{100}\x{e0}\x{101}\x{e0}\x{102}\x{e0}\x{103}ab\x{c0}\x{100}\x{f0}\x{161}Done
   4008 
   4009 /((?<digit>\d)|(?<letter>\p{L}))/g,substitute_extended,replace=<${digit:+digit; :not digit; }${letter:+letter:not a letter}>
   4010     ab12cde
   4011  7: <not digit; letter><not digit; letter><digit; not a letter><digit; not a letter><not digit; letter><not digit; letter><not digit; letter>
   4012 
   4013 /(*UCP)(*UTF)[[:>:]]X/B
   4014 ------------------------------------------------------------------
   4015         Bra
   4016         \b
   4017         AssertB
   4018         Reverse
   4019         prop Xwd
   4020         Ket
   4021         X
   4022         Ket
   4023         End
   4024 ------------------------------------------------------------------
   4025 
   4026 /abc/utf,replace=xyz
   4027     abc\=zero_terminate
   4028  1: xyz
   4029 
   4030 /a[[:punct:]b]/ucp,bincode
   4031 ------------------------------------------------------------------
   4032         Bra
   4033         a
   4034         [b[:punct:]]
   4035         Ket
   4036         End
   4037 ------------------------------------------------------------------
   4038 
   4039 /a[[:punct:]b]/utf,ucp,bincode
   4040 ------------------------------------------------------------------
   4041         Bra
   4042         a
   4043         [b[:punct:]]
   4044         Ket
   4045         End
   4046 ------------------------------------------------------------------
   4047 
   4048 /a[b[:punct:]]/utf,ucp,bincode
   4049 ------------------------------------------------------------------
   4050         Bra
   4051         a
   4052         [b[:punct:]]
   4053         Ket
   4054         End
   4055 ------------------------------------------------------------------
   4056 
   4057 /[[:^ascii:]]/utf,ucp,bincode
   4058 ------------------------------------------------------------------
   4059         Bra
   4060         [\x80-\xff] (neg)
   4061         Ket
   4062         End
   4063 ------------------------------------------------------------------
   4064 
   4065 /[[:^ascii:]\w]/utf,ucp,bincode
   4066 ------------------------------------------------------------------
   4067         Bra
   4068         [\x80-\xff\p{Xwd}\x{100}-\x{10ffff}]
   4069         Ket
   4070         End
   4071 ------------------------------------------------------------------
   4072 
   4073 /[\w[:^ascii:]]/utf,ucp,bincode
   4074 ------------------------------------------------------------------
   4075         Bra
   4076         [\x80-\xff\p{Xwd}\x{100}-\x{10ffff}]
   4077         Ket
   4078         End
   4079 ------------------------------------------------------------------
   4080 
   4081 /[^[:ascii:]\W]/utf,ucp,bincode
   4082 ------------------------------------------------------------------
   4083         Bra
   4084         [^\x00-\x7f\P{Xwd}]
   4085         Ket
   4086         End
   4087 ------------------------------------------------------------------
   4088     \x{de}
   4089  0: \x{de}
   4090     \x{200}
   4091  0: \x{200}
   4092 \= Expect no match
   4093     \x{300}
   4094 No match
   4095     \x{37e}
   4096 No match
   4097 
   4098 /[[:^ascii:]a]/utf,ucp,bincode
   4099 ------------------------------------------------------------------
   4100         Bra
   4101         [a\x80-\xff] (neg)
   4102         Ket
   4103         End
   4104 ------------------------------------------------------------------
   4105 
   4106 /L(?#(|++<!(2)?/B,utf,no_auto_possess,auto_callout
   4107 ------------------------------------------------------------------
   4108         Bra
   4109         Callout 255 0 14
   4110         L?
   4111         Callout 255 14 0
   4112         Ket
   4113         End
   4114 ------------------------------------------------------------------
   4115 
   4116 /L(?#(|++<!(2)?/B,utf,ucp,auto_callout
   4117 ------------------------------------------------------------------
   4118         Bra
   4119         Callout 255 0 14
   4120         L?+
   4121         Callout 255 14 0
   4122         Ket
   4123         End
   4124 ------------------------------------------------------------------
   4125 
   4126 /(*UTF)C\x09((?<!'(?x)!*H? #\xcc\x9a[^$]/
   4127 Failed: error 114 at offset 39: missing closing parenthesis
   4128 
   4129 /[\D]/utf
   4130     \x{1d7cf}
   4131  0: \x{1d7cf}
   4132 
   4133 /[\D\P{Nd}]/utf
   4134     \x{1d7cf}
   4135  0: \x{1d7cf}
   4136 
   4137 /[^\D]/utf
   4138     a9b
   4139  0: 9
   4140 \= Expect no match
   4141     \x{1d7cf}
   4142 No match
   4143 
   4144 /[^\D\P{Nd}]/utf
   4145     a9b
   4146  0: 9
   4147     \x{1d7cf}
   4148  0: \x{1d7cf}
   4149 \= Expect no match
   4150     \x{10000}
   4151 No match
   4152 
   4153 # Hex uses pattern length, not zero-terminated. This tests for overrunning
   4154 # the given length of a pattern.
   4155 
   4156 /'(*UTF)'/hex
   4157 
   4158 /'#('/hex,extended,utf
   4159 
   4160 /a(?<=A\XB)/utf
   4161 Failed: error 125 at offset 1: lookbehind assertion is not fixed length
   4162 
   4163 /ab(?<=A\RB)/utf
   4164 Failed: error 125 at offset 2: lookbehind assertion is not fixed length
   4165 
   4166 /../utf,auto_callout
   4167     \n\x{123}\x{123}\x{123}\x{123}
   4168 --->\x{0a}\x{123}\x{123}\x{123}\x{123}
   4169  +0 ^                                      .
   4170  +0       ^                                .
   4171  +1       ^      ^                         .
   4172  +2       ^             ^                  End of pattern
   4173  0: \x{123}\x{123}
   4174 
   4175 # This tests processing wide characters in extended mode.
   4176 
   4177 /X/x,utf
   4178 
   4179 # These three test a bug fix that was not clearing up after a locale setting
   4180 # when the test or a subsequent one matched a wide character.
   4181 
   4182 //locale=C
   4183 
   4184 /[\P{Yi}]/utf
   4185 \x{2f000}
   4186  0: \x{2f000}
   4187 
   4188 /[\P{Yi}]/utf,locale=C
   4189 \x{2f000}
   4190  0: \x{2f000}
   4191 
   4192 /^(?<!(?=))/B,utf
   4193 ------------------------------------------------------------------
   4194         Bra
   4195         ^
   4196         AssertB not
   4197         Assert
   4198         \x{10385c}
   4199         Ket
   4200         Ket
   4201         Ket
   4202         End
   4203 ------------------------------------------------------------------
   4204 
   4205 # Horizontal and vertical space lists ignore caseless
   4206 
   4207 /[\HH]/Bi,utf
   4208 ------------------------------------------------------------------
   4209         Bra
   4210         [\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff\x{100}-\x{167f}\x{1681}-\x{180d}\x{180f}-\x{1fff}\x{200b}-\x{202e}\x{2030}-\x{205e}\x{2060}-\x{2fff}\x{3001}-\x{10ffff}]
   4211         Ket
   4212         End
   4213 ------------------------------------------------------------------
   4214 
   4215 /[^\HH]/Bi,utf
   4216 ------------------------------------------------------------------
   4217         Bra
   4218         [^\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff\x{100}-\x{167f}\x{1681}-\x{180d}\x{180f}-\x{1fff}\x{200b}-\x{202e}\x{2030}-\x{205e}\x{2060}-\x{2fff}\x{3001}-\x{10ffff}]
   4219         Ket
   4220         End
   4221 ------------------------------------------------------------------
   4222 
   4223 //g,utf
   4224     \=zero_terminate
   4225  0: 
   4226 
   4227 /^(?1)\p{Nd}{3}(a)/
   4228     a123a
   4229  0: a123a
   4230  1: a
   4231 
   4232 /\p{Nd}{0,3}[\pL](*:abc)(?C1)xxx/callout_info
   4233 Callout 1  x
   4234 
   4235 # ---------------------------------------------------------------------------
   4236 
   4237 # A bunch of tests that hit lines of code that others do not (at least when
   4238 # these were created).
   4239 
   4240 /^[^a]{3,}?x/i,utf,no_start_optimize,no_auto_possess
   4241 \= Expect no match
   4242     bbb
   4243 No match
   4244     cc
   4245 No match
   4246 
   4247 /^[ac]{3,}?x/i,utf,no_start_optimize,no_auto_possess
   4248 \= Expect no match
   4249     aaa\x{100}
   4250 No match
   4251 
   4252 /^X\X/no_start_optimize,no_auto_possess
   4253 \= Expect no match
   4254     X
   4255 No match
   4256 
   4257 /^X\p{L&}+?/no_start_optimize,no_auto_possess
   4258 \= Expect no match
   4259     X
   4260 No match
   4261 
   4262 /^X\p{L}+?/no_start_optimize,no_auto_possess
   4263 \= Expect no match
   4264     X
   4265 No match
   4266 
   4267 /^X\p{Lu}+?/no_start_optimize,no_auto_possess
   4268 \= Expect no match
   4269     X
   4270 No match
   4271 
   4272 /^X\p{Arabic}+?/no_start_optimize,no_auto_possess
   4273 \= Expect no match
   4274     X
   4275 No match
   4276 
   4277 /^X\p{Xan}+?/ucp,no_start_optimize,no_auto_possess
   4278 \= Expect no match
   4279     X
   4280 No match
   4281 
   4282 /^X\s+?/ucp,no_start_optimize,no_auto_possess
   4283 \= Expect no match
   4284     X
   4285 No match
   4286     XX
   4287 No match
   4288 
   4289 /^X\S+?/ucp,no_start_optimize,no_auto_possess
   4290     XX
   4291  0: XX
   4292 \= Expect no match
   4293     X
   4294 No match
   4295 
   4296 /^X\w+?/ucp,no_start_optimize,no_auto_possess
   4297 \= Expect no match
   4298     X
   4299 No match
   4300 
   4301 /^X[^\x{b5}]+?/i,utf,no_start_optimize,no_auto_possess
   4302 \= Expect no match
   4303     X
   4304 No match
   4305 
   4306 /^X[\x{b5}]+?/i,utf,no_start_optimize,no_auto_possess
   4307 \= Expect no match
   4308     X
   4309 No match
   4310 
   4311 /^X\p{Xuc}+?/utf,no_start_optimize,no_auto_possess
   4312 \= Expect no match
   4313     X
   4314 No match
   4315 
   4316 /^X.+?Z/s,utf,no_start_optimize,no_auto_possess
   4317 \= Expect no match
   4318     X
   4319 No match
   4320 
   4321 /^X\R+?/utf,no_start_optimize,no_auto_possess
   4322 \= Expect no match
   4323     X
   4324 No match
   4325 
   4326 /^X\H+?/utf,no_start_optimize,no_auto_possess
   4327 \= Expect no match
   4328     X
   4329 No match
   4330 
   4331 /^X\V+?/utf,no_start_optimize,no_auto_possess
   4332 \= Expect no match
   4333     X
   4334 No match
   4335 
   4336 /^X\s+?/utf,no_start_optimize,no_auto_possess
   4337 \= Expect no match
   4338     X
   4339 No match
   4340     XX
   4341 No match
   4342 
   4343 /^X\S+?/utf,no_start_optimize,no_auto_possess
   4344 \= Expect no match
   4345     X
   4346 No match
   4347 
   4348 /^X\p{Any}{1,3}?Z/s,no_start_optimize,no_auto_possess
   4349     XYYYZ
   4350  0: XYYYZ
   4351 \= Expect no match
   4352     XY
   4353 No match
   4354     XYY
   4355 No match
   4356     XYYY
   4357 No match
   4358     XYYYYZ
   4359 No match
   4360 
   4361 /^X\p{L&}{1,3}?Z/s,no_start_optimize,no_auto_possess
   4362 \= Expect no match
   4363     XY
   4364 No match
   4365     XY!
   4366 No match
   4367 
   4368 /^X\p{L}{1,3}?Z/s,no_start_optimize,no_auto_possess
   4369 \= Expect no match
   4370     XY
   4371 No match
   4372     XY!
   4373 No match
   4374 
   4375 /^X\p{Lu}{1,3}?Z/s,no_start_optimize,no_auto_possess
   4376 \= Expect no match
   4377     XY
   4378 No match
   4379     XY!
   4380 No match
   4381 
   4382 /^X\P{Han}{1,3}?Z/s,utf,no_start_optimize,no_auto_possess
   4383 \= Expect no match
   4384     XY
   4385 No match
   4386     XY!
   4387 No match
   4388     XY\x{2f00}!
   4389 No match
   4390 
   4391 /^X\p{Xan}{1,3}?Z/s,no_start_optimize,no_auto_possess
   4392 \= Expect no match
   4393     XY
   4394 No match
   4395     XY!
   4396 No match
   4397 
   4398 /^X\p{Xsp}{1,3}?Z/s,no_start_optimize,no_auto_possess
   4399 \= Expect no match
   4400     X\n
   4401 No match
   4402     X\n!
   4403 No match
   4404     X\n\n! 
   4405 No match
   4406 
   4407 /^X\P{Xsp}{1,3}?Z/s,no_start_optimize,no_auto_possess
   4408 \= Expect no match
   4409     XYY\n
   4410 No match
   4411 
   4412 /^X\p{Xwd}{1,3}?Z/s,no_start_optimize,no_auto_possess
   4413 \= Expect no match
   4414     XY
   4415 No match
   4416     XY!
   4417 No match
   4418     XYY! 
   4419 No match
   4420 
   4421 /^X\x{b5}+?Z/i,utf,no_start_optimize,no_auto_possess
   4422 \= Expect no match
   4423     X
   4424 No match
   4425     X\x{b5} 
   4426 No match
   4427     X\x{b5}\x{b5}Y 
   4428 No match
   4429 
   4430 /^X\p{Xuc}+?Z/utf,no_start_optimize,no_auto_possess
   4431 \= Expect no match
   4432     X
   4433 No match
   4434     X$
   4435 No match
   4436     X@@Y  
   4437 No match
   4438 
   4439 /(*CRLF)^X.+?Z/utf,no_start_optimize,no_auto_possess
   4440 \= Expect partial match
   4441     XYY\r\=ph 
   4442 Partial match: XYY\x{0d}
   4443 \= Expect no match
   4444     X
   4445 No match
   4446 
   4447 /^X.+?Z/s,utf,no_start_optimize,no_auto_possess
   4448 \= Expect no match
   4449     X
   4450 No match
   4451     XYY 
   4452 No match
   4453 
   4454 /^X\R+?Z/utf,no_start_optimize,no_auto_possess
   4455 \= Expect no match
   4456     X\nX
   4457 No match
   4458     X\n\rX
   4459 No match
   4460     X\n\r\nX
   4461 No match
   4462     X\n\n
   4463 No match
   4464     X\n\x{0c}    
   4465 No match
   4466 
   4467 /(*BSR_ANYCRLF)^X\R+?Z/utf,no_start_optimize,no_auto_possess
   4468 \= Expect no match
   4469     X\nX
   4470 No match
   4471     X\n\rX
   4472 No match
   4473     X\n\r\nX
   4474 No match
   4475     X\n\n
   4476 No match
   4477     X\n\x{0c}    
   4478 No match
   4479 
   4480 /^X\H+?Z/utf,no_start_optimize,no_auto_possess
   4481 \= Expect no match
   4482     XY\t
   4483 No match
   4484     XYY 
   4485 No match
   4486 
   4487 /^X\h+?Z/utf,no_start_optimize,no_auto_possess
   4488 \= Expect no match
   4489     X\t\t
   4490 No match
   4491     X\tY
   4492 No match
   4493 
   4494 /^X\V+?Z/utf,no_start_optimize,no_auto_possess
   4495 \= Expect no match
   4496     XY\n
   4497 No match
   4498     XYY 
   4499 No match
   4500 
   4501 /^X\v+?Z/utf,no_start_optimize,no_auto_possess
   4502 \= Expect no match
   4503     X\n\n
   4504 No match
   4505     X\nY
   4506 No match
   4507 
   4508 /^X\D+?Z/utf,no_start_optimize,no_auto_possess
   4509 \= Expect no match
   4510     XY9
   4511 No match
   4512     XYY 
   4513 No match
   4514 
   4515 /^X\d+?Z/utf,no_start_optimize,no_auto_possess
   4516 \= Expect no match
   4517     X99
   4518 No match
   4519     X9Y
   4520 No match
   4521 
   4522 /^X\S+?Z/utf,no_start_optimize,no_auto_possess
   4523 \= Expect no match
   4524     XY\n
   4525 No match
   4526     XYY 
   4527 No match
   4528 
   4529 /^X\s+?Z/utf,no_start_optimize,no_auto_possess
   4530 \= Expect no match
   4531     X\n\n
   4532 No match
   4533     X\nY
   4534 No match
   4535 
   4536 /^X\W+?Z/utf,no_start_optimize,no_auto_possess
   4537 \= Expect no match
   4538     X.A
   4539 No match
   4540     X++ 
   4541 No match
   4542 
   4543 /^X\p{L&}{1,3}Z/no_start_optimize,no_auto_possess
   4544 \= Expect no match
   4545     XY
   4546 No match
   4547     XY!
   4548 No match
   4549 
   4550 /^X\p{L}{1,3}Z/no_start_optimize,no_auto_possess
   4551 \= Expect no match
   4552     XY
   4553 No match
   4554 
   4555 /^X\p{Xan}{1,3}Z/no_start_optimize,no_auto_possess
   4556 \= Expect no match
   4557     XY
   4558 No match
   4559 
   4560 /^X\P{Xsp}{1,3}Z/no_start_optimize,no_auto_possess
   4561 \= Expect no match
   4562     XYY
   4563 No match
   4564 
   4565 /^X\p{Xuc}+Z/utf,no_start_optimize,no_auto_possess
   4566 \= Expect no match
   4567     X$
   4568 No match
   4569 
   4570 # ----------------------------------------------------------------------
   4571 # These test the dangerous PCRE2_EXTRA_BAD_ESCAPE_IS_LITERAL option.
   4572 
   4573 /\x{d800}/B,utf,bad_escape_is_literal
   4574 ------------------------------------------------------------------
   4575         Bra
   4576         x{d800}
   4577         Ket
   4578         End
   4579 ------------------------------------------------------------------
   4580 
   4581 /\ud800/B,utf,alt_bsux,bad_escape_is_literal
   4582 ------------------------------------------------------------------
   4583         Bra
   4584         ud800
   4585         Ket
   4586         End
   4587 ------------------------------------------------------------------
   4588 
   4589 # ----------------------------------------------------------------------
   4590 
   4591 /A+B/literal,utf,no_utf_check
   4592     A+B
   4593  0: A\x{1234}+B
   4594     
   4595 # These are here because I upgraded to Unicode 10.0.0 before Perl did, so it
   4596 # doesn't recognize all these scripts. In time these three tests can be moved
   4597 # to test 4.
   4598 
   4599 /^(\p{Adlam}+)(\p{Bhaiksuki}+)(\p{Marchen}+)(\p{Newa}+)(\p{Osage}+)
   4600   (\p{Tangut}+)(\p{Masaram_Gondi}+)(\p{Nushu}+)(\p{Soyombo}+)
   4601   (\p{Zanabazar_Square}+)/x,utf
   4602     \x{1E900}\x{1E924}\x{1E953}\x{11C00}\x{11C2D}\x{11C3E}\x{11C70}\x{11C77}\x{11CAB}\x{11400}\x{1142F}\x{11455}\x{104B0}\x{104D8}\x{104FB}\x{16FE0}\x{18800}\x{18AF2}\x{11D00}\x{11D3A}\x{11D59}\x{16FE1}\x{1B170}\x{1B2FB}\x{11A50}\x{11A58}\x{11AA2}\x{11A00}\x{11A07}\x{11A47} 
   4603  0: \x{1e900}\x{1e924}\x{1e953}\x{11c00}\x{11c2d}\x{11c3e}\x{11c70}\x{11c77}\x{11cab}\x{11400}\x{1142f}\x{11455}\x{104b0}\x{104d8}\x{104fb}\x{16fe0}\x{18800}\x{18af2}\x{11d00}\x{11d3a}\x{11d59}\x{16fe1}\x{1b170}\x{1b2fb}\x{11a50}\x{11a58}\x{11aa2}\x{11a00}\x{11a07}\x{11a47}
   4604  1: \x{1e900}\x{1e924}\x{1e953}
   4605  2: \x{11c00}\x{11c2d}\x{11c3e}
   4606  3: \x{11c70}\x{11c77}\x{11cab}
   4607  4: \x{11400}\x{1142f}\x{11455}
   4608  5: \x{104b0}\x{104d8}\x{104fb}
   4609  6: \x{16fe0}\x{18800}\x{18af2}
   4610  7: \x{11d00}\x{11d3a}\x{11d59}
   4611  8: \x{16fe1}\x{1b170}\x{1b2fb}
   4612  9: \x{11a50}\x{11a58}\x{11aa2}
   4613 10: \x{11a00}\x{11a07}\x{11a47}
   4614 
   4615 /^\x{1E900}\x{104B0}/i,utf
   4616     \x{1E900}\x{104B0}
   4617  0: \x{1e900}\x{104b0}
   4618     \x{1E922}\x{104D8}
   4619  0: \x{1e922}\x{104d8}
   4620 
   4621 /^(?:(\X)(?C))+$/utf
   4622     \x{1E900}\x{1E924}\x{1E953}\x{11C00}\x{11C2D}\x{11C3E}\x{11C70}\x{11C77}\x{11CAB}\x{11400}\x{1142F}\x{11455}\x{104B0}\x{104D8}\x{104FB}\x{16FE0}\x{18800}\x{18AF2}\x{11D00}\x{11D3A}\x{11D59}\x{16FE1}\x{1B170}\x{1B2FB}\x{11A50}\x{11A58}\x{11AA2}\x{11A00}\x{11A07}\x{11A47}\=callout_capture,callout_no_where 
   4623 Callout 0: last capture = 1
   4624  1: \x{1e900}
   4625 Callout 0: last capture = 1
   4626  1: \x{1e924}
   4627 Callout 0: last capture = 1
   4628  1: \x{1e953}
   4629 Callout 0: last capture = 1
   4630  1: \x{11c00}
   4631 Callout 0: last capture = 1
   4632  1: \x{11c2d}\x{11c3e}
   4633 Callout 0: last capture = 1
   4634  1: \x{11c70}
   4635 Callout 0: last capture = 1
   4636  1: \x{11c77}\x{11cab}
   4637 Callout 0: last capture = 1
   4638  1: \x{11400}
   4639 Callout 0: last capture = 1
   4640  1: \x{1142f}
   4641 Callout 0: last capture = 1
   4642  1: \x{11455}
   4643 Callout 0: last capture = 1
   4644  1: \x{104b0}
   4645 Callout 0: last capture = 1
   4646  1: \x{104d8}
   4647 Callout 0: last capture = 1
   4648  1: \x{104fb}
   4649 Callout 0: last capture = 1
   4650  1: \x{16fe0}
   4651 Callout 0: last capture = 1
   4652  1: \x{18800}
   4653 Callout 0: last capture = 1
   4654  1: \x{18af2}
   4655 Callout 0: last capture = 1
   4656  1: \x{11d00}\x{11d3a}
   4657 Callout 0: last capture = 1
   4658  1: \x{11d59}
   4659 Callout 0: last capture = 1
   4660  1: \x{16fe1}
   4661 Callout 0: last capture = 1
   4662  1: \x{1b170}
   4663 Callout 0: last capture = 1
   4664  1: \x{1b2fb}
   4665 Callout 0: last capture = 1
   4666  1: \x{11a50}\x{11a58}
   4667 Callout 0: last capture = 1
   4668  1: \x{11aa2}
   4669 Callout 0: last capture = 1
   4670  1: \x{11a00}\x{11a07}\x{11a47}
   4671  0: \x{1e900}\x{1e924}\x{1e953}\x{11c00}\x{11c2d}\x{11c3e}\x{11c70}\x{11c77}\x{11cab}\x{11400}\x{1142f}\x{11455}\x{104b0}\x{104d8}\x{104fb}\x{16fe0}\x{18800}\x{18af2}\x{11d00}\x{11d3a}\x{11d59}\x{16fe1}\x{1b170}\x{1b2fb}\x{11a50}\x{11a58}\x{11aa2}\x{11a00}\x{11a07}\x{11a47}
   4672  1: \x{11a00}\x{11a07}\x{11a47}
   4673 
   4674 # Similarly for Unicode 11.0.0
   4675 
   4676 /^(\p{Dogra}+)(\p{Gunjala_Gondi}+)(\p{Hanifi_Rohingya}+)(\p{Makasar}+)
   4677   (\p{Medefaidrin}+)(\p{Old_Sogdian}+)(\p{Sogdian}+)/x,utf
   4678     \x{11800}\x{11da9}\x{10d27}\x{11ee0}\x{16e48}\x{10f27}\x{10f30} 
   4679  0: \x{11800}\x{11da9}\x{10d27}\x{11ee0}\x{16e48}\x{10f27}\x{10f30}
   4680  1: \x{11800}
   4681  2: \x{11da9}
   4682  3: \x{10d27}
   4683  4: \x{11ee0}
   4684  5: \x{16e48}
   4685  6: \x{10f27}
   4686  7: \x{10f30}
   4687 
   4688 # These two are here because of differences from Perl.
   4689 
   4690 /^\X/utf
   4691     A\x{200d}B                     A ZWJ
   4692  0: A\x{200d}
   4693     \x{261d}\x{261d}B              Extended_Pictographic Extended_Pictographic 
   4694  0: \x{261d}\x{261d}
   4695     \x{261D}\x{1F3FB}B             Extended_Pictographic Extend
   4696  0: \x{261d}\x{1f3fb}
   4697     \x{1F1E6}\x{1F1E7}B            RegionalIndicator RegionalIndicator 
   4698  0: \x{1f1e6}\x{1f1e7}
   4699     \x{261D}\x{1F3FB}\x{261d}B     Extended_Pictographic Extend E-P
   4700  0: \x{261d}\x{1f3fb}\x{261d}
   4701     \x{261D}\x{1F3FB}\x{200d}\x{261d}B     Extended_Pictographic Extend ZWJ E-P
   4702  0: \x{261d}\x{1f3fb}\x{200d}\x{261d}
   4703 
   4704 # Regional indicators
   4705 
   4706 /^(\X)(\X)/utf,aftertext
   4707     \x{1F1E6}\x{1F1E7}\x{1F1E7}B
   4708  0: \x{1f1e6}\x{1f1e7}\x{1f1e7}
   4709  0+ B
   4710  1: \x{1f1e6}\x{1f1e7}
   4711  2: \x{1f1e7}
   4712     \x{1F1E6}\x{1F1E7}\x{1F1E7}\x{1F1E6}B
   4713  0: \x{1f1e6}\x{1f1e7}\x{1f1e7}\x{1f1e6}
   4714  0+ B
   4715  1: \x{1f1e6}\x{1f1e7}
   4716  2: \x{1f1e7}\x{1f1e6}
   4717     
   4718 # More differences from Perl
   4719 
   4720 /^[\p{Arabic}]/utf
   4721 \= Expect no match
   4722     \x{650}
   4723 No match
   4724     \x{651}  
   4725 No match
   4726     \x{652}  
   4727 No match
   4728     \x{653}  
   4729 No match
   4730     \x{654} 
   4731 No match
   4732     \x{655} 
   4733 No match
   4734     
   4735 /^\p{Common}/utf
   4736     \x{589}
   4737  0: \x{589}
   4738     \x{60c}
   4739  0: \x{60c}
   4740     \x{61f}  
   4741  0: \x{61f}
   4742     \x{964}
   4743  0: \x{964}
   4744     \x{965}  
   4745  0: \x{965}
   4746 
   4747 /^\p{Inherited}/utf
   4748     \x{64b}
   4749  0: \x{64b}
   4750     \x{654}
   4751  0: \x{654}
   4752     \x{655}
   4753  0: \x{655}
   4754     \x{1D1AA} 
   4755  0: \x{1d1aa}
   4756 
   4757 /\N{U+}/
   4758 Failed: error 193 at offset 2: \N{U+dddd} is supported only in Unicode (UTF) mode
   4759 
   4760 /\N{U+}/utf
   4761 Failed: error 178 at offset 5: digits missing in \x{} or \o{} or \N{U+}
   4762 
   4763 /\N{U}/
   4764 Failed: error 137 at offset 2: PCRE2 does not support \F, \L, \l, \N{name}, \U, or \u
   4765 
   4766 # This tests the non-UTF Unicode NEL pattern whitespace character, only
   4767 # recognized by PCRE2 with /x when there is Unicode support.
   4768 
   4769 /A      
   4770 
B/x
   4774     AB 
   4775  0: AB
   4776     
   4777 # This tests Unicode Pattern White Space characters in verb names when they
   4778 # are being processed with PCRE2_EXTENDED. Note: there are UTF-8 characters
   4779 # with code points greater than 255 between A, B, and C in the pattern.
   4780 
   4781 /(*: ABC)abc/x,utf,mark,alt_verbnames
   4783     abc
   4784  0: abc
   4785 MK: ABC
   4786 
   4787 # End of testinput5
   4788