PCRE version 5.0 13-Sep-2004 /\x{100}/8DM Memory allocation (code space): 10 ------------------------------------------------------------------ 0 6 Bra 0 3 \x{100} 6 6 Ket 9 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 196 Need char = 128 /\x{1000}/8DM Memory allocation (code space): 11 ------------------------------------------------------------------ 0 7 Bra 0 3 \x{1000} 7 7 Ket 10 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 225 Need char = 128 /\x{10000}/8DM Memory allocation (code space): 12 ------------------------------------------------------------------ 0 8 Bra 0 3 \x{10000} 8 8 Ket 11 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 240 Need char = 128 /\x{100000}/8DM Memory allocation (code space): 12 ------------------------------------------------------------------ 0 8 Bra 0 3 \x{100000} 8 8 Ket 11 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 244 Need char = 128 /\x{1000000}/8DM Memory allocation (code space): 13 ------------------------------------------------------------------ 0 9 Bra 0 3 \x{1000000} 9 9 Ket 12 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 249 Need char = 128 /\x{4000000}/8DM Memory allocation (code space): 14 ------------------------------------------------------------------ 0 10 Bra 0 3 \x{4000000} 10 10 Ket 13 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 252 Need char = 128 /\x{7fffFFFF}/8DM Memory allocation (code space): 14 ------------------------------------------------------------------ 0 10 Bra 0 3 \x{7fffffff} 10 10 Ket 13 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 253 Need char = 191 /[\x{ff}]/8DM Memory allocation (code space): 10 ------------------------------------------------------------------ 0 6 Bra 0 3 \x{ff} 6 6 Ket 9 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 195 Need char = 191 /[\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 6 Bra 0 3 \x{80} 6 6 Ket 9 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 194 Need char = 128 /\xff/8D ------------------------------------------------------------------ 0 6 Bra 0 3 \x{ff} 6 6 Ket 9 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 195 Need char = 191 /\x{0041}\x{2262}\x{0391}\x{002e}/D8 ------------------------------------------------------------------ 0 14 Bra 0 3 A\x{2262}\x{391}. 14 14 Ket 17 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 15 Bra 0 3 \x{d55c}\x{ad6d}\x{c5b4} 15 15 Ket 18 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 15 Bra 0 3 \x{65e5}\x{672c}\x{8a9e} 15 15 Ket 18 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 6 Bra 0 3 \x{80} 6 6 Ket 9 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 194 Need char = 128 /\x{084}/D8 ------------------------------------------------------------------ 0 6 Bra 0 3 \x{84} 6 6 Ket 9 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 194 Need char = 132 /\x{104}/D8 ------------------------------------------------------------------ 0 6 Bra 0 3 \x{104} 6 6 Ket 9 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 196 Need char = 132 /\x{861}/D8 ------------------------------------------------------------------ 0 7 Bra 0 3 \x{861} 7 7 Ket 10 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 224 Need char = 161 /\x{212ab}/D8 ------------------------------------------------------------------ 0 8 Bra 0 3 \x{212ab} 8 8 Ket 11 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 240 Need char = 171 /.{3,5}X/D8 ------------------------------------------------------------------ 0 13 Bra 0 3 Any{3} 7 Any{0,2} 11 X 13 13 Ket 16 End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported 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 Partial matching not supported 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 [ab] 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 byte 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 Partial matching not supported 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 17 Bra 0 3 6 Bra 1 6 \x{100}+ 9 5 Alt 12 x 14 11 Ket 17 17 Ket 20 End ------------------------------------------------------------------ Capturing subpattern count = 1 Partial matching not supported Options: utf8 No first char No need char Starting byte set: x \xc4 /(\x{100}*a|x)/8SD ------------------------------------------------------------------ 0 19 Bra 0 3 8 Bra 1 6 \x{100}* 9 a 11 5 Alt 14 x 16 13 Ket 19 19 Ket 22 End ------------------------------------------------------------------ Capturing subpattern count = 1 Partial matching not supported Options: utf8 No first char No need char Starting byte set: a x \xc4 /(\x{100}{0,2}a|x)/8SD ------------------------------------------------------------------ 0 21 Bra 0 3 10 Bra 1 6 \x{100}{,2} 11 a 13 5 Alt 16 x 18 15 Ket 21 21 Ket 24 End ------------------------------------------------------------------ Capturing subpattern count = 1 Partial matching not supported Options: utf8 No first char No need char Starting byte set: a x \xc4 /(\x{100}{1,2}a|x)/8SD ------------------------------------------------------------------ 0 24 Bra 0 3 13 Bra 1 6 \x{100} 9 \x{100}{,1} 14 a 16 5 Alt 19 x 21 18 Ket 24 24 Ket 27 End ------------------------------------------------------------------ Capturing subpattern count = 1 Partial matching not supported Options: utf8 No first char No need char Starting byte 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 6 Bra 0 3 \x{100} 6 6 Ket 9 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 Partial matching not supported Options: utf8 No first char No need char /a\x{100}*/8D ------------------------------------------------------------------ 0 8 Bra 0 3 a 5 \x{100}* 8 8 Ket 11 End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported Options: utf8 First char = 'a' No need char /ab\x{100}*/8D ------------------------------------------------------------------ 0 10 Bra 0 3 ab 7 \x{100}* 10 10 Ket 13 End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported Options: utf8 First char = 'a' Need char = 'b' /a\x{100}\x{101}*/8D ------------------------------------------------------------------ 0 11 Bra 0 3 a\x{100} 8 \x{101}* 11 11 Ket 14 End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported Options: utf8 First char = 'a' Need char = 128 /a\x{100}\x{101}+/8D ------------------------------------------------------------------ 0 11 Bra 0 3 a\x{100} 8 \x{101}+ 11 11 Ket 14 End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported Options: utf8 First char = 'a' Need char = 129 /\x{100}*A/8D ------------------------------------------------------------------ 0 8 Bra 0 3 \x{100}* 6 A 8 8 Ket 11 End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported 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 Partial matching not supported 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\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 5 Bra 0 3 \xff 5 5 Ket 8 End ------------------------------------------------------------------ Capturing subpattern count = 0 No options First char = 255 No need char >\xff< 0: \xff /[\xff]/D8 ------------------------------------------------------------------ 0 6 Bra 0 3 \x{ff} 6 6 Ket 9 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 195 Need char = 191 >\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 15 Bra 0 3 \X{c0}\X{c0}\X{c0}xxx 15 15 Ket 18 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 /anything/8 \xc0\x80 Error -10 \xc1\x8f Error -10 \xe0\x9f\x80 Error -10 \xf0\x8f\x80\x80 Error -10 \xf8\x87\x80\x80\x80 Error -10 \xfc\x83\x80\x80\x80\x80 Error -10 \xfe\x80\x80\x80\x80\x80 Error -10 \xff\x80\x80\x80\x80\x80 Error -10 \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 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}abc(xyz(?1))/8D ------------------------------------------------------------------ 0 27 Bra 0 3 \x{100}abc 12 12 Bra 1 15 xyz 21 12 Recurse 24 12 Ket 27 27 Ket 30 End ------------------------------------------------------------------ Capturing subpattern count = 1 Options: utf8 First char = 196 Need char = 'z' /[^\x{100}]abc(xyz(?1))/8D ------------------------------------------------------------------ 0 32 Bra 0 3 [^\x{100}] 11 abc 17 12 Bra 1 20 xyz 26 17 Recurse 29 12 Ket 32 32 Ket 35 End ------------------------------------------------------------------ Capturing subpattern count = 1 Options: utf8 No first char Need char = 'z' /[ab\x{100}]abc(xyz(?1))/8D ------------------------------------------------------------------ 0 64 Bra 0 3 [ab\x{100}] 43 abc 49 12 Bra 1 52 xyz 58 49 Recurse 61 12 Ket 64 64 Ket 67 End ------------------------------------------------------------------ Capturing subpattern count = 1 Options: utf8 No first char Need char = 'z' /(\x{100}(b(?2)c))?/D8 ------------------------------------------------------------------ 0 26 Bra 0 3 Brazero 4 19 Bra 1 7 \x{100} 10 10 Bra 2 13 b 15 10 Recurse 18 c 20 10 Ket 23 19 Ket 26 26 Ket 29 End ------------------------------------------------------------------ Capturing subpattern count = 2 Options: utf8 No first char No need char /(\x{100}(b(?2)c)){0,2}/D8 ------------------------------------------------------------------ 0 55 Bra 0 3 Brazero 4 48 Bra 0 7 19 Bra 1 10 \x{100} 13 10 Bra 2 16 b 18 13 Recurse 21 c 23 10 Ket 26 19 Ket 29 Brazero 30 19 Bra 1 33 \x{100} 36 10 Bra 2 39 b 41 13 Recurse 44 c 46 10 Ket 49 19 Ket 52 48 Ket 55 55 Ket 58 End ------------------------------------------------------------------ Capturing subpattern count = 2 Options: utf8 No first char No need char /(\x{100}(b(?1)c))?/D8 ------------------------------------------------------------------ 0 26 Bra 0 3 Brazero 4 19 Bra 1 7 \x{100} 10 10 Bra 2 13 b 15 4 Recurse 18 c 20 10 Ket 23 19 Ket 26 26 Ket 29 End ------------------------------------------------------------------ Capturing subpattern count = 2 Options: utf8 No first char No need char /(\x{100}(b(?1)c)){0,2}/D8 ------------------------------------------------------------------ 0 55 Bra 0 3 Brazero 4 48 Bra 0 7 19 Bra 1 10 \x{100} 13 10 Bra 2 16 b 18 7 Recurse 21 c 23 10 Ket 26 19 Ket 29 Brazero 30 19 Bra 1 33 \x{100} 36 10 Bra 2 39 b 41 7 Recurse 44 c 46 10 Ket 49 19 Ket 52 48 Ket 55 55 Ket 58 End ------------------------------------------------------------------ Capturing subpattern count = 2 Options: utf8 No first char No need char /\W/8 A.B 0: . A\x{100}B 0: \x{100} /\w/8 \x{100}X 0: X / End of testinput5 /