/-- This set of tests is for UTF-8 support but not Unicode property support, and is relevant only to the 8-bit library. --/ < forbid W /X(\C{3})/8 X\x{1234} 0: X\x{1234} 1: \x{1234} /X(\C{4})/8 X\x{1234}YZ 0: X\x{1234}Y 1: \x{1234}Y /X\C*/8 XYZabcdce 0: XYZabcdce /X\C*?/8 XYZabcde 0: X /X\C{3,5}/8 Xabcdefg 0: Xabcde X\x{1234} 0: X\x{1234} X\x{1234}YZ 0: X\x{1234}YZ X\x{1234}\x{512} 0: X\x{1234}\x{512} X\x{1234}\x{512}YZ 0: X\x{1234}\x{512} /X\C{3,5}?/8 Xabcdefg 0: Xabc X\x{1234} 0: X\x{1234} X\x{1234}YZ 0: X\x{1234} X\x{1234}\x{512} 0: X\x{1234} /a\Cb/8 aXb 0: aXb a\nb 0: a\x{0a}b /a\C\Cb/8 a\x{100}b 0: a\x{100}b /ab\Cde/8 abXde 0: abXde /a\C\Cb/8 a\x{100}b 0: a\x{100}b ** Failers No match a\x{12257}b No match /[Ã]/8 Failed: invalid UTF-8 string at offset 1 /Ã/8 Failed: invalid UTF-8 string at offset 0 /ÃÃÃxxx/8 Failed: invalid UTF-8 string at offset 0 /ÃÃÃxxx/8?DZSSO ------------------------------------------------------------------ Bra \X{c0}\X{c0}\X{c0}xxx Ket End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: no_auto_possessify utf no_utf_check First char = \x{c3} Need char = 'x' /badutf/8 \xdf Error -10 (bad UTF-8 string) offset=0 reason=1 \xef Error -10 (bad UTF-8 string) offset=0 reason=2 \xef\x80 Error -10 (bad UTF-8 string) offset=0 reason=1 \xf7 Error -10 (bad UTF-8 string) offset=0 reason=3 \xf7\x80 Error -10 (bad UTF-8 string) offset=0 reason=2 \xf7\x80\x80 Error -10 (bad UTF-8 string) offset=0 reason=1 \xfb Error -10 (bad UTF-8 string) offset=0 reason=4 \xfb\x80 Error -10 (bad UTF-8 string) offset=0 reason=3 \xfb\x80\x80 Error -10 (bad UTF-8 string) offset=0 reason=2 \xfb\x80\x80\x80 Error -10 (bad UTF-8 string) offset=0 reason=1 \xfd Error -10 (bad UTF-8 string) offset=0 reason=5 \xfd\x80 Error -10 (bad UTF-8 string) offset=0 reason=4 \xfd\x80\x80 Error -10 (bad UTF-8 string) offset=0 reason=3 \xfd\x80\x80\x80 Error -10 (bad UTF-8 string) offset=0 reason=2 \xfd\x80\x80\x80\x80 Error -10 (bad UTF-8 string) offset=0 reason=1 \xdf\x7f Error -10 (bad UTF-8 string) offset=0 reason=6 \xef\x7f\x80 Error -10 (bad UTF-8 string) offset=0 reason=6 \xef\x80\x7f Error -10 (bad UTF-8 string) offset=0 reason=7 \xf7\x7f\x80\x80 Error -10 (bad UTF-8 string) offset=0 reason=6 \xf7\x80\x7f\x80 Error -10 (bad UTF-8 string) offset=0 reason=7 \xf7\x80\x80\x7f Error -10 (bad UTF-8 string) offset=0 reason=8 \xfb\x7f\x80\x80\x80 Error -10 (bad UTF-8 string) offset=0 reason=6 \xfb\x80\x7f\x80\x80 Error -10 (bad UTF-8 string) offset=0 reason=7 \xfb\x80\x80\x7f\x80 Error -10 (bad UTF-8 string) offset=0 reason=8 \xfb\x80\x80\x80\x7f Error -10 (bad UTF-8 string) offset=0 reason=9 \xfd\x7f\x80\x80\x80\x80 Error -10 (bad UTF-8 string) offset=0 reason=6 \xfd\x80\x7f\x80\x80\x80 Error -10 (bad UTF-8 string) offset=0 reason=7 \xfd\x80\x80\x7f\x80\x80 Error -10 (bad UTF-8 string) offset=0 reason=8 \xfd\x80\x80\x80\x7f\x80 Error -10 (bad UTF-8 string) offset=0 reason=9 \xfd\x80\x80\x80\x80\x7f Error -10 (bad UTF-8 string) offset=0 reason=10 \xed\xa0\x80 Error -10 (bad UTF-8 string) offset=0 reason=14 \xc0\x8f Error -10 (bad UTF-8 string) offset=0 reason=15 \xe0\x80\x8f Error -10 (bad UTF-8 string) offset=0 reason=16 \xf0\x80\x80\x8f Error -10 (bad UTF-8 string) offset=0 reason=17 \xf8\x80\x80\x80\x8f Error -10 (bad UTF-8 string) offset=0 reason=18 \xfc\x80\x80\x80\x80\x8f Error -10 (bad UTF-8 string) offset=0 reason=19 \x80 Error -10 (bad UTF-8 string) offset=0 reason=20 \xfe Error -10 (bad UTF-8 string) offset=0 reason=21 \xff Error -10 (bad UTF-8 string) offset=0 reason=21 /badutf/8 \xfb\x80\x80\x80\x80 Error -10 (bad UTF-8 string) offset=0 reason=11 \xfd\x80\x80\x80\x80\x80 Error -10 (bad UTF-8 string) offset=0 reason=12 \xf7\xbf\xbf\xbf Error -10 (bad UTF-8 string) offset=0 reason=13 /shortutf/8 \P\P\xdf Error -25 (short UTF-8 string) offset=0 reason=1 \P\P\xef Error -25 (short UTF-8 string) offset=0 reason=2 \P\P\xef\x80 Error -25 (short UTF-8 string) offset=0 reason=1 \P\P\xf7 Error -25 (short UTF-8 string) offset=0 reason=3 \P\P\xf7\x80 Error -25 (short UTF-8 string) offset=0 reason=2 \P\P\xf7\x80\x80 Error -25 (short UTF-8 string) offset=0 reason=1 \P\P\xfb Error -25 (short UTF-8 string) offset=0 reason=4 \P\P\xfb\x80 Error -25 (short UTF-8 string) offset=0 reason=3 \P\P\xfb\x80\x80 Error -25 (short UTF-8 string) offset=0 reason=2 \P\P\xfb\x80\x80\x80 Error -25 (short UTF-8 string) offset=0 reason=1 \P\P\xfd Error -25 (short UTF-8 string) offset=0 reason=5 \P\P\xfd\x80 Error -25 (short UTF-8 string) offset=0 reason=4 \P\P\xfd\x80\x80 Error -25 (short UTF-8 string) offset=0 reason=3 \P\P\xfd\x80\x80\x80 Error -25 (short UTF-8 string) offset=0 reason=2 \P\P\xfd\x80\x80\x80\x80 Error -25 (short UTF-8 string) offset=0 reason=1 /anything/8 \xc0\x80 Error -10 (bad UTF-8 string) offset=0 reason=15 \xc1\x8f Error -10 (bad UTF-8 string) offset=0 reason=15 \xe0\x9f\x80 Error -10 (bad UTF-8 string) offset=0 reason=16 \xf0\x8f\x80\x80 Error -10 (bad UTF-8 string) offset=0 reason=17 \xf8\x87\x80\x80\x80 Error -10 (bad UTF-8 string) offset=0 reason=18 \xfc\x83\x80\x80\x80\x80 Error -10 (bad UTF-8 string) offset=0 reason=19 \xfe\x80\x80\x80\x80\x80 Error -10 (bad UTF-8 string) offset=0 reason=21 \xff\x80\x80\x80\x80\x80 Error -10 (bad UTF-8 string) offset=0 reason=21 \xc3\x8f No match \xe0\xaf\x80 No match \xe1\x80\x80 No match \xf0\x9f\x80\x80 No match \xf1\x8f\x80\x80 No match \xf8\x88\x80\x80\x80 Error -10 (bad UTF-8 string) offset=0 reason=11 \xf9\x87\x80\x80\x80 Error -10 (bad UTF-8 string) offset=0 reason=11 \xfc\x84\x80\x80\x80\x80 Error -10 (bad UTF-8 string) offset=0 reason=12 \xfd\x83\x80\x80\x80\x80 Error -10 (bad UTF-8 string) offset=0 reason=12 \?\xf8\x88\x80\x80\x80 No match \?\xf9\x87\x80\x80\x80 No match \?\xfc\x84\x80\x80\x80\x80 No match \?\xfd\x83\x80\x80\x80\x80 No match /\x{100}/8DZ ------------------------------------------------------------------ Bra \x{100} Ket End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf First char = \x{c4} Need char = \x{80} /\x{1000}/8DZ ------------------------------------------------------------------ Bra \x{1000} Ket End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf First char = \x{e1} Need char = \x{80} /\x{10000}/8DZ ------------------------------------------------------------------ Bra \x{10000} Ket End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf First char = \x{f0} Need char = \x{80} /\x{100000}/8DZ ------------------------------------------------------------------ Bra \x{100000} Ket End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf First char = \x{f4} Need char = \x{80} /\x{10ffff}/8DZ ------------------------------------------------------------------ Bra \x{10ffff} Ket End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf First char = \x{f4} Need char = \x{bf} /[\x{ff}]/8DZ ------------------------------------------------------------------ Bra \x{ff} Ket End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf First char = \x{c3} Need char = \x{bf} /[\x{100}]/8DZ ------------------------------------------------------------------ Bra \x{100} Ket End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf First char = \x{c4} Need char = \x{80} /\x80/8DZ ------------------------------------------------------------------ Bra \x{80} Ket End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf First char = \x{c2} Need char = \x{80} /\xff/8DZ ------------------------------------------------------------------ Bra \x{ff} Ket End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf First char = \x{c3} Need char = \x{bf} /\x{D55c}\x{ad6d}\x{C5B4}/DZ8 ------------------------------------------------------------------ Bra \x{d55c}\x{ad6d}\x{c5b4} Ket End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf First char = \x{ed} Need char = \x{b4} \x{D55c}\x{ad6d}\x{C5B4} 0: \x{d55c}\x{ad6d}\x{c5b4} /\x{65e5}\x{672c}\x{8a9e}/DZ8 ------------------------------------------------------------------ Bra \x{65e5}\x{672c}\x{8a9e} Ket End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf First char = \x{e6} Need char = \x{9e} \x{65e5}\x{672c}\x{8a9e} 0: \x{65e5}\x{672c}\x{8a9e} /\x{80}/DZ8 ------------------------------------------------------------------ Bra \x{80} Ket End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf First char = \x{c2} Need char = \x{80} /\x{084}/DZ8 ------------------------------------------------------------------ Bra \x{84} Ket End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf First char = \x{c2} Need char = \x{84} /\x{104}/DZ8 ------------------------------------------------------------------ Bra \x{104} Ket End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf First char = \x{c4} Need char = \x{84} /\x{861}/DZ8 ------------------------------------------------------------------ Bra \x{861} Ket End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf First char = \x{e0} Need char = \x{a1} /\x{212ab}/DZ8 ------------------------------------------------------------------ Bra \x{212ab} Ket End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf First char = \x{f0} Need char = \x{ab} /-- This one is here not because it's different to Perl, but because the way the captured single-byte is displayed. (In Perl it becomes a character, and you can't tell the difference.) --/ /X(\C)(.*)/8 X\x{1234} 0: X\x{1234} 1: \x{e1} 2: \x{88}\x{b4} X\nabc 0: X\x{0a}abc 1: \x{0a} 2: abc /-- This one is here because Perl gives out a grumbly error message (quite correctly, but that messes up comparisons). --/ /a\Cb/8 *** Failers No match a\x{100}b No match /[^ab\xC0-\xF0]/8SDZ ------------------------------------------------------------------ Bra [\x00-`c-\xbf\xf1-\xff] (neg) Ket End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf No first char No need char Subject length lower bound = 1 Starting chars: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f \xc2 \xc3 \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb \xcc \xcd \xce \xcf \xd0 \xd1 \xd2 \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda \xdb \xdc \xdd \xde \xdf \xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 \xea \xeb \xec \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb \xfc \xfd \xfe \xff \x{f1} 0: \x{f1} \x{bf} 0: \x{bf} \x{100} 0: \x{100} \x{1000} 0: \x{1000} *** Failers 0: * \x{c0} No match \x{f0} No match /Ä€{3,4}/8SDZ ------------------------------------------------------------------ Bra \x{100}{3} \x{100}?+ Ket End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf First char = \x{c4} Need char = \x{80} Subject length lower bound = 3 No starting char list \x{100}\x{100}\x{100}\x{100\x{100} 0: \x{100}\x{100}\x{100} /(\x{100}+|x)/8SDZ ------------------------------------------------------------------ Bra CBra 1 \x{100}++ Alt x Ket Ket End ------------------------------------------------------------------ Capturing subpattern count = 1 Options: utf No first char No need char Subject length lower bound = 1 Starting chars: x \xc4 /(\x{100}*a|x)/8SDZ ------------------------------------------------------------------ Bra CBra 1 \x{100}*+ a Alt x Ket Ket End ------------------------------------------------------------------ Capturing subpattern count = 1 Options: utf No first char No need char Subject length lower bound = 1 Starting chars: a x \xc4 /(\x{100}{0,2}a|x)/8SDZ ------------------------------------------------------------------ Bra CBra 1 \x{100}{0,2}+ a Alt x Ket Ket End ------------------------------------------------------------------ Capturing subpattern count = 1 Options: utf No first char No need char Subject length lower bound = 1 Starting chars: a x \xc4 /(\x{100}{1,2}a|x)/8SDZ ------------------------------------------------------------------ Bra CBra 1 \x{100} \x{100}{0,1}+ a Alt x Ket Ket End ------------------------------------------------------------------ Capturing subpattern count = 1 Options: utf No first char No need char Subject length lower bound = 1 Starting chars: x \xc4 /\x{100}/8DZ ------------------------------------------------------------------ Bra \x{100} Ket End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf First char = \x{c4} Need char = \x{80} /a\x{100}\x{101}*/8DZ ------------------------------------------------------------------ Bra a\x{100} \x{101}*+ Ket End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf First char = 'a' Need char = \x{80} /a\x{100}\x{101}+/8DZ ------------------------------------------------------------------ Bra a\x{100} \x{101}++ Ket End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf First char = 'a' Need char = \x{81} /[^\x{c4}]/DZ ------------------------------------------------------------------ Bra [^\x{c4}] Ket End ------------------------------------------------------------------ Capturing subpattern count = 0 No options No first char No need char /[\x{100}]/8DZ ------------------------------------------------------------------ Bra \x{100} Ket End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf First char = \x{c4} Need char = \x{80} \x{100} 0: \x{100} Z\x{100} 0: \x{100} \x{100}Z 0: \x{100} *** Failers No match /[\xff]/DZ8 ------------------------------------------------------------------ Bra \x{ff} Ket End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf First char = \x{c3} Need char = \x{bf} >\x{ff}< 0: \x{ff} /[^\xff]/8DZ ------------------------------------------------------------------ Bra [^\x{ff}] Ket End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf No first char No need char /\x{100}abc(xyz(?1))/8DZ ------------------------------------------------------------------ Bra \x{100}abc CBra 1 xyz Recurse Ket Ket End ------------------------------------------------------------------ Capturing subpattern count = 1 Options: utf First char = \x{c4} Need char = 'z' /a\x{1234}b/P8 a\x{1234}b 0: a\x{1234}b /\777/8I Capturing subpattern count = 0 Options: utf First char = \x{c7} Need char = \x{bf} \x{1ff} 0: \x{1ff} \777 0: \x{1ff} /\x{100}+\x{200}/8DZ ------------------------------------------------------------------ Bra \x{100}++ \x{200} Ket End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf First char = \x{c4} Need char = \x{80} /\x{100}+X/8DZ ------------------------------------------------------------------ Bra \x{100}++ X Ket End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf First char = \x{c4} Need char = 'X' /^[\QÄ€\E-\QÅ\E/BZ8 Failed: missing terminating ] for character class at offset 15 /-- This tests the stricter UTF-8 check according to RFC 3629. --/ /X/8 \x{d800} Error -10 (bad UTF-8 string) offset=0 reason=14 \x{d800}\? No match \x{da00} Error -10 (bad UTF-8 string) offset=0 reason=14 \x{da00}\? No match \x{dfff} Error -10 (bad UTF-8 string) offset=0 reason=14 \x{dfff}\? No match \x{110000} Error -10 (bad UTF-8 string) offset=0 reason=13 \x{110000}\? No match \x{2000000} Error -10 (bad UTF-8 string) offset=0 reason=11 \x{2000000}\? No match \x{7fffffff} Error -10 (bad UTF-8 string) offset=0 reason=12 \x{7fffffff}\? No match /(*UTF8)\x{1234}/ abcd\x{1234}pqr 0: \x{1234} /(*CRLF)(*UTF)(*BSR_UNICODE)a\Rb/I Capturing subpattern count = 0 Options: bsr_unicode utf Forced newline sequence: CRLF First char = 'a' Need char = 'b' /\h/SI8 Capturing subpattern count = 0 Options: utf No first char No need char Subject length lower bound = 1 Starting chars: \x09 \x20 \xc2 \xe1 \xe2 \xe3 ABC\x{09} 0: \x{09} ABC\x{20} 0: ABC\x{a0} 0: \x{a0} ABC\x{1680} 0: \x{1680} ABC\x{180e} 0: \x{180e} ABC\x{2000} 0: \x{2000} ABC\x{202f} 0: \x{202f} ABC\x{205f} 0: \x{205f} ABC\x{3000} 0: \x{3000} /\v/SI8 Capturing subpattern count = 0 Options: utf No first char No need char Subject length lower bound = 1 Starting chars: \x0a \x0b \x0c \x0d \xc2 \xe2 ABC\x{0a} 0: \x{0a} ABC\x{0b} 0: \x{0b} ABC\x{0c} 0: \x{0c} ABC\x{0d} 0: \x{0d} ABC\x{85} 0: \x{85} ABC\x{2028} 0: \x{2028} /\h*A/SI8 Capturing subpattern count = 0 Options: utf No first char Need char = 'A' Subject length lower bound = 1 Starting chars: \x09 \x20 A \xc2 \xe1 \xe2 \xe3 CDBABC 0: A /\v+A/SI8 Capturing subpattern count = 0 Options: utf No first char Need char = 'A' Subject length lower bound = 2 Starting chars: \x0a \x0b \x0c \x0d \xc2 \xe2 /\s?xxx\s/8SI Capturing subpattern count = 0 Options: utf No first char Need char = 'x' Subject length lower bound = 4 Starting chars: \x09 \x0a \x0b \x0c \x0d \x20 x /\sxxx\s/I8ST1 Capturing subpattern count = 0 Options: utf No first char Need char = 'x' Subject length lower bound = 5 Starting chars: \x09 \x0a \x0b \x0c \x0d \x20 \xc2 AB\x{85}xxx\x{a0}XYZ 0: \x{85}xxx\x{a0} AB\x{a0}xxx\x{85}XYZ 0: \x{a0}xxx\x{85} /\S \S/I8ST1 Capturing subpattern count = 0 Options: utf No first char Need char = ' ' Subject length lower bound = 3 Starting chars: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 \x1a \x1b \x1c \x1d \x1e \x1f ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f \xc0 \xc1 \xc2 \xc3 \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb \xcc \xcd \xce \xcf \xd0 \xd1 \xd2 \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda \xdb \xdc \xdd \xde \xdf \xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 \xea \xeb \xec \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb \xfc \xfd \xfe \xff \x{a2} \x{84} 0: \x{a2} \x{84} A Z 0: A Z /a+/8 a\x{123}aa\>1 0: aa a\x{123}aa\>2 Error -11 (bad UTF-8 offset) a\x{123}aa\>3 0: aa a\x{123}aa\>4 0: a a\x{123}aa\>5 No match a\x{123}aa\>6 Error -24 (bad offset value) /\x{1234}+/iS8I Capturing subpattern count = 0 Options: caseless utf No first char No need char Subject length lower bound = 1 Starting chars: \xe1 /\x{1234}+?/iS8I Capturing subpattern count = 0 Options: caseless utf No first char No need char Subject length lower bound = 1 Starting chars: \xe1 /\x{1234}++/iS8I Capturing subpattern count = 0 Options: caseless utf No first char No need char Subject length lower bound = 1 Starting chars: \xe1 /\x{1234}{2}/iS8I Capturing subpattern count = 0 Options: caseless utf No first char No need char Subject length lower bound = 2 Starting chars: \xe1 /[^\x{c4}]/8DZ ------------------------------------------------------------------ Bra [^\x{c4}] Ket End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf No first char No need char /X+\x{200}/8DZ ------------------------------------------------------------------ Bra X++ \x{200} Ket End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf First char = 'X' Need char = \x{80} /\R/SI8 Capturing subpattern count = 0 Options: utf No first char No need char Subject length lower bound = 1 Starting chars: \x0a \x0b \x0c \x0d \xc2 \xe2 /\777/8DZ ------------------------------------------------------------------ Bra \x{1ff} Ket End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf First char = \x{c7} Need char = \x{bf} /\w+\x{C4}/8BZ ------------------------------------------------------------------ Bra \w++ \x{c4} Ket End ------------------------------------------------------------------ a\x{C4}\x{C4} 0: a\x{c4} /\w+\x{C4}/8BZT1 ------------------------------------------------------------------ Bra \w+ \x{c4} Ket End ------------------------------------------------------------------ a\x{C4}\x{C4} 0: a\x{c4}\x{c4} /\W+\x{C4}/8BZ ------------------------------------------------------------------ Bra \W+ \x{c4} Ket End ------------------------------------------------------------------ !\x{C4} 0: !\x{c4} /\W+\x{C4}/8BZT1 ------------------------------------------------------------------ Bra \W++ \x{c4} Ket End ------------------------------------------------------------------ !\x{C4} 0: !\x{c4} /\W+\x{A1}/8BZ ------------------------------------------------------------------ Bra \W+ \x{a1} Ket End ------------------------------------------------------------------ !\x{A1} 0: !\x{a1} /\W+\x{A1}/8BZT1 ------------------------------------------------------------------ Bra \W+ \x{a1} Ket End ------------------------------------------------------------------ !\x{A1} 0: !\x{a1} /X\s+\x{A0}/8BZ ------------------------------------------------------------------ Bra X \s++ \x{a0} Ket End ------------------------------------------------------------------ X\x20\x{A0}\x{A0} 0: X \x{a0} /X\s+\x{A0}/8BZT1 ------------------------------------------------------------------ Bra X \s+ \x{a0} Ket End ------------------------------------------------------------------ X\x20\x{A0}\x{A0} 0: X \x{a0}\x{a0} /\S+\x{A0}/8BZ ------------------------------------------------------------------ Bra \S+ \x{a0} Ket End ------------------------------------------------------------------ X\x{A0}\x{A0} 0: X\x{a0}\x{a0} /\S+\x{A0}/8BZT1 ------------------------------------------------------------------ Bra \S++ \x{a0} Ket End ------------------------------------------------------------------ X\x{A0}\x{A0} 0: X\x{a0} /\x{a0}+\s!/8BZ ------------------------------------------------------------------ Bra \x{a0}++ \s ! Ket End ------------------------------------------------------------------ \x{a0}\x20! 0: \x{a0} ! /\x{a0}+\s!/8BZT1 ------------------------------------------------------------------ Bra \x{a0}+ \s ! Ket End ------------------------------------------------------------------ \x{a0}\x20! 0: \x{a0} ! /A/8 \x{ff000041} ** Character \x{ff000041} is greater than 0x7fffffff and so cannot be converted to UTF-8 \x{7f000041} Error -10 (bad UTF-8 string) offset=0 reason=12 /(*UTF8)abc/9 Failed: setting UTF is disabled by the application at offset 0 /abc/89 Failed: setting UTF is disabled by the application at offset 0 /-- End of testinput15 --/