Fixed lots of issues with installing a low-caps version of fshell from SIS file.
* Fixed issue in CCommandFactory whereby some APIs like GetCommandInfoL could trigger allocations on the wrong heap or signals to the wrong thread. The symptoms were often seen as a crash in the which_00 thread when running ciftest.
* Lots of build fixes for when FSHELL_PROTECTED_UIDS isn't defined and when all capabilities aren't available.
* Added new platform.mmh macro FSHELL_OPEN_SIGNED.
* Open signing of fshell SIS files is now supported for production S60 handsets. Build fshell with the FSHELL_OPEN_SIGNED macro defined (and without defining FSHELL_CAP_ALL or FSHELL_PROTECTED_UIDS) in your platform.mmh and submit \epoc32\fshell\fshell.unsigned.sis to https://www.symbiansigned.com/app/page/public/openSignedOnline.do . The following commands are not available when using Open Signing due to Platform Security restrictions: fdb; kerninfo; chunkinfo; svrinfo; objinfo; sudo; fsck; localdrive; ramdefrag; readmem; reboot; setcritical; setpriority. Others such as chkdeps, e32header, ps, and fshell itself will run but in a restricted capacity (for example, fshell will no longer allow you to modify files in the \sys\bin directory).
* Removed commands objinfo, svrinfo, chunkinfo, readmem, fsck completely when memory access isn't present - previously they would still appear in the help but would give an error if you tried to run them.
/\x{100}/8DZ
------------------------------------------------------------------
Bra
\x{100}
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 0
Options: utf8
First char = 196
Need char = 128
/\x{1000}/8DZ
------------------------------------------------------------------
Bra
\x{1000}
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 0
Options: utf8
First char = 225
Need char = 128
/\x{10000}/8DZ
------------------------------------------------------------------
Bra
\x{10000}
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 0
Options: utf8
First char = 240
Need char = 128
/\x{100000}/8DZ
------------------------------------------------------------------
Bra
\x{100000}
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 0
Options: utf8
First char = 244
Need char = 128
/\x{1000000}/8DZ
------------------------------------------------------------------
Bra
\x{1000000}
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 0
Options: utf8
First char = 249
Need char = 128
/\x{4000000}/8DZ
------------------------------------------------------------------
Bra
\x{4000000}
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 0
Options: utf8
First char = 252
Need char = 128
/\x{7fffFFFF}/8DZ
------------------------------------------------------------------
Bra
\x{7fffffff}
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 0
Options: utf8
First char = 253
Need char = 191
/[\x{ff}]/8DZ
------------------------------------------------------------------
Bra
\x{ff}
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 0
Options: utf8
First char = 195
Need char = 191
/[\x{100}]/8DZ
------------------------------------------------------------------
Bra
[\x{100}]
Ket
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/8DZ
------------------------------------------------------------------
Bra
\x{80}
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 0
Options: utf8
First char = 194
Need char = 128
/\xff/8DZ
------------------------------------------------------------------
Bra
\x{ff}
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 0
Options: utf8
First char = 195
Need char = 191
/\x{0041}\x{2262}\x{0391}\x{002e}/DZ8
------------------------------------------------------------------
Bra
A\x{2262}\x{391}.
Ket
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}/DZ8
------------------------------------------------------------------
Bra
\x{d55c}\x{ad6d}\x{c5b4}
Ket
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}/DZ8
------------------------------------------------------------------
Bra
\x{65e5}\x{672c}\x{8a9e}
Ket
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}/DZ8
------------------------------------------------------------------
Bra
\x{80}
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 0
Options: utf8
First char = 194
Need char = 128
/\x{084}/DZ8
------------------------------------------------------------------
Bra
\x{84}
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 0
Options: utf8
First char = 194
Need char = 132
/\x{104}/DZ8
------------------------------------------------------------------
Bra
\x{104}
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 0
Options: utf8
First char = 196
Need char = 132
/\x{861}/DZ8
------------------------------------------------------------------
Bra
\x{861}
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 0
Options: utf8
First char = 224
Need char = 161
/\x{212ab}/DZ8
------------------------------------------------------------------
Bra
\x{212ab}
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 0
Options: utf8
First char = 240
Need char = 171
/.{3,5}X/DZ8
------------------------------------------------------------------
Bra
Any{3}
Any{0,2}
X
Ket
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}?/DZ8
------------------------------------------------------------------
Bra
Any{3}
Any{0,2}?
Ket
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 value is < 255.
It grumbles about invalid UTF-8 strings. --/
/^[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 character, and you
can't tell the difference.) --/
/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]/8DZ
------------------------------------------------------------------
Bra
^
[ab]
Ket
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]/8DZ
------------------------------------------------------------------
Bra
^
[\x00-`c-\xff] (neg)
Ket
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]/8SDZ
------------------------------------------------------------------
Bra
[\x00-`c-\xbf\xf1-\xff] (neg)
Ket
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}/8SDZ
------------------------------------------------------------------
Bra
\x{100}{3}
\x{100}?
Ket
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)/8SDZ
------------------------------------------------------------------
Bra
CBra 1
\x{100}+
Alt
x
Ket
Ket
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)/8SDZ
------------------------------------------------------------------
Bra
CBra 1
\x{100}*+
a
Alt
x
Ket
Ket
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)/8SDZ
------------------------------------------------------------------
Bra
CBra 1
\x{100}{0,2}
a
Alt
x
Ket
Ket
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)/8SDZ
------------------------------------------------------------------
Bra
CBra 1
\x{100}
\x{100}{0,1}
a
Alt
x
Ket
Ket
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}/8DZ
------------------------------------------------------------------
Bra
\x{100}
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 0
Options: utf8
First char = 196
Need char = 128
/\x{100}*/8DZ
------------------------------------------------------------------
Bra
\x{100}*
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 0
Partial matching not supported
Options: utf8
No first char
No need char
/a\x{100}*/8DZ
------------------------------------------------------------------
Bra
a
\x{100}*
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 0
Partial matching not supported
Options: utf8
First char = 'a'
No need char
/ab\x{100}*/8DZ
------------------------------------------------------------------
Bra
ab
\x{100}*
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 0
Partial matching not supported
Options: utf8
First char = 'a'
Need char = 'b'
/a\x{100}\x{101}*/8DZ
------------------------------------------------------------------
Bra
a\x{100}
\x{101}*
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 0
Partial matching not supported
Options: utf8
First char = 'a'
Need char = 128
/a\x{100}\x{101}+/8DZ
------------------------------------------------------------------
Bra
a\x{100}
\x{101}+
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 0
Partial matching not supported
Options: utf8
First char = 'a'
Need char = 129
/\x{100}*A/8DZ
------------------------------------------------------------------
Bra
\x{100}*+
A
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 0
Partial matching not supported
Options: utf8
No first char
Need char = 'A'
A
0: A
/\x{100}*\d(?R)/8DZ
------------------------------------------------------------------
Bra
\x{100}*+
\d
Once
Recurse
Ket
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 0
Partial matching not supported
Options: utf8
No first char
No need char
/[^\x{c4}]/DZ
------------------------------------------------------------------
Bra
[^\xc4]
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 0
No options
No first char
No need char
/[^\x{c4}]/8DZ
------------------------------------------------------------------
Bra
[\x00-\xc3\xc5-\xff] (neg)
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 0
Options: utf8
No first char
No need char
/[\x{100}]/8DZ
------------------------------------------------------------------
Bra
[\x{100}]
Ket
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}]/8DZ
------------------------------------------------------------------
Bra
[Z\x{100}]
Ket
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}]/8DZ
------------------------------------------------------------------
Bra
[z-\x{100}]
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 0
Options: utf8
No first char
No need char
/[z\Qa-d]Ā\E]/8DZ
------------------------------------------------------------------
Bra
[\-\]adz\x{100}]
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 0
Options: utf8
No first char
No need char
\x{100}
0: \x{100}
Ā
0: \x{100}
/[\xFF]/DZ
------------------------------------------------------------------
Bra
\xff
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 0
No options
First char = 255
No need char
>\xff<
0: \xff
/[\xff]/DZ8
------------------------------------------------------------------
Bra
\x{ff}
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 0
Options: utf8
First char = 195
Need char = 191
>\x{ff}<
0: \x{ff}
/[^\xFF]/DZ
------------------------------------------------------------------
Bra
[^\xff]
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 0
No options
No first char
No need char
/[^\xff]/8DZ
------------------------------------------------------------------
Bra
[\x00-\xfe] (neg)
Ket
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?DZ
------------------------------------------------------------------
Bra
\X{c0}\X{c0}\X{c0}xxx
Ket
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
Error -10
\xf9\x87\x80\x80\x80
Error -10
\xfc\x84\x80\x80\x80\x80
Error -10
\xfd\x83\x80\x80\x80\x80
Error -10
\?\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))/8DZ
------------------------------------------------------------------
Bra
\x{100}abc
CBra 1
xyz
Once
Recurse
Ket
Ket
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 1
Options: utf8
First char = 196
Need char = 'z'
/[^\x{100}]abc(xyz(?1))/8DZ
------------------------------------------------------------------
Bra
[^\x{100}]
abc
CBra 1
xyz
Once
Recurse
Ket
Ket
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 1
Options: utf8
No first char
Need char = 'z'
/[ab\x{100}]abc(xyz(?1))/8DZ
------------------------------------------------------------------
Bra
[ab\x{100}]
abc
CBra 1
xyz
Once
Recurse
Ket
Ket
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 1
Options: utf8
No first char
Need char = 'z'
/(\x{100}(b(?2)c))?/DZ8
------------------------------------------------------------------
Bra
Brazero
CBra 1
\x{100}
CBra 2
b
Once
Recurse
Ket
c
Ket
Ket
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 2
Options: utf8
No first char
No need char
/(\x{100}(b(?2)c)){0,2}/DZ8
------------------------------------------------------------------
Bra
Brazero
Bra
CBra 1
\x{100}
CBra 2
b
Once
Recurse
Ket
c
Ket
Ket
Brazero
CBra 1
\x{100}
CBra 2
b
Once
Recurse
Ket
c
Ket
Ket
Ket
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 2
Options: utf8
No first char
No need char
/(\x{100}(b(?1)c))?/DZ8
------------------------------------------------------------------
Bra
Brazero
CBra 1
\x{100}
CBra 2
b
Once
Recurse
Ket
c
Ket
Ket
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 2
Options: utf8
No first char
No need char
/(\x{100}(b(?1)c)){0,2}/DZ8
------------------------------------------------------------------
Bra
Brazero
Bra
CBra 1
\x{100}
CBra 2
b
Once
Recurse
Ket
c
Ket
Ket
Brazero
CBra 1
\x{100}
CBra 2
b
Once
Recurse
Ket
c
Ket
Ket
Ket
Ket
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
/a\x{1234}b/P8
a\x{1234}b
0: a\x{1234}b
/^\ሴ/8DZ
------------------------------------------------------------------
Bra
^
\x{1234}
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 0
Options: anchored utf8
No first char
No need char
/\777/I
Failed: octal value is greater than \377 (not in UTF-8 mode) at offset 3
/\777/8I
Capturing subpattern count = 0
Options: utf8
First char = 199
Need char = 191
\x{1ff}
0: \x{1ff}
\777
0: \x{1ff}
/\x{100}*\d/8DZ
------------------------------------------------------------------
Bra
\x{100}*+
\d
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 0
Partial matching not supported
Options: utf8
No first char
No need char
/\x{100}*\s/8DZ
------------------------------------------------------------------
Bra
\x{100}*+
\s
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 0
Partial matching not supported
Options: utf8
No first char
No need char
/\x{100}*\w/8DZ
------------------------------------------------------------------
Bra
\x{100}*+
\w
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 0
Partial matching not supported
Options: utf8
No first char
No need char
/\x{100}*\D/8DZ
------------------------------------------------------------------
Bra
\x{100}*
\D
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 0
Partial matching not supported
Options: utf8
No first char
No need char
/\x{100}*\S/8DZ
------------------------------------------------------------------
Bra
\x{100}*
\S
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 0
Partial matching not supported
Options: utf8
No first char
No need char
/\x{100}*\W/8DZ
------------------------------------------------------------------
Bra
\x{100}*
\W
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 0
Partial matching not supported
Options: utf8
No first char
No need char
/\x{100}+\x{200}/8DZ
------------------------------------------------------------------
Bra
\x{100}++
\x{200}
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 0
Partial matching not supported
Options: utf8
First char = 196
Need char = 128
/\x{100}+X/8DZ
------------------------------------------------------------------
Bra
\x{100}++
X
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 0
Partial matching not supported
Options: utf8
First char = 196
Need char = 'X'
/X+\x{200}/8DZ
------------------------------------------------------------------
Bra
X++
\x{200}
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 0
Partial matching not supported
Options: utf8
First char = 'X'
Need char = 128
/()()()()()()()()()()
()()()()()()()()()()
()()()()()()()()()()
()()()()()()()()()()
A (x) (?41) B/8x
AxxB
Matched, but too many substrings
0: AxxB
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
/^[\x{100}\E-\Q\E\x{150}]/BZ8
------------------------------------------------------------------
Bra
^
[\x{100}-\x{150}]
Ket
End
------------------------------------------------------------------
/^[\QĀ\E-\QŐ\E]/BZ8
------------------------------------------------------------------
Bra
^
[\x{100}-\x{150}]
Ket
End
------------------------------------------------------------------
/^[\QĀ\E-\QŐ\E/BZ8
Failed: missing terminating ] for character class at offset 15
/^abc./mgx8<any>
abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x{0085}abc7 \x{2028}abc8 \x{2029}abc9 JUNK
0: abc1
0: abc2
0: abc3
0: abc4
0: abc5
0: abc6
0: abc7
0: abc8
0: abc9
/abc.$/mgx8<any>
abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x{0085} abc7\x{2028} abc8\x{2029} abc9
0: abc1
0: abc2
0: abc3
0: abc4
0: abc5
0: abc6
0: abc7
0: abc8
0: abc9
/^a\Rb/8<bsr_unicode>
a\nb
0: a\x{0a}b
a\rb
0: a\x{0d}b
a\r\nb
0: a\x{0d}\x{0a}b
a\x0bb
0: a\x{0b}b
a\x0cb
0: a\x{0c}b
a\x{85}b
0: a\x{85}b
a\x{2028}b
0: a\x{2028}b
a\x{2029}b
0: a\x{2029}b
** Failers
No match
a\n\rb
No match
/^a\R*b/8<bsr_unicode>
ab
0: ab
a\nb
0: a\x{0a}b
a\rb
0: a\x{0d}b
a\r\nb
0: a\x{0d}\x{0a}b
a\x0bb
0: a\x{0b}b
a\x0c\x{2028}\x{2029}b
0: a\x{0c}\x{2028}\x{2029}b
a\x{85}b
0: a\x{85}b
a\n\rb
0: a\x{0a}\x{0d}b
a\n\r\x{85}\x0cb
0: a\x{0a}\x{0d}\x{85}\x{0c}b
/^a\R+b/8<bsr_unicode>
a\nb
0: a\x{0a}b
a\rb
0: a\x{0d}b
a\r\nb
0: a\x{0d}\x{0a}b
a\x0bb
0: a\x{0b}b
a\x0c\x{2028}\x{2029}b
0: a\x{0c}\x{2028}\x{2029}b
a\x{85}b
0: a\x{85}b
a\n\rb
0: a\x{0a}\x{0d}b
a\n\r\x{85}\x0cb
0: a\x{0a}\x{0d}\x{85}\x{0c}b
** Failers
No match
ab
No match
/^a\R{1,3}b/8<bsr_unicode>
a\nb
0: a\x{0a}b
a\n\rb
0: a\x{0a}\x{0d}b
a\n\r\x{85}b
0: a\x{0a}\x{0d}\x{85}b
a\r\n\r\nb
0: a\x{0d}\x{0a}\x{0d}\x{0a}b
a\r\n\r\n\r\nb
0: a\x{0d}\x{0a}\x{0d}\x{0a}\x{0d}\x{0a}b
a\n\r\n\rb
0: a\x{0a}\x{0d}\x{0a}\x{0d}b
a\n\n\r\nb
0: a\x{0a}\x{0a}\x{0d}\x{0a}b
** Failers
No match
a\n\n\n\rb
No match
a\r
No match
/\H\h\V\v/8
X X\x0a
0: X X\x{0a}
X\x09X\x0b
0: X\x{09}X\x{0b}
** Failers
No match
\x{a0} X\x0a
No match
/\H*\h+\V?\v{3,4}/8
\x09\x20\x{a0}X\x0a\x0b\x0c\x0d\x0a
0: \x{09} \x{a0}X\x{0a}\x{0b}\x{0c}\x{0d}
\x09\x20\x{a0}\x0a\x0b\x0c\x0d\x0a
0: \x{09} \x{a0}\x{0a}\x{0b}\x{0c}\x{0d}
\x09\x20\x{a0}\x0a\x0b\x0c
0: \x{09} \x{a0}\x{0a}\x{0b}\x{0c}
** Failers
No match
\x09\x20\x{a0}\x0a\x0b
No match
/\H\h\V\v/8
\x{3001}\x{3000}\x{2030}\x{2028}
0: \x{3001}\x{3000}\x{2030}\x{2028}
X\x{180e}X\x{85}
0: X\x{180e}X\x{85}
** Failers
No match
\x{2009} X\x0a
No match
/\H*\h+\V?\v{3,4}/8
\x{1680}\x{180e}\x{2007}X\x{2028}\x{2029}\x0c\x0d\x0a
0: \x{1680}\x{180e}\x{2007}X\x{2028}\x{2029}\x{0c}\x{0d}
\x09\x{205f}\x{a0}\x0a\x{2029}\x0c\x{2028}\x0a
0: \x{09}\x{205f}\x{a0}\x{0a}\x{2029}\x{0c}\x{2028}
\x09\x20\x{202f}\x0a\x0b\x0c
0: \x{09} \x{202f}\x{0a}\x{0b}\x{0c}
** Failers
No match
\x09\x{200a}\x{a0}\x{2028}\x0b
No match
/[\h]/8BZ
------------------------------------------------------------------
Bra
[\x09 \xa0\x{1680}\x{180e}\x{2000}-\x{200a}\x{202f}\x{205f}\x{3000}]
Ket
End
------------------------------------------------------------------
>\x{1680}
0: \x{1680}
/[\h]{3,}/8BZ
------------------------------------------------------------------
Bra
[\x09 \xa0\x{1680}\x{180e}\x{2000}-\x{200a}\x{202f}\x{205f}\x{3000}]{3,}
Ket
End
------------------------------------------------------------------
>\x{1680}\x{180e}\x{2000}\x{2003}\x{200a}\x{202f}\x{205f}\x{3000}<
0: \x{1680}\x{180e}\x{2000}\x{2003}\x{200a}\x{202f}\x{205f}\x{3000}
/[\v]/8BZ
------------------------------------------------------------------
Bra
[\x0a-\x0d\x85\x{2028}-\x{2029}]
Ket
End
------------------------------------------------------------------
/[\H]/8BZ
------------------------------------------------------------------
Bra
[\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff\x{100}-\x{167f}\x{1681}-\x{180d}\x{180f}-\x{1fff}\x{200b}-\x{202e}\x{2030}-\x{205e}\x{2060}-\x{2fff}\x{3001}-\x{7fffffff}]
Ket
End
------------------------------------------------------------------
/[\V]/8BZ
------------------------------------------------------------------
Bra
[\x00-\x09\x0e-\x84\x86-\xff\x{100}-\x{2027}\x{2029}-\x{7fffffff}]
Ket
End
------------------------------------------------------------------
/.*$/8<any>
\x{1ec5}
0: \x{1ec5}
/-- This tests the stricter UTF-8 check according to RFC 3629. --/
/X/8
\x{0}\x{d7ff}\x{e000}\x{10ffff}
No match
\x{d800}
Error -10
\x{d800}\?
No match
\x{da00}
Error -10
\x{da00}\?
No match
\x{dfff}
Error -10
\x{dfff}\?
No match
\x{110000}
Error -10
\x{110000}\?
No match
\x{2000000}
Error -10
\x{2000000}\?
No match
\x{7fffffff}
Error -10
\x{7fffffff}\?
No match
/a\Rb/I8<bsr_anycrlf>
Capturing subpattern count = 0
Options: bsr_anycrlf utf8
First char = 'a'
Need char = 'b'
a\rb
0: a\x{0d}b
a\nb
0: a\x{0a}b
a\r\nb
0: a\x{0d}\x{0a}b
** Failers
No match
a\x{85}b
No match
a\x0bb
No match
/a\Rb/I8<bsr_unicode>
Capturing subpattern count = 0
Options: bsr_unicode utf8
First char = 'a'
Need char = 'b'
a\rb
0: a\x{0d}b
a\nb
0: a\x{0a}b
a\r\nb
0: a\x{0d}\x{0a}b
a\x{85}b
0: a\x{85}b
a\x0bb
0: a\x{0b}b
** Failers
No match
a\x{85}b\<bsr_anycrlf>
No match
a\x0bb\<bsr_anycrlf>
No match
/a\R?b/I8<bsr_anycrlf>
Capturing subpattern count = 0
Options: bsr_anycrlf utf8
First char = 'a'
Need char = 'b'
a\rb
0: a\x{0d}b
a\nb
0: a\x{0a}b
a\r\nb
0: a\x{0d}\x{0a}b
** Failers
No match
a\x{85}b
No match
a\x0bb
No match
/a\R?b/I8<bsr_unicode>
Capturing subpattern count = 0
Options: bsr_unicode utf8
First char = 'a'
Need char = 'b'
a\rb
0: a\x{0d}b
a\nb
0: a\x{0a}b
a\r\nb
0: a\x{0d}\x{0a}b
a\x{85}b
0: a\x{85}b
a\x0bb
0: a\x{0b}b
** Failers
No match
a\x{85}b\<bsr_anycrlf>
No match
a\x0bb\<bsr_anycrlf>
No match
/.*a.*=.b.*/8<ANY>
QQQ\x{2029}ABCaXYZ=!bPQR
0: ABCaXYZ=!bPQR
** Failers
No match
a\x{2029}b
No match
\x61\xe2\x80\xa9\x62
No match
/[[:a\x{100}b:]]/8
Failed: unknown POSIX class name at offset 3
/a[^]b/<JS>8
a\x{1234}b
0: a\x{1234}b
a\nb
0: a\x{0a}b
** Failers
No match
ab
No match
/a[^]+b/<JS>8
aXb
0: aXb
a\nX\nX\x{1234}b
0: a\x{0a}X\x{0a}X\x{1234}b
** Failers
No match
ab
No match
/(\x{de})\1/
\x{de}\x{de}
0: \xde\xde
1: \xde
\x{123}
** Character \x{123} is greater than 255 and UTF-8 mode is not enabled.
** Truncation will probably give the wrong result.
No match
/X/8f<any>
A\x{1ec5}ABCXYZ
0: X
/ End of testinput5 /