/-- This set of tests checks the API, internals, and non-Perl stuff for UTF
    support, excluding Unicode properties. However, tests that give different
    results in 8-bit and 16-bit modes are excluded (see tests 16 and 17). --/
    
< forbid W 

/\x{110000}/8DZ

/\o{4200000}/8DZ

/\x{ffffffff}/8

/\o{37777777777}/8

/\x{100000000}/8

/\o{77777777777}/8

/\x{d800}/8

/\o{154000}/8

/\x{dfff}/8

/\o{157777}/8

/\x{d7ff}/8

/\o{153777}/8

/\x{e000}/8

/\o{170000}/8

/^\x{100}a\x{1234}/8
    \x{100}a\x{1234}bcd

/\x{0041}\x{2262}\x{0391}\x{002e}/DZ8
    \x{0041}\x{2262}\x{0391}\x{002e}
    
/.{3,5}X/DZ8
    \x{212ab}\x{212ab}\x{212ab}\x{861}X

/.{3,5}?/DZ8
    \x{212ab}\x{212ab}\x{212ab}\x{861}

/(?<=\C)X/8
    Should produce an error diagnostic
    
/^[ab]/8DZ
    bar
    *** Failers
    c
    \x{ff}
    \x{100}  

/^[^ab]/8DZ
    c
    \x{ff}
    \x{100}  
    *** Failers 
    aaa
  
/\x{100}*(\d+|"(?1)")/8
    1234
    "1234" 
    \x{100}1234
    "\x{100}1234"  
    \x{100}\x{100}12ab 
    \x{100}\x{100}"12" 
    *** Failers 
    \x{100}\x{100}abcd

/\x{100}*/8DZ

/a\x{100}*/8DZ

/ab\x{100}*/8DZ

/\x{100}*A/8DZ
    A

/\x{100}*\d(?R)/8DZ

/[Z\x{100}]/8DZ
    Z\x{100}
    \x{100}
    \x{100}Z
    *** Failers 

/[\x{200}-\x{100}]/8

/[Ā-Ą]/8
    \x{100}
    \x{104}
    *** Failers
    \x{105}
    \x{ff}    

/[z-\x{100}]/8DZ

/[z\Qa-d]Ā\E]/8DZ
    \x{100}
    Ā 

/[\xFF]/DZ
    >\xff<

/[^\xFF]/DZ

/[Ä-Ü]/8
    Ö # Matches without Study
    \x{d6}
    
/[Ä-Ü]/8S
    Ö <-- Same with Study
    \x{d6}
    
/[\x{c4}-\x{dc}]/8 
    Ö # Matches without Study
    \x{d6} 

/[\x{c4}-\x{dc}]/8S
    Ö <-- Same with Study
    \x{d6} 

/[^\x{100}]abc(xyz(?1))/8DZ

/[ab\x{100}]abc(xyz(?1))/8DZ

/(\x{100}(b(?2)c))?/DZ8

/(\x{100}(b(?2)c)){0,2}/DZ8

/(\x{100}(b(?1)c))?/DZ8

/(\x{100}(b(?1)c)){0,2}/DZ8

/\W/8
    A.B
    A\x{100}B 
  
/\w/8
    \x{100}X   

/^\ሴ/8DZ

/\x{100}*\d/8DZ

/\x{100}*\s/8DZ

/\x{100}*\w/8DZ

/\x{100}*\D/8DZ

/\x{100}*\S/8DZ

/\x{100}*\W/8DZ

/()()()()()()()()()()
 ()()()()()()()()()()
 ()()()()()()()()()()
 ()()()()()()()()()()
 A (x) (?41) B/8x
    AxxB     

/^[\x{100}\E-\Q\E\x{150}]/BZ8

/^[\QĀ\E-\QŐ\E]/BZ8

/^abc./mgx8<any>
    abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x{0085}abc7 \x{2028}abc8 \x{2029}abc9 JUNK

/abc.$/mgx8<any>
    abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x{0085} abc7\x{2028} abc8\x{2029} abc9

/^a\Rb/8<bsr_unicode>
    a\nb
    a\rb
    a\r\nb
    a\x0bb
    a\x0cb
    a\x{85}b   
    a\x{2028}b 
    a\x{2029}b 
    ** Failers
    a\n\rb    

/^a\R*b/8<bsr_unicode>
    ab
    a\nb
    a\rb
    a\r\nb
    a\x0bb
    a\x0c\x{2028}\x{2029}b
    a\x{85}b   
    a\n\rb    
    a\n\r\x{85}\x0cb 

/^a\R+b/8<bsr_unicode>
    a\nb
    a\rb
    a\r\nb
    a\x0bb
    a\x0c\x{2028}\x{2029}b
    a\x{85}b   
    a\n\rb    
    a\n\r\x{85}\x0cb 
    ** Failers
    ab  

/^a\R{1,3}b/8<bsr_unicode>
    a\nb
    a\n\rb
    a\n\r\x{85}b
    a\r\n\r\nb 
    a\r\n\r\n\r\nb 
    a\n\r\n\rb
    a\n\n\r\nb 
    ** Failers
    a\n\n\n\rb
    a\r

/\H\h\V\v/8
    X X\x0a
    X\x09X\x0b
    ** Failers
    \x{a0} X\x0a   
    
/\H*\h+\V?\v{3,4}/8 
    \x09\x20\x{a0}X\x0a\x0b\x0c\x0d\x0a
    \x09\x20\x{a0}\x0a\x0b\x0c\x0d\x0a
    \x09\x20\x{a0}\x0a\x0b\x0c
    ** Failers 
    \x09\x20\x{a0}\x0a\x0b
     
/\H\h\V\v/8
    \x{3001}\x{3000}\x{2030}\x{2028}
    X\x{180e}X\x{85}
    ** Failers
    \x{2009} X\x0a   
    
/\H*\h+\V?\v{3,4}/8 
    \x{1680}\x{180e}\x{2007}X\x{2028}\x{2029}\x0c\x0d\x0a
    \x09\x{205f}\x{a0}\x0a\x{2029}\x0c\x{2028}\x0a
    \x09\x20\x{202f}\x0a\x0b\x0c
    ** Failers 
    \x09\x{200a}\x{a0}\x{2028}\x0b
     
/[\h]/8BZ
    >\x{1680}

/[\h]{3,}/8BZ
    >\x{1680}\x{180e}\x{2000}\x{2003}\x{200a}\x{202f}\x{205f}\x{3000}<

/[\v]/8BZ

/[\H]/8BZ

/[\V]/8BZ

/.*$/8<any>
    \x{1ec5} 
    
/a\Rb/I8<bsr_anycrlf>
    a\rb
    a\nb
    a\r\nb
    ** Failers
    a\x{85}b
    a\x0bb     

/a\Rb/I8<bsr_unicode>
    a\rb
    a\nb
    a\r\nb
    a\x{85}b
    a\x0bb     
    ** Failers 
    a\x{85}b\<bsr_anycrlf>
    a\x0bb\<bsr_anycrlf>
    
/a\R?b/I8<bsr_anycrlf>
    a\rb
    a\nb
    a\r\nb
    ** Failers
    a\x{85}b
    a\x0bb     

/a\R?b/I8<bsr_unicode>
    a\rb
    a\nb
    a\r\nb
    a\x{85}b
    a\x0bb     
    ** Failers 
    a\x{85}b\<bsr_anycrlf>
    a\x0bb\<bsr_anycrlf>
 
/.*a.*=.b.*/8<ANY>
    QQQ\x{2029}ABCaXYZ=!bPQR
    ** Failers
    a\x{2029}b
    \x61\xe2\x80\xa9\x62 

/[[:a\x{100}b:]]/8

/a[^]b/<JS>8
    a\x{1234}b
    a\nb 
    ** Failers
    ab  
    
/a[^]+b/<JS>8
    aXb
    a\nX\nX\x{1234}b 
    ** Failers
    ab  

/(\x{de})\1/
    \x{de}\x{de}

/X/8f<any> 
    A\x{1ec5}ABCXYZ

/Xa{2,4}b/8
    X\P
    Xa\P
    Xaa\P 
    Xaaa\P
    Xaaaa\P 
    
/Xa{2,4}?b/8
    X\P
    Xa\P
    Xaa\P 
    Xaaa\P
    Xaaaa\P 
    
/Xa{2,4}+b/8
    X\P
    Xa\P
    Xaa\P 
    Xaaa\P
    Xaaaa\P 
    
/X\x{123}{2,4}b/8
    X\P
    X\x{123}\P
    X\x{123}\x{123}\P 
    X\x{123}\x{123}\x{123}\P
    X\x{123}\x{123}\x{123}\x{123}\P 
    
/X\x{123}{2,4}?b/8
    X\P
    X\x{123}\P
    X\x{123}\x{123}\P 
    X\x{123}\x{123}\x{123}\P
    X\x{123}\x{123}\x{123}\x{123}\P 
    
/X\x{123}{2,4}+b/8
    X\P
    X\x{123}\P
    X\x{123}\x{123}\P 
    X\x{123}\x{123}\x{123}\P
    X\x{123}\x{123}\x{123}\x{123}\P 
    
/X\x{123}{2,4}b/8
    Xx\P
    X\x{123}x\P
    X\x{123}\x{123}x\P 
    X\x{123}\x{123}\x{123}x\P
    X\x{123}\x{123}\x{123}\x{123}x\P 
    
/X\x{123}{2,4}?b/8
    Xx\P
    X\x{123}x\P
    X\x{123}\x{123}x\P 
    X\x{123}\x{123}\x{123}x\P
    X\x{123}\x{123}\x{123}\x{123}x\P 
    
/X\x{123}{2,4}+b/8
    Xx\P
    X\x{123}x\P
    X\x{123}\x{123}x\P 
    X\x{123}\x{123}\x{123}x\P
    X\x{123}\x{123}\x{123}\x{123}x\P 
    
/X\d{2,4}b/8
    X\P
    X3\P
    X33\P 
    X333\P
    X3333\P 
    
/X\d{2,4}?b/8
    X\P
    X3\P
    X33\P 
    X333\P
    X3333\P 
    
/X\d{2,4}+b/8
    X\P
    X3\P
    X33\P 
    X333\P
    X3333\P 

/X\D{2,4}b/8
    X\P
    Xa\P
    Xaa\P 
    Xaaa\P
    Xaaaa\P 
    
/X\D{2,4}?b/8
    X\P
    Xa\P
    Xaa\P 
    Xaaa\P
    Xaaaa\P 
    
/X\D{2,4}+b/8
    X\P
    Xa\P
    Xaa\P 
    Xaaa\P
    Xaaaa\P 

/X\D{2,4}b/8
    X\P
    X\x{123}\P
    X\x{123}\x{123}\P 
    X\x{123}\x{123}\x{123}\P
    X\x{123}\x{123}\x{123}\x{123}\P 
    
/X\D{2,4}?b/8
    X\P
    X\x{123}\P
    X\x{123}\x{123}\P 
    X\x{123}\x{123}\x{123}\P
    X\x{123}\x{123}\x{123}\x{123}\P 
    
/X\D{2,4}+b/8
    X\P
    X\x{123}\P
    X\x{123}\x{123}\P 
    X\x{123}\x{123}\x{123}\P
    X\x{123}\x{123}\x{123}\x{123}\P 

/X[abc]{2,4}b/8
    X\P
    Xa\P
    Xaa\P 
    Xaaa\P
    Xaaaa\P 
    
/X[abc]{2,4}?b/8
    X\P
    Xa\P
    Xaa\P 
    Xaaa\P
    Xaaaa\P 
    
/X[abc]{2,4}+b/8
    X\P
    Xa\P
    Xaa\P 
    Xaaa\P
    Xaaaa\P 

/X[abc\x{123}]{2,4}b/8
    X\P
    X\x{123}\P
    X\x{123}\x{123}\P 
    X\x{123}\x{123}\x{123}\P
    X\x{123}\x{123}\x{123}\x{123}\P 
    
/X[abc\x{123}]{2,4}?b/8
    X\P
    X\x{123}\P
    X\x{123}\x{123}\P 
    X\x{123}\x{123}\x{123}\P
    X\x{123}\x{123}\x{123}\x{123}\P 
    
/X[abc\x{123}]{2,4}+b/8
    X\P
    X\x{123}\P
    X\x{123}\x{123}\P 
    X\x{123}\x{123}\x{123}\P
    X\x{123}\x{123}\x{123}\x{123}\P 

/X[^a]{2,4}b/8
    X\P
    Xz\P
    Xzz\P 
    Xzzz\P
    Xzzzz\P 
    
/X[^a]{2,4}?b/8
    X\P
    Xz\P
    Xzz\P 
    Xzzz\P
    Xzzzz\P 
    
/X[^a]{2,4}+b/8
    X\P
    Xz\P
    Xzz\P 
    Xzzz\P
    Xzzzz\P 

/X[^a]{2,4}b/8
    X\P
    X\x{123}\P
    X\x{123}\x{123}\P 
    X\x{123}\x{123}\x{123}\P
    X\x{123}\x{123}\x{123}\x{123}\P 
    
/X[^a]{2,4}?b/8
    X\P
    X\x{123}\P
    X\x{123}\x{123}\P 
    X\x{123}\x{123}\x{123}\P
    X\x{123}\x{123}\x{123}\x{123}\P 
    
/X[^a]{2,4}+b/8
    X\P
    X\x{123}\P
    X\x{123}\x{123}\P 
    X\x{123}\x{123}\x{123}\P
    X\x{123}\x{123}\x{123}\x{123}\P 

/(Y)X\1{2,4}b/8
    YX\P
    YXY\P
    YXYY\P 
    YXYYY\P
    YXYYYY\P 
    
/(Y)X\1{2,4}?b/8
    YX\P
    YXY\P
    YXYY\P 
    YXYYY\P
    YXYYYY\P 
    
/(Y)X\1{2,4}+b/8
    YX\P
    YXY\P
    YXYY\P 
    YXYYY\P
    YXYYYY\P 

/(\x{123})X\1{2,4}b/8
    \x{123}X\P
    \x{123}X\x{123}\P
    \x{123}X\x{123}\x{123}\P 
    \x{123}X\x{123}\x{123}\x{123}\P
    \x{123}X\x{123}\x{123}\x{123}\x{123}\P 
    
/(\x{123})X\1{2,4}?b/8
    \x{123}X\P
    \x{123}X\x{123}\P
    \x{123}X\x{123}\x{123}\P 
    \x{123}X\x{123}\x{123}\x{123}\P
    \x{123}X\x{123}\x{123}\x{123}\x{123}\P 
    
/(\x{123})X\1{2,4}+b/8
    \x{123}X\P
    \x{123}X\x{123}\P
    \x{123}X\x{123}\x{123}\P 
    \x{123}X\x{123}\x{123}\x{123}\P
    \x{123}X\x{123}\x{123}\x{123}\x{123}\P 

/\bthe cat\b/8
    the cat\P
    the cat\P\P

/abcd*/8
    xxxxabcd\P
    xxxxabcd\P\P

/abcd*/i8
    xxxxabcd\P
    xxxxabcd\P\P
    XXXXABCD\P
    XXXXABCD\P\P

/abc\d*/8
    xxxxabc1\P
    xxxxabc1\P\P

/(a)bc\1*/8
    xxxxabca\P
    xxxxabca\P\P

/abc[de]*/8
    xxxxabcde\P
    xxxxabcde\P\P

/X\W{3}X/8
    \PX

/\sxxx\s/8T1
    AB\x{85}xxx\x{a0}XYZ
    AB\x{a0}xxx\x{85}XYZ

/\S \S/8T1
    \x{a2} \x{84} 

'A#хц'8x<any>BZ

'A#хц
  PQ'8x<any>BZ
  
/a+#хaa
  z#XX?/8x<any>BZ 

/a+#хaa
  z#х?/8x<any>BZ 

/\g{A}xxx#bXX(?'A'123)
(?'A'456)/8x<any>BZ

/\g{A}xxx#bх(?'A'123)
(?'A'456)/8x<any>BZ

/^\cģ/8

/(\R*)(.)/s8
    \r\n
    \r\r\n\n\r 
    \r\r\n\n\r\n 

/(\R)*(.)/s8
    \r\n
    \r\r\n\n\r 
    \r\r\n\n\r\n 

/[^\x{1234}]+/iS8I   

/[^\x{1234}]+?/iS8I   

/[^\x{1234}]++/iS8I   

/[^\x{1234}]{2}/iS8I

//<bsr_anycrlf><bsr_unicode>

/f.*/
    \P\Pfor

/f.*/s
    \P\Pfor

/f.*/8
    \P\Pfor

/f.*/8s
    \P\Pfor
    
/\x{d7ff}\x{e000}/8

/\x{d800}/8

/\x{dfff}/8 

/\h+/8
    \x{1681}\x{200b}\x{1680}\x{2000}\x{202f}\x{3000}
    \x{3001}\x{2fff}\x{200a}\x{a0}\x{2000}

/[\h\x{e000}]+/8BZ
    \x{1681}\x{200b}\x{1680}\x{2000}\x{202f}\x{3000}
    \x{3001}\x{2fff}\x{200a}\x{a0}\x{2000}

/\H+/8
    \x{1680}\x{180e}\x{167f}\x{1681}\x{180d}\x{180f}
    \x{2000}\x{200a}\x{1fff}\x{200b}
    \x{202f}\x{205f}\x{202e}\x{2030}\x{205e}\x{2060}
    \x{a0}\x{3000}\x{9f}\x{a1}\x{2fff}\x{3001}

/[\H\x{d7ff}]+/8BZ
    \x{1680}\x{180e}\x{167f}\x{1681}\x{180d}\x{180f}
    \x{2000}\x{200a}\x{1fff}\x{200b}
    \x{202f}\x{205f}\x{202e}\x{2030}\x{205e}\x{2060}
    \x{a0}\x{3000}\x{9f}\x{a1}\x{2fff}\x{3001}

/\v+/8
    \x{2027}\x{2030}\x{2028}\x{2029}
    \x09\x0e\x{84}\x{86}\x{85}\x0a\x0b\x0c\x0d

/[\v\x{e000}]+/8BZ
    \x{2027}\x{2030}\x{2028}\x{2029}
    \x09\x0e\x{84}\x{86}\x{85}\x0a\x0b\x0c\x0d

/\V+/8
    \x{2028}\x{2029}\x{2027}\x{2030}
    \x{85}\x0a\x0b\x0c\x0d\x09\x0e\x{84}\x{86}

/[\V\x{d7ff}]+/8BZ
    \x{2028}\x{2029}\x{2027}\x{2030}
    \x{85}\x0a\x0b\x0c\x0d\x09\x0e\x{84}\x{86}

/\R+/8<bsr_unicode>
    \x{2027}\x{2030}\x{2028}\x{2029}
    \x09\x0e\x{84}\x{86}\x{85}\x0a\x0b\x0c\x0d

/(..)\1/8
    ab\P
    aba\P
    abab\P

/(..)\1/8i
    ab\P
    abA\P
    aBAb\P

/(..)\1{2,}/8
    ab\P
    aba\P
    abab\P
    ababa\P
    ababab\P
    ababab\P\P
    abababa\P
    abababa\P\P

/(..)\1{2,}/8i
    ab\P
    aBa\P
    aBAb\P
    AbaBA\P
    abABAb\P
    aBAbaB\P\P
    abABabA\P
    abaBABa\P\P

/(..)\1{2,}?x/8i
    ab\P
    abA\P
    aBAb\P
    abaBA\P
    abAbaB\P
    abaBabA\P
    abAbABaBx\P

/./8<CRLF>
    \r\P
    \r\P\P 
  
/.{2,3}/8<CRLF>
    \r\P 
    \r\P\P
    \r\r\P
    \r\r\P\P
    \r\r\r\P
    \r\r\r\P\P     

/.{2,3}?/8<CRLF>
    \r\P 
    \r\P\P
    \r\r\P
    \r\r\P\P
    \r\r\r\P
    \r\r\r\P\P     

/[^\x{100}][^\x{1234}][^\x{ffff}][^\x{10000}][^\x{10ffff}]/8BZ

/[^\x{100}][^\x{1234}][^\x{ffff}][^\x{10000}][^\x{10ffff}]/8BZi

/[^\x{100}]*[^\x{10000}]+[^\x{10ffff}]??[^\x{8000}]{4,}[^\x{7fff}]{2,9}?[^\x{fffff}]{5,6}+/8BZ

/[^\x{100}]*[^\x{10000}]+[^\x{10ffff}]??[^\x{8000}]{4,}[^\x{7fff}]{2,9}?[^\x{fffff}]{5,6}+/8BZi

/(?<=\x{1234}\x{1234})\bxy/I8

/(?<!^)ETA/8
    ETA

/\u0100/<JS>8BZ

/[\u0100-\u0200]/<JS>8BZ

/\ud800/<JS>8

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

/[b-d\x{200}-\x{250}]*[ae-h]?#[\x{200}-\x{250}]{0,8}[\x00-\xff]*#[\x{200}-\x{250}]+[a-z]/8BZ

/-- End of testinput5 --/