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