/-- This set of tests is for UTF support, excluding Unicode properties. It is
    compatible with all versions of Perl >= 5.10 and both the 8-bit and 16-bit
    PCRE libraries. --/
    
< forbid 9?=ABCDEFfGILMNPTUWXZ<
   
/a.b/8
    acb
 0: acb
    a\x7fb
 0: a\x{7f}b
    a\x{100}b 
 0: a\x{100}b
    *** Failers
No match
    a\nb  
No match

/a(.{3})b/8
    a\x{4000}xyb 
 0: a\x{4000}xyb
 1: \x{4000}xy
    a\x{4000}\x7fyb 
 0: a\x{4000}\x{7f}yb
 1: \x{4000}\x{7f}y
    a\x{4000}\x{100}yb 
 0: a\x{4000}\x{100}yb
 1: \x{4000}\x{100}y
    *** Failers
No match
    a\x{4000}b 
No match
    ac\ncb 
No match

/a(.*?)(.)/
    a\xc0\x88b
 0: a\xc0
 1: 
 2: \xc0

/a(.*?)(.)/8
    a\x{100}b
 0: a\x{100}
 1: 
 2: \x{100}

/a(.*)(.)/
    a\xc0\x88b
 0: a\xc0\x88b
 1: \xc0\x88
 2: b

/a(.*)(.)/8
    a\x{100}b
 0: a\x{100}b
 1: \x{100}
 2: b

/a(.)(.)/
    a\xc0\x92bcd
 0: a\xc0\x92
 1: \xc0
 2: \x92

/a(.)(.)/8
    a\x{240}bcd
 0: a\x{240}b
 1: \x{240}
 2: b

/a(.?)(.)/
    a\xc0\x92bcd
 0: a\xc0\x92
 1: \xc0
 2: \x92

/a(.?)(.)/8
    a\x{240}bcd
 0: a\x{240}b
 1: \x{240}
 2: b

/a(.??)(.)/
    a\xc0\x92bcd
 0: a\xc0
 1: 
 2: \xc0

/a(.??)(.)/8
    a\x{240}bcd
 0: a\x{240}
 1: 
 2: \x{240}

/a(.{3})b/8
    a\x{1234}xyb 
 0: a\x{1234}xyb
 1: \x{1234}xy
    a\x{1234}\x{4321}yb 
 0: a\x{1234}\x{4321}yb
 1: \x{1234}\x{4321}y
    a\x{1234}\x{4321}\x{3412}b 
 0: a\x{1234}\x{4321}\x{3412}b
 1: \x{1234}\x{4321}\x{3412}
    *** Failers
No match
    a\x{1234}b 
No match
    ac\ncb 
No match

/a(.{3,})b/8
    a\x{1234}xyb 
 0: a\x{1234}xyb
 1: \x{1234}xy
    a\x{1234}\x{4321}yb 
 0: a\x{1234}\x{4321}yb
 1: \x{1234}\x{4321}y
    a\x{1234}\x{4321}\x{3412}b 
 0: a\x{1234}\x{4321}\x{3412}b
 1: \x{1234}\x{4321}\x{3412}
    axxxxbcdefghijb 
 0: axxxxbcdefghijb
 1: xxxxbcdefghij
    a\x{1234}\x{4321}\x{3412}\x{3421}b 
 0: a\x{1234}\x{4321}\x{3412}\x{3421}b
 1: \x{1234}\x{4321}\x{3412}\x{3421}
    *** Failers
No match
    a\x{1234}b 
No match

/a(.{3,}?)b/8
    a\x{1234}xyb 
 0: a\x{1234}xyb
 1: \x{1234}xy
    a\x{1234}\x{4321}yb 
 0: a\x{1234}\x{4321}yb
 1: \x{1234}\x{4321}y
    a\x{1234}\x{4321}\x{3412}b 
 0: a\x{1234}\x{4321}\x{3412}b
 1: \x{1234}\x{4321}\x{3412}
    axxxxbcdefghijb 
 0: axxxxb
 1: xxxx
    a\x{1234}\x{4321}\x{3412}\x{3421}b 
 0: a\x{1234}\x{4321}\x{3412}\x{3421}b
 1: \x{1234}\x{4321}\x{3412}\x{3421}
    *** Failers
No match
    a\x{1234}b 
No match

/a(.{3,5})b/8
    a\x{1234}xyb 
 0: a\x{1234}xyb
 1: \x{1234}xy
    a\x{1234}\x{4321}yb 
 0: a\x{1234}\x{4321}yb
 1: \x{1234}\x{4321}y
    a\x{1234}\x{4321}\x{3412}b 
 0: a\x{1234}\x{4321}\x{3412}b
 1: \x{1234}\x{4321}\x{3412}
    axxxxbcdefghijb 
 0: axxxxb
 1: xxxx
    a\x{1234}\x{4321}\x{3412}\x{3421}b 
 0: a\x{1234}\x{4321}\x{3412}\x{3421}b
 1: \x{1234}\x{4321}\x{3412}\x{3421}
    axbxxbcdefghijb 
 0: axbxxb
 1: xbxx
    axxxxxbcdefghijb 
 0: axxxxxb
 1: xxxxx
    *** Failers
No match
    a\x{1234}b 
No match
    axxxxxxbcdefghijb 
No match

/a(.{3,5}?)b/8
    a\x{1234}xyb 
 0: a\x{1234}xyb
 1: \x{1234}xy
    a\x{1234}\x{4321}yb 
 0: a\x{1234}\x{4321}yb
 1: \x{1234}\x{4321}y
    a\x{1234}\x{4321}\x{3412}b 
 0: a\x{1234}\x{4321}\x{3412}b
 1: \x{1234}\x{4321}\x{3412}
    axxxxbcdefghijb 
 0: axxxxb
 1: xxxx
    a\x{1234}\x{4321}\x{3412}\x{3421}b 
 0: a\x{1234}\x{4321}\x{3412}\x{3421}b
 1: \x{1234}\x{4321}\x{3412}\x{3421}
    axbxxbcdefghijb 
 0: axbxxb
 1: xbxx
    axxxxxbcdefghijb 
 0: axxxxxb
 1: xxxxx
    *** Failers
No match
    a\x{1234}b 
No match
    axxxxxxbcdefghijb 
No match

/^[a\x{c0}]/8
    *** Failers
No match
    \x{100}
No match

/(?<=aXb)cd/8
    aXbcd
 0: cd

/(?<=a\x{100}b)cd/8
    a\x{100}bcd
 0: cd

/(?<=a\x{100000}b)cd/8
    a\x{100000}bcd
 0: cd
    
/(?:\x{100}){3}b/8
    \x{100}\x{100}\x{100}b
 0: \x{100}\x{100}\x{100}b
    *** Failers 
No match
    \x{100}\x{100}b
No match

/\x{ab}/8
    \x{ab} 
 0: \x{ab}
    \xc2\xab
 0: \x{ab}
    *** Failers 
No match
    \x00{ab}
No match

/(?<=(.))X/8
    WXYZ
 0: X
 1: W
    \x{256}XYZ 
 0: X
 1: \x{256}
    *** Failers
No match
    XYZ 
No match

/[^a]+/8g
    bcd
 0: bcd
    \x{100}aY\x{256}Z 
 0: \x{100}
 0: Y\x{256}Z
    
/^[^a]{2}/8
    \x{100}bc
 0: \x{100}b
 
/^[^a]{2,}/8
    \x{100}bcAa
 0: \x{100}bcA

/^[^a]{2,}?/8
    \x{100}bca
 0: \x{100}b

/[^a]+/8ig
    bcd
 0: bcd
    \x{100}aY\x{256}Z 
 0: \x{100}
 0: Y\x{256}Z
    
/^[^a]{2}/8i
    \x{100}bc
 0: \x{100}b
 
/^[^a]{2,}/8i
    \x{100}bcAa
 0: \x{100}bc

/^[^a]{2,}?/8i
    \x{100}bca
 0: \x{100}b

/\x{100}{0,0}/8
    abcd
 0: 
 
/\x{100}?/8
    abcd
 0: 
    \x{100}\x{100} 
 0: \x{100}

/\x{100}{0,3}/8 
    \x{100}\x{100} 
 0: \x{100}\x{100}
    \x{100}\x{100}\x{100}\x{100} 
 0: \x{100}\x{100}\x{100}
    
/\x{100}*/8
    abce
 0: 
    \x{100}\x{100}\x{100}\x{100} 
 0: \x{100}\x{100}\x{100}\x{100}

/\x{100}{1,1}/8
    abcd\x{100}\x{100}\x{100}\x{100} 
 0: \x{100}

/\x{100}{1,3}/8
    abcd\x{100}\x{100}\x{100}\x{100} 
 0: \x{100}\x{100}\x{100}

/\x{100}+/8
    abcd\x{100}\x{100}\x{100}\x{100} 
 0: \x{100}\x{100}\x{100}\x{100}

/\x{100}{3}/8
    abcd\x{100}\x{100}\x{100}XX
 0: \x{100}\x{100}\x{100}

/\x{100}{3,5}/8
    abcd\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}XX
 0: \x{100}\x{100}\x{100}\x{100}\x{100}

/\x{100}{3,}/8
    abcd\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}XX
 0: \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}

/(?<=a\x{100}{2}b)X/8+
    Xyyya\x{100}\x{100}bXzzz
 0: X
 0+ zzz

/\D*/8
  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

/\D*/8
  \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
 0: \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}

/\D/8
    1X2
 0: X
    1\x{100}2 
 0: \x{100}
  
/>\S/8
    > >X Y
 0: >X
    > >\x{100} Y
 0: >\x{100}
  
/\d/8
    \x{100}3
 0: 3
    
/\s/8
    \x{100} X
 0:  
    
/\D+/8
    12abcd34
 0: abcd
    *** Failers
 0: *** Failers
    1234  
No match

/\D{2,3}/8
    12abcd34
 0: abc
    12ab34
 0: ab
    *** Failers  
 0: ***
    1234
No match
    12a34  
No match

/\D{2,3}?/8
    12abcd34
 0: ab
    12ab34
 0: ab
    *** Failers  
 0: **
    1234
No match
    12a34  
No match

/\d+/8
    12abcd34
 0: 12
    *** Failers
No match

/\d{2,3}/8
    12abcd34
 0: 12
    1234abcd
 0: 123
    *** Failers  
No match
    1.4 
No match

/\d{2,3}?/8
    12abcd34
 0: 12
    1234abcd
 0: 12
    *** Failers  
No match
    1.4 
No match

/\S+/8
    12abcd34
 0: 12abcd34
    *** Failers
 0: ***
    \    \ 
No match

/\S{2,3}/8
    12abcd34
 0: 12a
    1234abcd
 0: 123
    *** Failers
 0: ***
    \     \  
No match

/\S{2,3}?/8
    12abcd34
 0: 12
    1234abcd
 0: 12
    *** Failers
 0: **
    \     \  
No match

/>\s+</8+
    12>      <34
 0: >      <
 0+ 34
    *** Failers
No match

/>\s{2,3}</8+
    ab>  <cd
 0: >  <
 0+ cd
    ab>   <ce
 0: >   <
 0+ ce
    *** Failers
No match
    ab>    <cd 
No match

/>\s{2,3}?</8+
    ab>  <cd
 0: >  <
 0+ cd
    ab>   <ce
 0: >   <
 0+ ce
    *** Failers
No match
    ab>    <cd 
No match

/\w+/8
    12      34
 0: 12
    *** Failers
 0: Failers
    +++=*! 
No match

/\w{2,3}/8
    ab  cd
 0: ab
    abcd ce
 0: abc
    *** Failers
 0: Fai
    a.b.c
No match

/\w{2,3}?/8
    ab  cd
 0: ab
    abcd ce
 0: ab
    *** Failers
 0: Fa
    a.b.c
No match

/\W+/8
    12====34
 0: ====
    *** Failers
 0: *** 
    abcd 
No match

/\W{2,3}/8
    ab====cd
 0: ===
    ab==cd
 0: ==
    *** Failers
 0: ***
    a.b.c
No match

/\W{2,3}?/8
    ab====cd
 0: ==
    ab==cd
 0: ==
    *** Failers
 0: **
    a.b.c
No match

/[\x{100}]/8
    \x{100}
 0: \x{100}
    Z\x{100}
 0: \x{100}
    \x{100}Z
 0: \x{100}
    *** Failers 
No match

/[Z\x{100}]/8
    Z\x{100}
 0: Z
    \x{100}
 0: \x{100}
    \x{100}Z
 0: \x{100}
    *** Failers 
No match

/[\x{100}\x{200}]/8
   ab\x{100}cd
 0: \x{100}
   ab\x{200}cd
 0: \x{200}
   *** Failers  
No match

/[\x{100}-\x{200}]/8
   ab\x{100}cd
 0: \x{100}
   ab\x{200}cd
 0: \x{200}
   ab\x{111}cd 
 0: \x{111}
   *** Failers  
No match

/[z-\x{200}]/8
   ab\x{100}cd
 0: \x{100}
   ab\x{200}cd
 0: \x{200}
   ab\x{111}cd 
 0: \x{111}
   abzcd
 0: z
   ab|cd  
 0: |
   *** Failers  
No match

/[Q\x{100}\x{200}]/8
   ab\x{100}cd
 0: \x{100}
   ab\x{200}cd
 0: \x{200}
   Q? 
 0: Q
   *** Failers  
No match

/[Q\x{100}-\x{200}]/8
   ab\x{100}cd
 0: \x{100}
   ab\x{200}cd
 0: \x{200}
   ab\x{111}cd 
 0: \x{111}
   Q? 
 0: Q
   *** Failers  
No match

/[Qz-\x{200}]/8
   ab\x{100}cd
 0: \x{100}
   ab\x{200}cd
 0: \x{200}
   ab\x{111}cd 
 0: \x{111}
   abzcd
 0: z
   ab|cd  
 0: |
   Q? 
 0: Q
   *** Failers  
No match

/[\x{100}\x{200}]{1,3}/8
   ab\x{100}cd
 0: \x{100}
   ab\x{200}cd
 0: \x{200}
   ab\x{200}\x{100}\x{200}\x{100}cd
 0: \x{200}\x{100}\x{200}
   *** Failers  
No match

/[\x{100}\x{200}]{1,3}?/8
   ab\x{100}cd
 0: \x{100}
   ab\x{200}cd
 0: \x{200}
   ab\x{200}\x{100}\x{200}\x{100}cd
 0: \x{200}
   *** Failers  
No match

/[Q\x{100}\x{200}]{1,3}/8
   ab\x{100}cd
 0: \x{100}
   ab\x{200}cd
 0: \x{200}
   ab\x{200}\x{100}\x{200}\x{100}cd
 0: \x{200}\x{100}\x{200}
   *** Failers  
No match

/[Q\x{100}\x{200}]{1,3}?/8
   ab\x{100}cd
 0: \x{100}
   ab\x{200}cd
 0: \x{200}
   ab\x{200}\x{100}\x{200}\x{100}cd
 0: \x{200}
   *** Failers  
No match

/(?<=[\x{100}\x{200}])X/8
    abc\x{200}X
 0: X
    abc\x{100}X 
 0: X
    *** Failers
No match
    X  
No match

/(?<=[Q\x{100}\x{200}])X/8
    abc\x{200}X
 0: X
    abc\x{100}X 
 0: X
    abQX 
 0: X
    *** Failers
No match
    X  
No match

/(?<=[\x{100}\x{200}]{3})X/8
    abc\x{100}\x{200}\x{100}X
 0: X
    *** Failers
No match
    abc\x{200}X
No match
    X  
No match

/[^\x{100}\x{200}]X/8
    AX
 0: AX
    \x{150}X
 0: \x{150}X
    \x{500}X 
 0: \x{500}X
    *** Failers
No match
    \x{100}X
No match
    \x{200}X   
No match

/[^Q\x{100}\x{200}]X/8
    AX
 0: AX
    \x{150}X
 0: \x{150}X
    \x{500}X 
 0: \x{500}X
    *** Failers
No match
    \x{100}X
No match
    \x{200}X   
No match
    QX 
No match

/[^\x{100}-\x{200}]X/8
    AX
 0: AX
    \x{500}X 
 0: \x{500}X
    *** Failers
No match
    \x{100}X
No match
    \x{150}X
No match
    \x{200}X   
No match

/[z-\x{100}]/8i
    z
 0: z
    Z 
 0: Z
    \x{100}
 0: \x{100}
    *** Failers
No match
    \x{102}
No match
    y    
No match

/[\xFF]/
    >\xff<
 0: \xff

/[\xff]/8
    >\x{ff}<
 0: \x{ff}

/[^\xFF]/
    XYZ
 0: X

/[^\xff]/8
    XYZ
 0: X
    \x{123} 
 0: \x{123}

/^[ac]*b/8
  xb
No match

/^[ac\x{100}]*b/8
  xb
No match

/^[^x]*b/8i
  xb
No match

/^[^x]*b/8
  xb
No match
  
/^\d*b/8
  xb 
No match

/(|a)/g8
    catac
 0: 
 1: 
 0: 
 1: 
 0: a
 1: a
 0: 
 1: 
 0: 
 1: 
 0: a
 1: a
 0: 
 1: 
 0: 
 1: 
    a\x{256}a 
 0: 
 1: 
 0: a
 1: a
 0: 
 1: 
 0: 
 1: 
 0: a
 1: a
 0: 
 1: 

/^\x{85}$/8i
    \x{85}
 0: \x{85}

/^ሴ/8
    ሴ 
 0: \x{1234}

/^\ሴ/8
    ሴ 
 0: \x{1234}

"(?s)(.{1,5})"8
    abcdefg
 0: abcde
 1: abcde
    ab
 0: ab
 1: ab

/a*\x{100}*\w/8
    a 
 0: a

/\S\S/8g
    A\x{a3}BC
 0: A\x{a3}
 0: BC
    
/\S{2}/8g
    A\x{a3}BC
 0: A\x{a3}
 0: BC
    
/\W\W/8g
    +\x{a3}== 
 0: +\x{a3}
 0: ==

/\W{2}/8g
    +\x{a3}== 
 0: +\x{a3}
 0: ==

/\S/8g
    \x{442}\x{435}\x{441}\x{442}
 0: \x{442}
 0: \x{435}
 0: \x{441}
 0: \x{442}

/[\S]/8g
    \x{442}\x{435}\x{441}\x{442}
 0: \x{442}
 0: \x{435}
 0: \x{441}
 0: \x{442}

/\D/8g
    \x{442}\x{435}\x{441}\x{442}
 0: \x{442}
 0: \x{435}
 0: \x{441}
 0: \x{442}

/[\D]/8g
    \x{442}\x{435}\x{441}\x{442}
 0: \x{442}
 0: \x{435}
 0: \x{441}
 0: \x{442}

/\W/8g
    \x{2442}\x{2435}\x{2441}\x{2442}
 0: \x{2442}
 0: \x{2435}
 0: \x{2441}
 0: \x{2442}

/[\W]/8g
    \x{2442}\x{2435}\x{2441}\x{2442}
 0: \x{2442}
 0: \x{2435}
 0: \x{2441}
 0: \x{2442}
    
/[\S\s]*/8
    abc\n\r\x{442}\x{435}\x{441}\x{442}xyz 
 0: abc\x{0a}\x{0d}\x{442}\x{435}\x{441}\x{442}xyz

/[\x{41f}\S]/8g
    \x{442}\x{435}\x{441}\x{442}
 0: \x{442}
 0: \x{435}
 0: \x{441}
 0: \x{442}

/.[^\S]./8g
    abc def\x{442}\x{443}xyz\npqr
 0: c d
 0: z\x{0a}p

/.[^\S\n]./8g
    abc def\x{442}\x{443}xyz\npqr
 0: c d

/[[:^alnum:]]/8g  
    +\x{2442}
 0: +
 0: \x{2442}
    
/[[:^alpha:]]/8g 
    +\x{2442}
 0: +
 0: \x{2442}
    
/[[:^ascii:]]/8g 
    A\x{442}
 0: \x{442}
    
/[[:^blank:]]/8g 
    A\x{442}
 0: A
 0: \x{442}
    
/[[:^cntrl:]]/8g 
    A\x{442}
 0: A
 0: \x{442}
    
/[[:^digit:]]/8g 
    A\x{442}
 0: A
 0: \x{442}
    
/[[:^graph:]]/8g 
    \x19\x{e01ff}
 0: \x{19}
 0: \x{e01ff}
    
/[[:^lower:]]/8g 
    A\x{422}
 0: A
 0: \x{422}
    
/[[:^print:]]/8g 
    \x{19}\x{e01ff}
 0: \x{19}
 0: \x{e01ff}
    
/[[:^punct:]]/8g 
    A\x{442}
 0: A
 0: \x{442}
    
/[[:^space:]]/8g 
    A\x{442}
 0: A
 0: \x{442}
    
/[[:^upper:]]/8g 
    a\x{442}
 0: a
 0: \x{442}
    
/[[:^word:]]/8g  
    +\x{2442}
 0: +
 0: \x{2442}
    
/[[:^xdigit:]]/8g
    M\x{442}
 0: M
 0: \x{442}

/[^ABCDEFGHIJKLMNOPQRSTUVWXYZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮİIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŸŹŻŽƁƂƄƆƇƉƊƋƎƏƐƑƓƔƖƗƘƜƝƟƠƢƤƦƧƩƬƮƯƱƲƳƵƷƸƼDŽLJNJǍǏǑǓǕǗǙǛǞǠǢǤǦǨǪǬǮDZǴǶǷǸǺǼǾȀȂȄȆȈȊȌȎȐȒȔȖȘȚȜȞȠȢȤȦȨȪȬȮȰȲȺȻȽȾɁΆΈΉΊΌΎΏΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫϒϓϔϘϚϜϞϠϢϤϦϨϪϬϮϴϷϹϺϽϾϿЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯѠѢѤѦѨѪѬѮѰѲѴѶѸѺѼѾҀҊҌҎҐҒҔҖҘҚҜҞҠҢҤҦҨҪҬҮҰҲҴҶҸҺҼҾӀӁӃӅӇӉӋӍӐӒӔӖӘӚӜӞӠӢӤӦӨӪӬӮӰӲӴӶӸԀԂԄԆԈԊԌԎԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉՊՋՌՍՎՏՐՑՒՓՔՕՖႠႡႢႣႤႥႦႧႨႩႪႫႬႭႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸἈἉἊἋἌἍἎἏἘἙἚἛἜἝἨἩἪἫἬἭἮἯἸἹἺἻἼἽἾἿὈὉὊὋὌὍὙὛὝὟὨὩὪὫὬὭὮὯᾸᾹᾺΆῈΈῊΉῘῙῚΊῨῩῪΎῬῸΌῺΏabcdefghijklmnopqrstuvwxyzªµºßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿāăąćĉċčďđēĕėęěĝğġģĥħĩīĭįıijĵķĸĺļľŀłńņňʼnŋōŏőœŕŗřśŝşšţťŧũūŭůűųŵŷźżžſƀƃƅƈƌƍƒƕƙƚƛƞơƣƥƨƪƫƭưƴƶƹƺƽƾƿdžljnjǎǐǒǔǖǘǚǜǝǟǡǣǥǧǩǫǭǯǰdzǵǹǻǽǿȁȃȅȇȉȋȍȏȑȓȕȗșțȝȟȡȣȥȧȩȫȭȯȱȳȴȵȶȷȸȹȼȿɀɐɑɒɓɔɕɖɗɘəɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯΐάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώϐϑϕϖϗϙϛϝϟϡϣϥϧϩϫϭϯϰϱϲϳϵϸϻϼабвгдежзийклмнопрстуфхцчшщъыьэюяѐёђѓєѕіїјљњћќѝўџѡѣѥѧѩѫѭѯѱѳѵѷѹѻѽѿҁҋҍҏґғҕҗҙқҝҟҡңҥҧҩҫҭүұҳҵҷҹһҽҿӂӄӆӈӊӌӎӑӓӕӗәӛӝӟӡӣӥӧөӫӭӯӱӳӵӷӹԁԃԅԇԉԋԍԏաբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտրցւփքօֆևᴀᴁᴂᴃᴄᴅᴆᴇᴈᴉᴊᴋᴌᴍᴎᴏᴐᴑᴒᴓᴔᴕᴖᴗᴘᴙᴚᴛᴜᴝᴞᴟᴠᴡᴢᴣᴤᴥᴦᴧᴨᴩᴪᴫᵢᵣᵤᵥᵦᵧᵨᵩᵪᵫᵬᵭᵮᵯᵰᵱᵲᵳᵴᵵᵶᵷᵹᵺᵻᵼᵽᵾᵿᶀᶁᶂᶃᶄᶅᶆᶇᶈᶉᶊᶋᶌᶍᶎᶏᶐᶑᶒᶓᶔᶕᶖᶗᶘᶙᶚḁḃḅḇḉḋḍḏḑḓḕḗḙḛḝḟḡḣḥḧḩḫḭḯḱḳḵḷḹḻḽḿṁṃṅṇṉṋṍṏṑṓṕṗṙṛṝṟṡṣṥṧṩṫṭṯṱṳṵṷṹṻṽṿẁẃẅẇẉẋẍẏẑẓẕẖẗẘẙẚẛạảấầẩẫậắằẳẵặẹẻẽếềểễệỉịọỏốồổỗộớờởỡợụủứừửữựỳỵỷỹἀἁἂἃἄἅἆἇἐἑἒἓἔἕἠἡἢἣἤἥἦἧἰἱἲἳἴἵἶἷὀὁὂὃὄὅὐὑὒὓὔὕὖὗὠὡὢὣὤὥὦὧὰάὲέὴήὶίὸόὺύὼώᾀᾁᾂᾃᾄᾅᾆᾇᾐᾑᾒᾓᾔᾕᾖᾗᾠᾡᾢᾣᾤᾥᾦᾧᾰᾱᾲᾳᾴᾶᾷιῂῃῄῆῇῐῑῒΐῖῗῠῡῢΰῤῥῦῧῲῳῴῶῷⲁⲃⲅⲇⲉⲋⲍⲏⲑⲓⲕⲗⲙⲛⲝⲟⲡⲣⲥⲧⲩⲫⲭⲯⲱⲳⲵⲷⲹⲻⲽⲿⳁⳃⳅⳇⳉⳋⳍⳏⳑⳓⳕⳗⳙⳛⳝⳟⳡⳣⳤⴀⴁⴂⴃⴄⴅⴆⴇⴈⴉⴊⴋⴌⴍⴎⴏⴐⴑⴒⴓⴔⴕⴖⴗⴘⴙⴚⴛⴜⴝⴞⴟⴠⴡⴢⴣⴤⴥfffiflffifflſtstﬓﬔﬕﬖﬗ\d-_^]/8

/^[^d]*?$/
    abc
 0: abc

/^[^d]*?$/8
    abc
 0: abc

/^[^d]*?$/i
    abc
 0: abc

/^[^d]*?$/8i
    abc
 0: abc

/(?i)[\xc3\xa9\xc3\xbd]|[\xc3\xa9\xc3\xbdA]/8

/^[a\x{c0}]b/8
    \x{c0}b
 0: \x{c0}b
    
/^([a\x{c0}]*?)aa/8
    a\x{c0}aaaa/ 
 0: a\x{c0}aa
 1: a\x{c0}

/^([a\x{c0}]*?)aa/8
    a\x{c0}aaaa/ 
 0: a\x{c0}aa
 1: a\x{c0}
    a\x{c0}a\x{c0}aaa/ 
 0: a\x{c0}a\x{c0}aa
 1: a\x{c0}a\x{c0}

/^([a\x{c0}]*)aa/8
    a\x{c0}aaaa/ 
 0: a\x{c0}aaaa
 1: a\x{c0}aa
    a\x{c0}a\x{c0}aaa/ 
 0: a\x{c0}a\x{c0}aaa
 1: a\x{c0}a\x{c0}a

/^([a\x{c0}]*)a\x{c0}/8
    a\x{c0}aaaa/ 
 0: a\x{c0}
 1: 
    a\x{c0}a\x{c0}aaa/ 
 0: a\x{c0}a\x{c0}
 1: a\x{c0}

/A*/g8
    AAB\x{123}BAA
 0: AA
 0: 
 0: 
 0: 
 0: AA
 0: 

/(abc)\1/8i
   abc
No match

/(abc)\1/8
   abc
No match

/a(*:a\x{1234}b)/8K
    abc
 0: a
MK: a\x{1234}b

/a(*:a£b)/8K 
    abc
 0: a
MK: a\x{a3}b

/-- Noncharacters --/

/./8
    \x{fffe}
 0: \x{fffe}
    \x{ffff}
 0: \x{ffff}
    \x{1fffe}
 0: \x{1fffe}
    \x{1ffff}
 0: \x{1ffff}
    \x{2fffe}
 0: \x{2fffe}
    \x{2ffff}
 0: \x{2ffff}
    \x{3fffe}
 0: \x{3fffe}
    \x{3ffff}
 0: \x{3ffff}
    \x{4fffe}
 0: \x{4fffe}
    \x{4ffff}
 0: \x{4ffff}
    \x{5fffe}
 0: \x{5fffe}
    \x{5ffff}
 0: \x{5ffff}
    \x{6fffe}
 0: \x{6fffe}
    \x{6ffff}
 0: \x{6ffff}
    \x{7fffe}
 0: \x{7fffe}
    \x{7ffff}
 0: \x{7ffff}
    \x{8fffe}
 0: \x{8fffe}
    \x{8ffff}
 0: \x{8ffff}
    \x{9fffe}
 0: \x{9fffe}
    \x{9ffff}
 0: \x{9ffff}
    \x{afffe}
 0: \x{afffe}
    \x{affff}
 0: \x{affff}
    \x{bfffe}
 0: \x{bfffe}
    \x{bffff}
 0: \x{bffff}
    \x{cfffe}
 0: \x{cfffe}
    \x{cffff}
 0: \x{cffff}
    \x{dfffe}
 0: \x{dfffe}
    \x{dffff}
 0: \x{dffff}
    \x{efffe}
 0: \x{efffe}
    \x{effff}
 0: \x{effff}
    \x{ffffe}
 0: \x{ffffe}
    \x{fffff}
 0: \x{fffff}
    \x{10fffe}
 0: \x{10fffe}
    \x{10ffff}
 0: \x{10ffff}
    \x{fdd0}
 0: \x{fdd0}
    \x{fdd1}
 0: \x{fdd1}
    \x{fdd2}
 0: \x{fdd2}
    \x{fdd3}
 0: \x{fdd3}
    \x{fdd4}
 0: \x{fdd4}
    \x{fdd5}
 0: \x{fdd5}
    \x{fdd6}
 0: \x{fdd6}
    \x{fdd7}
 0: \x{fdd7}
    \x{fdd8}
 0: \x{fdd8}
    \x{fdd9}
 0: \x{fdd9}
    \x{fdda}
 0: \x{fdda}
    \x{fddb}
 0: \x{fddb}
    \x{fddc}
 0: \x{fddc}
    \x{fddd}
 0: \x{fddd}
    \x{fdde}
 0: \x{fdde}
    \x{fddf}
 0: \x{fddf}
    \x{fde0}
 0: \x{fde0}
    \x{fde1}
 0: \x{fde1}
    \x{fde2}
 0: \x{fde2}
    \x{fde3}
 0: \x{fde3}
    \x{fde4}
 0: \x{fde4}
    \x{fde5}
 0: \x{fde5}
    \x{fde6}
 0: \x{fde6}
    \x{fde7}
 0: \x{fde7}
    \x{fde8}
 0: \x{fde8}
    \x{fde9}
 0: \x{fde9}
    \x{fdea}
 0: \x{fdea}
    \x{fdeb}
 0: \x{fdeb}
    \x{fdec}
 0: \x{fdec}
    \x{fded}
 0: \x{fded}
    \x{fdee}
 0: \x{fdee}
    \x{fdef}
 0: \x{fdef}

/^\d*\w{4}/8
    1234
 0: 1234
    123 
No match
    
/^[^b]*\w{4}/8
    aaaa
 0: aaaa
    aaa  
No match
 
/^[^b]*\w{4}/8i
    aaaa
 0: aaaa
    aaa  
No match
 
/^\x{100}*.{4}/8
    \x{100}\x{100}\x{100}\x{100}
 0: \x{100}\x{100}\x{100}\x{100}
    \x{100}\x{100}\x{100}
No match

/^\x{100}*.{4}/8i
    \x{100}\x{100}\x{100}\x{100}
 0: \x{100}\x{100}\x{100}\x{100}
    \x{100}\x{100}\x{100}
No match

/^a+[a\x{200}]/8
    aa
 0: aa

/^.\B.\B./8
    \x{10123}\x{10124}\x{10125}
 0: \x{10123}\x{10124}\x{10125}

/^#[^\x{ffff}]#[^\x{ffff}]#[^\x{ffff}]#/8
    #\x{10000}#\x{100}#\x{10ffff}#
 0: #\x{10000}#\x{100}#\x{10ffff}#

/-- End of testinput4 --/