PCRE version 4.4 21-August-2003 /\x{100}/8DM Memory allocation (code space): 11 ------------------------------------------------------------------ 0 7 Bra 0 3 2 \x{100} 7 7 Ket 10 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 196 Need char = 128 /\x{1000}/8DM Memory allocation (code space): 12 ------------------------------------------------------------------ 0 8 Bra 0 3 3 \x{1000} 8 8 Ket 11 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 225 Need char = 128 /\x{10000}/8DM Memory allocation (code space): 13 ------------------------------------------------------------------ 0 9 Bra 0 3 4 \x{10000} 9 9 Ket 12 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 240 Need char = 128 /\x{100000}/8DM Memory allocation (code space): 13 ------------------------------------------------------------------ 0 9 Bra 0 3 4 \x{100000} 9 9 Ket 12 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 244 Need char = 128 /\x{1000000}/8DM Memory allocation (code space): 14 ------------------------------------------------------------------ 0 10 Bra 0 3 5 \x{1000000} 10 10 Ket 13 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 249 Need char = 128 /\x{4000000}/8DM Memory allocation (code space): 15 ------------------------------------------------------------------ 0 11 Bra 0 3 6 \x{4000000} 11 11 Ket 14 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 252 Need char = 128 /\x{7fffFFFF}/8DM Memory allocation (code space): 15 ------------------------------------------------------------------ 0 11 Bra 0 3 6 \x{7fffffff} 11 11 Ket 14 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 253 Need char = 191 /[\x{ff}]/8DM Memory allocation (code space): 40 ------------------------------------------------------------------ 0 36 Bra 0 3 [\xff] 36 36 Ket 39 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 No first char No need char /[\x{100}]/8DM Memory allocation (code space): 47 ------------------------------------------------------------------ 0 11 Bra 0 3 [\x{100}] 11 11 Ket 14 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 No first char No need char /\x{ffffffff}/8 Failed: character value in \x{...} sequence is too large at offset 11 /\x{100000000}/8 Failed: character value in \x{...} sequence is too large at offset 12 /^\x{100}a\x{1234}/8 \x{100}a\x{1234}bcd 0: \x{100}a\x{1234} /\x80/8D ------------------------------------------------------------------ 0 7 Bra 0 3 2 \x{80} 7 7 Ket 10 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 194 Need char = 128 /\xff/8D ------------------------------------------------------------------ 0 7 Bra 0 3 2 \x{ff} 7 7 Ket 10 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 195 Need char = 191 /\x{0041}\x{2262}\x{0391}\x{002e}/D8 ------------------------------------------------------------------ 0 12 Bra 0 3 7 A\x{2262}\x{391}. 12 12 Ket 15 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 'A' Need char = '.' \x{0041}\x{2262}\x{0391}\x{002e} 0: A\x{2262}\x{391}. /\x{D55c}\x{ad6d}\x{C5B4}/D8 ------------------------------------------------------------------ 0 14 Bra 0 3 9 \x{d55c}\x{ad6d}\x{c5b4} 14 14 Ket 17 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 237 Need char = 180 \x{D55c}\x{ad6d}\x{C5B4} 0: \x{d55c}\x{ad6d}\x{c5b4} /\x{65e5}\x{672c}\x{8a9e}/D8 ------------------------------------------------------------------ 0 14 Bra 0 3 9 \x{65e5}\x{672c}\x{8a9e} 14 14 Ket 17 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 230 Need char = 158 \x{65e5}\x{672c}\x{8a9e} 0: \x{65e5}\x{672c}\x{8a9e} /\x{80}/D8 ------------------------------------------------------------------ 0 7 Bra 0 3 2 \x{80} 7 7 Ket 10 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 194 Need char = 128 /\x{084}/D8 ------------------------------------------------------------------ 0 7 Bra 0 3 2 \x{84} 7 7 Ket 10 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 194 Need char = 132 /\x{104}/D8 ------------------------------------------------------------------ 0 7 Bra 0 3 2 \x{104} 7 7 Ket 10 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 196 Need char = 132 /\x{861}/D8 ------------------------------------------------------------------ 0 8 Bra 0 3 3 \x{861} 8 8 Ket 11 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 224 Need char = 161 /\x{212ab}/D8 ------------------------------------------------------------------ 0 9 Bra 0 3 4 \x{212ab} 9 9 Ket 12 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 240 Need char = 171 /.{3,5}X/D8 ------------------------------------------------------------------ 0 14 Bra 0 3 Any{3} 7 Any{0,2} 11 1 X 14 14 Ket 17 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 No first char Need char = 'X' \x{212ab}\x{212ab}\x{212ab}\x{861}X 0: \x{212ab}\x{212ab}\x{212ab}\x{861}X /.{3,5}?/D8 ------------------------------------------------------------------ 0 11 Bra 0 3 Any{3} 7 Any{0,2}? 11 11 Ket 14 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 No first char No need char \x{212ab}\x{212ab}\x{212ab}\x{861} 0: \x{212ab}\x{212ab}\x{212ab} /-- These tests are here rather than in testinput4 because Perl 5.6 has --/ /-- some problems with UTF-8 support, in the area of \x{..} where the --/ No match /-- value is < 255. It grumbles about invalid UTF-8 strings. --/ No match /^[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} /-- --/ /(?<=\C)X/8 Failed: \C not allowed in lookbehind assertion at offset 6 /-- 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 --/ No match /-- character, and you can't tell the difference.) --/ No match /X(\C)(.*)/8 X\x{1234} 0: X\x{1234} 1: \xe1 2: \x88\xb4 X\nabc 0: X\x{0a}abc 1: \x{0a} 2: abc /^[ab]/8D ------------------------------------------------------------------ 0 37 Bra 0 3 ^ 4 [a-b] 37 37 Ket 40 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: anchored utf8 No first char No need char bar 0: b *** Failers No match c No match \x{ff} No match \x{100} No match /^[^ab]/8D ------------------------------------------------------------------ 0 37 Bra 0 3 ^ 4 [\x00-`c-\xff] (neg) 37 37 Ket 40 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: anchored utf8 No first char No need char c 0: c \x{ff} 0: \x{ff} \x{100} 0: \x{100} *** Failers 0: * aaa No match /[^ab\xC0-\xF0]/8SD ------------------------------------------------------------------ 0 36 Bra 0 3 [\x00-`c-\xbf\xf1-\xff] (neg) 36 36 Ket 39 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 No first char No need char Starting character set: \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}/8SD ------------------------------------------------------------------ 0 13 Bra 0 3 \x{100}{3} 8 \x{100}{,1} 13 13 Ket 16 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 196 Need char = 128 Study returned NULL \x{100}\x{100}\x{100}\x{100\x{100} 0: \x{100}\x{100}\x{100} /(\x{100}+|x)/8SD ------------------------------------------------------------------ 0 18 Bra 0 3 6 Bra 1 6 \x{100}+ 9 6 Alt 12 1 x 15 12 Ket 18 18 Ket 21 End ------------------------------------------------------------------ Capturing subpattern count = 1 Options: utf8 No first char No need char Starting character set: x \xc4 /(\x{100}*a|x)/8SD ------------------------------------------------------------------ 0 21 Bra 0 3 9 Bra 1 6 \x{100}* 9 1 a 12 6 Alt 15 1 x 18 15 Ket 21 21 Ket 24 End ------------------------------------------------------------------ Capturing subpattern count = 1 Options: utf8 No first char No need char Starting character set: a x \xc4 /(\x{100}{0,2}a|x)/8SD ------------------------------------------------------------------ 0 23 Bra 0 3 11 Bra 1 6 \x{100}{,2} 11 1 a 14 6 Alt 17 1 x 20 17 Ket 23 23 Ket 26 End ------------------------------------------------------------------ Capturing subpattern count = 1 Options: utf8 No first char No need char Starting character set: a x \xc4 /(\x{100}{1,2}a|x)/8SD ------------------------------------------------------------------ 0 27 Bra 0 3 15 Bra 1 6 2 \x{100} 10 \x{100}{,1} 15 1 a 18 6 Alt 21 1 x 24 21 Ket 27 27 Ket 30 End ------------------------------------------------------------------ Capturing subpattern count = 1 Options: utf8 No first char No need char Starting character set: x \xc4 /\x{100}*(\d+|"(?1)")/8 1234 0: 1234 1: 1234 "1234" 0: "1234" 1: "1234" \x{100}1234 0: \x{100}1234 1: 1234 "\x{100}1234" 0: \x{100}1234 1: 1234 \x{100}\x{100}12ab 0: \x{100}\x{100}12 1: 12 \x{100}\x{100}"12" 0: \x{100}\x{100}"12" 1: "12" *** Failers No match \x{100}\x{100}abcd No match /\x{100}/8D ------------------------------------------------------------------ 0 7 Bra 0 3 2 \x{100} 7 7 Ket 10 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 196 Need char = 128 /\x{100}*/8D ------------------------------------------------------------------ 0 6 Bra 0 3 \x{100}* 6 6 Ket 9 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 No first char No need char /a\x{100}*/8D ------------------------------------------------------------------ 0 9 Bra 0 3 1 a 6 \x{100}* 9 9 Ket 12 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 'a' No need char /ab\x{100}*/8D ------------------------------------------------------------------ 0 10 Bra 0 3 2 ab 7 \x{100}* 10 10 Ket 13 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 'a' Need char = 'b' /a\x{100}\x{101}*/8D ------------------------------------------------------------------ 0 11 Bra 0 3 3 a\x{100} 8 \x{101}* 11 11 Ket 14 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 'a' Need char = 128 /a\x{100}\x{101}+/8D ------------------------------------------------------------------ 0 11 Bra 0 3 3 a\x{100} 8 \x{101}+ 11 11 Ket 14 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 'a' Need char = 129 /\x{100}*A/8D ------------------------------------------------------------------ 0 9 Bra 0 3 \x{100}* 6 1 A 9 9 Ket 12 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 No first char Need char = 'A' A 0: A /\x{100}*\d(?R)/8D ------------------------------------------------------------------ 0 10 Bra 0 3 \x{100}* 6 \d 7 0 Recurse 10 10 Ket 13 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 No first char No need char /[^\x{c4}]/D ------------------------------------------------------------------ 0 36 Bra 0 3 [\x01-35-bd-z|~-\xff] (neg) 36 36 Ket 39 End ------------------------------------------------------------------ Capturing subpattern count = 0 No options No first char No need char /[^\x{c4}]/8D ------------------------------------------------------------------ 0 36 Bra 0 3 [\x00-\xc3\xc5-\xff] (neg) 36 36 Ket 39 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 No first char No need char /[\x{100}]/8DM Memory allocation (code space): 47 ------------------------------------------------------------------ 0 11 Bra 0 3 [\x{100}] 11 11 Ket 14 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 No first char No need char \x{100} 0: \x{100} Z\x{100} 0: \x{100} \x{100}Z 0: \x{100} *** Failers No match /[Z\x{100}]/8DM Memory allocation (code space): 47 ------------------------------------------------------------------ 0 43 Bra 0 3 [Z\x{100}] 43 43 Ket 46 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 No first char No need char Z\x{100} 0: Z \x{100} 0: \x{100} \x{100}Z 0: \x{100} *** Failers No match /[\x{200}-\x{100}]/8 Failed: range out of order in character class at offset 15 /[Ä€-Ä„]/8 \x{100} 0: \x{100} \x{104} 0: \x{104} *** Failers No match \x{105} No match \x{ff} No match /[z-\x{100}]/8D ------------------------------------------------------------------ 0 12 Bra 0 3 [z-\x{100}] 12 12 Ket 15 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 No first char No need char /[z-\x{100}]/8Di ------------------------------------------------------------------ 0 45 Bra 0 3 [Zz-\xff\x{100}-\x{100}] 45 45 Ket 48 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: caseless utf8 No first char No need char /[z\Qa-d]Ä€\E]/8D ------------------------------------------------------------------ 0 43 Bra 0 3 [\-\]adz\x{100}] 43 43 Ket 46 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 No first char No need char \x{100} 0: \x{100} Ä€ 0: \x{100} /[\xFF]/D ------------------------------------------------------------------ 0 6 Bra 0 3 1 \xff 6 6 Ket 9 End ------------------------------------------------------------------ Capturing subpattern count = 0 No options First char = 255 No need char >\xff< 0: \xff /[\xff]/D8 ------------------------------------------------------------------ 0 36 Bra 0 3 [\xff] 36 36 Ket 39 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 No first char No need char >\x{ff}< 0: \x{ff} /[^\xFF]/D ------------------------------------------------------------------ 0 5 Bra 0 3 [^\xff] 5 5 Ket 8 End ------------------------------------------------------------------ Capturing subpattern count = 0 No options No first char No need char /[^\xff]/8D ------------------------------------------------------------------ 0 36 Bra 0 3 [\x00-\xfe] (neg) 36 36 Ket 39 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 No first char No need char /[Ä-Ãœ]/8 Ö # Matches without Study 0: \x{d6} \x{d6} 0: \x{d6} /[Ä-Ãœ]/8S Ö <-- Same with Study 0: \x{d6} \x{d6} 0: \x{d6} /[\x{c4}-\x{dc}]/8 Ö # Matches without Study 0: \x{d6} \x{d6} 0: \x{d6} /[\x{c4}-\x{dc}]/8S Ö <-- Same with Study 0: \x{d6} \x{d6} 0: \x{d6} /[Ã]/8 Failed: invalid UTF-8 string at offset 2 /Ã/8 Failed: invalid UTF-8 string at offset 0 /ÃÃÃxxx/8 Failed: invalid UTF-8 string at offset 1 /ÃÃÃxxx/8?D ------------------------------------------------------------------ 0 11 Bra 0 3 6 \x{c3}\x{f8}xx 11 11 Ket 14 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 no_utf8_check First char = 195 Need char = 'x' /abc/8 Ã] Error -10 à Error -10 ÃÃà Error -10 ÃÃÃ\? No match / End of testinput5 /