Some manual changes done to the library were lost with this update. They will be added in the next commit.
		
			
				
	
	
		
			4236 lines
		
	
	
		
			90 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			4236 lines
		
	
	
		
			90 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
# This set of tests checks the API, internals, and non-Perl stuff for UTF
 | 
						|
# support, including Unicode properties. However, tests that give different
 | 
						|
# results in 8-bit, 16-bit, and 32-bit modes are excluded (see tests 10 and
 | 
						|
# 12).
 | 
						|
 | 
						|
#newline_default lf any anycrlf
 | 
						|
 | 
						|
# PCRE2 and Perl disagree about the characteristics of certain Unicode
 | 
						|
# characters. For example, 061C is considered by Perl to be Arabic, though
 | 
						|
# is it not listed as such in the Unicode Scripts.txt file, and 2066-2069 are
 | 
						|
# graphic and printable according to Perl, though they are actually "isolate"
 | 
						|
# control characters. That is why the following tests are here rather than in
 | 
						|
# test 4.
 | 
						|
 | 
						|
/^[\p{Arabic}]/utf
 | 
						|
\= Expect no match
 | 
						|
    \x{061c}
 | 
						|
No match
 | 
						|
    
 | 
						|
/^[[:graph:]]+$/utf,ucp
 | 
						|
\= Expect no match
 | 
						|
    \x{61c}
 | 
						|
No match
 | 
						|
    \x{2066}
 | 
						|
No match
 | 
						|
    \x{2067}
 | 
						|
No match
 | 
						|
    \x{2068}
 | 
						|
No match
 | 
						|
    \x{2069}
 | 
						|
No match
 | 
						|
 | 
						|
/^[[:print:]]+$/utf,ucp
 | 
						|
\= Expect no match
 | 
						|
    \x{61c}
 | 
						|
No match
 | 
						|
    \x{2066}
 | 
						|
No match
 | 
						|
    \x{2067}
 | 
						|
No match
 | 
						|
    \x{2068}
 | 
						|
No match
 | 
						|
    \x{2069}
 | 
						|
No match
 | 
						|
 | 
						|
/^[[:^graph:]]+$/utf,ucp
 | 
						|
    \x{09}\x{0a}\x{1D}\x{20}\x{85}\x{a0}\x{61c}\x{1680}
 | 
						|
 0: \x{09}\x{0a}\x{1d} \x{85}\x{a0}\x{61c}\x{1680}
 | 
						|
    \x{2028}\x{2029}\x{202f}\x{2065}\x{2066}\x{2067}\x{2068}\x{2069}
 | 
						|
 0: \x{2028}\x{2029}\x{202f}\x{2065}\x{2066}\x{2067}\x{2068}\x{2069}
 | 
						|
 | 
						|
/^[[:^print:]]+$/utf,ucp
 | 
						|
    \x{09}\x{1D}\x{85}\x{61c}\x{2028}\x{2029}\x{2065}\x{2066}\x{2067}
 | 
						|
 0: \x{09}\x{1d}\x{85}\x{61c}\x{2028}\x{2029}\x{2065}\x{2066}\x{2067}
 | 
						|
    \x{2068}\x{2069}
 | 
						|
 0: \x{2068}\x{2069}
 | 
						|
     
 | 
						|
# Perl does not consider U+180e to be a space character. It is true that it
 | 
						|
# does not appear in the Unicode PropList.txt file as such, but in many other
 | 
						|
# sources it is listed as a space, and has been treated as such in PCRE for
 | 
						|
# a long time. 
 | 
						|
 | 
						|
/^>[[:blank:]]*/utf,ucp
 | 
						|
    >\x{20}\x{a0}\x{1680}\x{180e}\x{2000}\x{202f}\x{9}\x{b}\x{2028} 
 | 
						|
 0: > \x{a0}\x{1680}\x{180e}\x{2000}\x{202f}\x{09}
 | 
						|
 | 
						|
/^A\s+Z/utf,ucp
 | 
						|
    A\x{85}\x{180e}\x{2005}Z
 | 
						|
 0: A\x{85}\x{180e}\x{2005}Z
 | 
						|
 | 
						|
/^A[\s]+Z/utf,ucp
 | 
						|
    A\x{2005}Z
 | 
						|
 0: A\x{2005}Z
 | 
						|
    A\x{85}\x{2005}Z
 | 
						|
 0: A\x{85}\x{2005}Z
 | 
						|
    
 | 
						|
/^[[:graph:]]+$/utf,ucp
 | 
						|
\= Expect no match
 | 
						|
    \x{180e}
 | 
						|
No match
 | 
						|
 | 
						|
/^[[:print:]]+$/utf,ucp
 | 
						|
    \x{180e}
 | 
						|
 0: \x{180e}
 | 
						|
 | 
						|
/^[[:^graph:]]+$/utf,ucp
 | 
						|
    \x{09}\x{0a}\x{1D}\x{20}\x{85}\x{a0}\x{61c}\x{1680}\x{180e}
 | 
						|
 0: \x{09}\x{0a}\x{1d} \x{85}\x{a0}\x{61c}\x{1680}\x{180e}
 | 
						|
 | 
						|
/^[[:^print:]]+$/utf,ucp
 | 
						|
\= Expect no match
 | 
						|
    \x{180e}
 | 
						|
No match
 | 
						|
 | 
						|
# End of U+180E tests.
 | 
						|
 | 
						|
# ---------------------------------------------------------------------
 | 
						|
 | 
						|
/\x{110000}/IB,utf
 | 
						|
Failed: error 134 at offset 9: character code point value in \x{} or \o{} is too large
 | 
						|
 | 
						|
/\o{4200000}/IB,utf
 | 
						|
Failed: error 134 at offset 10: character code point value in \x{} or \o{} is too large
 | 
						|
 | 
						|
/\x{ffffffff}/utf
 | 
						|
Failed: error 134 at offset 11: character code point value in \x{} or \o{} is too large
 | 
						|
 | 
						|
/\o{37777777777}/utf
 | 
						|
Failed: error 134 at offset 14: character code point value in \x{} or \o{} is too large
 | 
						|
 | 
						|
/\x{100000000}/utf
 | 
						|
Failed: error 134 at offset 12: character code point value in \x{} or \o{} is too large
 | 
						|
 | 
						|
/\o{77777777777}/utf
 | 
						|
Failed: error 134 at offset 14: character code point value in \x{} or \o{} is too large
 | 
						|
 | 
						|
/\x{d800}/utf
 | 
						|
Failed: error 173 at offset 7: disallowed Unicode code point (>= 0xd800 && <= 0xdfff)
 | 
						|
 | 
						|
/\o{154000}/utf
 | 
						|
Failed: error 173 at offset 9: disallowed Unicode code point (>= 0xd800 && <= 0xdfff)
 | 
						|
 | 
						|
/\x{dfff}/utf
 | 
						|
Failed: error 173 at offset 7: disallowed Unicode code point (>= 0xd800 && <= 0xdfff)
 | 
						|
 | 
						|
/\o{157777}/utf
 | 
						|
Failed: error 173 at offset 9: disallowed Unicode code point (>= 0xd800 && <= 0xdfff)
 | 
						|
 | 
						|
/\x{d7ff}/utf
 | 
						|
 | 
						|
/\o{153777}/utf
 | 
						|
 | 
						|
/\x{e000}/utf
 | 
						|
 | 
						|
/\o{170000}/utf
 | 
						|
 | 
						|
/^\x{100}a\x{1234}/utf
 | 
						|
    \x{100}a\x{1234}bcd
 | 
						|
 0: \x{100}a\x{1234}
 | 
						|
 | 
						|
/\x{0041}\x{2262}\x{0391}\x{002e}/IB,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        A\x{2262}\x{391}.
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
Capturing subpattern count = 0
 | 
						|
Options: utf
 | 
						|
First code unit = 'A'
 | 
						|
Last code unit = '.'
 | 
						|
Subject length lower bound = 4
 | 
						|
    \x{0041}\x{2262}\x{0391}\x{002e}
 | 
						|
 0: A\x{2262}\x{391}.
 | 
						|
    
 | 
						|
/.{3,5}X/IB,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        Any{3}
 | 
						|
        Any{0,2}
 | 
						|
        X
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
Capturing subpattern count = 0
 | 
						|
Options: utf
 | 
						|
Last code unit = 'X'
 | 
						|
Subject length lower bound = 4
 | 
						|
    \x{212ab}\x{212ab}\x{212ab}\x{861}X
 | 
						|
 0: \x{212ab}\x{212ab}\x{212ab}\x{861}X
 | 
						|
 | 
						|
/.{3,5}?/IB,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        Any{3}
 | 
						|
        Any{0,2}?
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
Capturing subpattern count = 0
 | 
						|
Options: utf
 | 
						|
Subject length lower bound = 3
 | 
						|
    \x{212ab}\x{212ab}\x{212ab}\x{861}
 | 
						|
 0: \x{212ab}\x{212ab}\x{212ab}
 | 
						|
 | 
						|
/^[ab]/IB,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        ^
 | 
						|
        [ab]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
Capturing subpattern count = 0
 | 
						|
Compile options: utf
 | 
						|
Overall options: anchored utf
 | 
						|
Subject length lower bound = 1
 | 
						|
    bar
 | 
						|
 0: b
 | 
						|
\= Expect no match
 | 
						|
    c
 | 
						|
No match
 | 
						|
    \x{ff}
 | 
						|
No match
 | 
						|
    \x{100}  
 | 
						|
No match
 | 
						|
 | 
						|
/^[^ab]/IB,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        ^
 | 
						|
        [\x00-`c-\xff] (neg)
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
Capturing subpattern count = 0
 | 
						|
Compile options: utf
 | 
						|
Overall options: anchored utf
 | 
						|
Subject length lower bound = 1
 | 
						|
    c
 | 
						|
 0: c
 | 
						|
    \x{ff}
 | 
						|
 0: \x{ff}
 | 
						|
    \x{100}  
 | 
						|
 0: \x{100}
 | 
						|
\= Expect no match 
 | 
						|
    aaa
 | 
						|
No match
 | 
						|
  
 | 
						|
/\x{100}*(\d+|"(?1)")/utf
 | 
						|
    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"
 | 
						|
\= Expect no match 
 | 
						|
    \x{100}\x{100}abcd
 | 
						|
No match
 | 
						|
 | 
						|
/\x{100}*/IB,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        \x{100}*+
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
Capturing subpattern count = 0
 | 
						|
May match empty string
 | 
						|
Options: utf
 | 
						|
Subject length lower bound = 0
 | 
						|
 | 
						|
/a\x{100}*/IB,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        a
 | 
						|
        \x{100}*+
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
Capturing subpattern count = 0
 | 
						|
Options: utf
 | 
						|
First code unit = 'a'
 | 
						|
Subject length lower bound = 1
 | 
						|
 | 
						|
/ab\x{100}*/IB,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        ab
 | 
						|
        \x{100}*+
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
Capturing subpattern count = 0
 | 
						|
Options: utf
 | 
						|
First code unit = 'a'
 | 
						|
Last code unit = 'b'
 | 
						|
Subject length lower bound = 2
 | 
						|
 | 
						|
/[\x{200}-\x{100}]/utf
 | 
						|
Failed: error 108 at offset 15: range out of order in character class
 | 
						|
 | 
						|
/[Ā-Ą]/utf
 | 
						|
    \x{100}
 | 
						|
 0: \x{100}
 | 
						|
    \x{104}
 | 
						|
 0: \x{104}
 | 
						|
\= Expect no match
 | 
						|
    \x{105}
 | 
						|
No match
 | 
						|
    \x{ff}    
 | 
						|
No match
 | 
						|
 | 
						|
/[\xFF]/IB
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        \x{ff}
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
Capturing subpattern count = 0
 | 
						|
First code unit = \xff
 | 
						|
Subject length lower bound = 1
 | 
						|
    >\xff<
 | 
						|
 0: \xff
 | 
						|
 | 
						|
/[^\xFF]/IB
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [^\x{ff}]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
Capturing subpattern count = 0
 | 
						|
Subject length lower bound = 1
 | 
						|
 | 
						|
/[Ä-Ü]/utf
 | 
						|
    Ö # Matches without Study
 | 
						|
 0: \x{d6}
 | 
						|
    \x{d6}
 | 
						|
 0: \x{d6}
 | 
						|
    
 | 
						|
/[Ä-Ü]/utf
 | 
						|
    Ö <-- Same with Study
 | 
						|
 0: \x{d6}
 | 
						|
    \x{d6}
 | 
						|
 0: \x{d6}
 | 
						|
    
 | 
						|
/[\x{c4}-\x{dc}]/utf
 | 
						|
    Ö # Matches without Study
 | 
						|
 0: \x{d6}
 | 
						|
    \x{d6} 
 | 
						|
 0: \x{d6}
 | 
						|
 | 
						|
/[\x{c4}-\x{dc}]/utf
 | 
						|
    Ö <-- Same with Study
 | 
						|
 0: \x{d6}
 | 
						|
    \x{d6} 
 | 
						|
 0: \x{d6}
 | 
						|
 | 
						|
/[^\x{100}]abc(xyz(?1))/IB,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [^\x{100}]
 | 
						|
        abc
 | 
						|
        CBra 1
 | 
						|
        xyz
 | 
						|
        Recurse
 | 
						|
        Ket
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
Capturing subpattern count = 1
 | 
						|
Options: utf
 | 
						|
Last code unit = 'z'
 | 
						|
Subject length lower bound = 7
 | 
						|
 | 
						|
/(\x{100}(b(?2)c))?/IB,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        Brazero
 | 
						|
        CBra 1
 | 
						|
        \x{100}
 | 
						|
        CBra 2
 | 
						|
        b
 | 
						|
        Recurse
 | 
						|
        c
 | 
						|
        Ket
 | 
						|
        Ket
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
Capturing subpattern count = 2
 | 
						|
May match empty string
 | 
						|
Options: utf
 | 
						|
Subject length lower bound = 0
 | 
						|
 | 
						|
/(\x{100}(b(?2)c)){0,2}/IB,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        Brazero
 | 
						|
        Bra
 | 
						|
        CBra 1
 | 
						|
        \x{100}
 | 
						|
        CBra 2
 | 
						|
        b
 | 
						|
        Recurse
 | 
						|
        c
 | 
						|
        Ket
 | 
						|
        Ket
 | 
						|
        Brazero
 | 
						|
        CBra 1
 | 
						|
        \x{100}
 | 
						|
        CBra 2
 | 
						|
        b
 | 
						|
        Recurse
 | 
						|
        c
 | 
						|
        Ket
 | 
						|
        Ket
 | 
						|
        Ket
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
Capturing subpattern count = 2
 | 
						|
May match empty string
 | 
						|
Options: utf
 | 
						|
Subject length lower bound = 0
 | 
						|
 | 
						|
/(\x{100}(b(?1)c))?/IB,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        Brazero
 | 
						|
        CBra 1
 | 
						|
        \x{100}
 | 
						|
        CBra 2
 | 
						|
        b
 | 
						|
        Recurse
 | 
						|
        c
 | 
						|
        Ket
 | 
						|
        Ket
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
Capturing subpattern count = 2
 | 
						|
May match empty string
 | 
						|
Options: utf
 | 
						|
Subject length lower bound = 0
 | 
						|
 | 
						|
/(\x{100}(b(?1)c)){0,2}/IB,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        Brazero
 | 
						|
        Bra
 | 
						|
        CBra 1
 | 
						|
        \x{100}
 | 
						|
        CBra 2
 | 
						|
        b
 | 
						|
        Recurse
 | 
						|
        c
 | 
						|
        Ket
 | 
						|
        Ket
 | 
						|
        Brazero
 | 
						|
        CBra 1
 | 
						|
        \x{100}
 | 
						|
        CBra 2
 | 
						|
        b
 | 
						|
        Recurse
 | 
						|
        c
 | 
						|
        Ket
 | 
						|
        Ket
 | 
						|
        Ket
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
Capturing subpattern count = 2
 | 
						|
May match empty string
 | 
						|
Options: utf
 | 
						|
Subject length lower bound = 0
 | 
						|
 | 
						|
/\W/utf
 | 
						|
    A.B
 | 
						|
 0: .
 | 
						|
    A\x{100}B 
 | 
						|
 0: \x{100}
 | 
						|
  
 | 
						|
/\w/utf
 | 
						|
    \x{100}X   
 | 
						|
 0: X
 | 
						|
 | 
						|
/^\ሴ/IB,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        ^
 | 
						|
        \x{1234}
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
Capturing subpattern count = 0
 | 
						|
Compile options: utf
 | 
						|
Overall options: anchored utf
 | 
						|
Subject length lower bound = 1
 | 
						|
 | 
						|
/()()()()()()()()()()
 | 
						|
 ()()()()()()()()()()
 | 
						|
 ()()()()()()()()()()
 | 
						|
 ()()()()()()()()()()
 | 
						|
 A (x) (?41) B/x,utf
 | 
						|
    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}]/B,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        ^
 | 
						|
        [\x{100}-\x{150}]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/^[\QĀ\E-\QŐ\E]/B,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        ^
 | 
						|
        [\x{100}-\x{150}]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/^abc./gmx,newline=any,utf
 | 
						|
    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.$/gmx,newline=any,utf
 | 
						|
    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/bsr=unicode,utf
 | 
						|
    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
 | 
						|
\= Expect no match
 | 
						|
    a\n\rb    
 | 
						|
No match
 | 
						|
 | 
						|
/^a\R*b/bsr=unicode,utf
 | 
						|
    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/bsr=unicode,utf
 | 
						|
    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
 | 
						|
\= Expect no match
 | 
						|
    ab  
 | 
						|
No match
 | 
						|
 | 
						|
/^a\R{1,3}b/bsr=unicode,utf
 | 
						|
    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
 | 
						|
\= Expect no match
 | 
						|
    a\n\n\n\rb
 | 
						|
No match
 | 
						|
    a\r
 | 
						|
No match
 | 
						|
 | 
						|
/\H\h\V\v/utf
 | 
						|
    X X\x0a
 | 
						|
 0: X X\x{0a}
 | 
						|
    X\x09X\x0b
 | 
						|
 0: X\x{09}X\x{0b}
 | 
						|
\= Expect no match
 | 
						|
    \x{a0} X\x0a   
 | 
						|
No match
 | 
						|
    
 | 
						|
/\H*\h+\V?\v{3,4}/utf
 | 
						|
    \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}
 | 
						|
\= Expect no match 
 | 
						|
    \x09\x20\x{a0}\x0a\x0b
 | 
						|
No match
 | 
						|
     
 | 
						|
/\H\h\V\v/utf
 | 
						|
    \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}
 | 
						|
\= Expect no match
 | 
						|
    \x{2009} X\x0a   
 | 
						|
No match
 | 
						|
    
 | 
						|
/\H*\h+\V?\v{3,4}/utf
 | 
						|
    \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}
 | 
						|
\= Expect no match 
 | 
						|
    \x09\x{200a}\x{a0}\x{2028}\x0b
 | 
						|
No match
 | 
						|
     
 | 
						|
/[\h]/B,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        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,}/B,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        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]/B,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [\x0a-\x0d\x85\x{2028}-\x{2029}]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/[\H]/B,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        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{10ffff}]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/[\V]/B,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [\x00-\x09\x0e-\x84\x86-\xff\x{100}-\x{2027}\x{202a}-\x{10ffff}]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/.*$/newline=any,utf
 | 
						|
    \x{1ec5} 
 | 
						|
 0: \x{1ec5}
 | 
						|
    
 | 
						|
/a\Rb/I,bsr=anycrlf,utf
 | 
						|
Capturing subpattern count = 0
 | 
						|
Options: utf
 | 
						|
\R matches CR, LF, or CRLF
 | 
						|
First code unit = 'a'
 | 
						|
Last code unit = 'b'
 | 
						|
Subject length lower bound = 3
 | 
						|
    a\rb
 | 
						|
 0: a\x{0d}b
 | 
						|
    a\nb
 | 
						|
 0: a\x{0a}b
 | 
						|
    a\r\nb
 | 
						|
 0: a\x{0d}\x{0a}b
 | 
						|
\= Expect no match
 | 
						|
    a\x{85}b
 | 
						|
No match
 | 
						|
    a\x0bb     
 | 
						|
No match
 | 
						|
 | 
						|
/a\Rb/I,bsr=unicode,utf
 | 
						|
Capturing subpattern count = 0
 | 
						|
Options: utf
 | 
						|
\R matches any Unicode newline
 | 
						|
First code unit = 'a'
 | 
						|
Last code unit = 'b'
 | 
						|
Subject length lower bound = 3
 | 
						|
    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
 | 
						|
    
 | 
						|
/a\R?b/I,bsr=anycrlf,utf
 | 
						|
Capturing subpattern count = 0
 | 
						|
Options: utf
 | 
						|
\R matches CR, LF, or CRLF
 | 
						|
First code unit = 'a'
 | 
						|
Last code unit = 'b'
 | 
						|
Subject length lower bound = 2
 | 
						|
    a\rb
 | 
						|
 0: a\x{0d}b
 | 
						|
    a\nb
 | 
						|
 0: a\x{0a}b
 | 
						|
    a\r\nb
 | 
						|
 0: a\x{0d}\x{0a}b
 | 
						|
\= Expect no match
 | 
						|
    a\x{85}b
 | 
						|
No match
 | 
						|
    a\x0bb     
 | 
						|
No match
 | 
						|
 | 
						|
/a\R?b/I,bsr=unicode,utf
 | 
						|
Capturing subpattern count = 0
 | 
						|
Options: utf
 | 
						|
\R matches any Unicode newline
 | 
						|
First code unit = 'a'
 | 
						|
Last code unit = 'b'
 | 
						|
Subject length lower bound = 2
 | 
						|
    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
 | 
						|
 
 | 
						|
/.*a.*=.b.*/utf,newline=any
 | 
						|
    QQQ\x{2029}ABCaXYZ=!bPQR
 | 
						|
 0: ABCaXYZ=!bPQR
 | 
						|
\= Expect no match
 | 
						|
    a\x{2029}b
 | 
						|
No match
 | 
						|
    \x61\xe2\x80\xa9\x62 
 | 
						|
No match
 | 
						|
 | 
						|
/[[:a\x{100}b:]]/utf
 | 
						|
Failed: error 130 at offset 3: unknown POSIX class name
 | 
						|
 | 
						|
/a[^]b/utf,alt_bsux,allow_empty_class,match_unset_backref
 | 
						|
    a\x{1234}b
 | 
						|
 0: a\x{1234}b
 | 
						|
    a\nb 
 | 
						|
 0: a\x{0a}b
 | 
						|
\= Expect no match
 | 
						|
    ab  
 | 
						|
No match
 | 
						|
    
 | 
						|
/a[^]+b/utf,alt_bsux,allow_empty_class,match_unset_backref
 | 
						|
    aXb
 | 
						|
 0: aXb
 | 
						|
    a\nX\nX\x{1234}b 
 | 
						|
 0: a\x{0a}X\x{0a}X\x{1234}b
 | 
						|
\= Expect no match
 | 
						|
    ab  
 | 
						|
No match
 | 
						|
 | 
						|
/(\x{de})\1/
 | 
						|
    \x{de}\x{de}
 | 
						|
 0: \xde\xde
 | 
						|
 1: \xde
 | 
						|
 | 
						|
/X/newline=any,utf,firstline
 | 
						|
    A\x{1ec5}ABCXYZ
 | 
						|
 0: X
 | 
						|
 | 
						|
/Xa{2,4}b/utf
 | 
						|
    X\=ps
 | 
						|
Partial match: X
 | 
						|
    Xa\=ps
 | 
						|
Partial match: Xa
 | 
						|
    Xaa\=ps
 | 
						|
Partial match: Xaa
 | 
						|
    Xaaa\=ps
 | 
						|
Partial match: Xaaa
 | 
						|
    Xaaaa\=ps
 | 
						|
Partial match: Xaaaa
 | 
						|
    
 | 
						|
/Xa{2,4}?b/utf
 | 
						|
    X\=ps
 | 
						|
Partial match: X
 | 
						|
    Xa\=ps
 | 
						|
Partial match: Xa
 | 
						|
    Xaa\=ps
 | 
						|
Partial match: Xaa
 | 
						|
    Xaaa\=ps
 | 
						|
Partial match: Xaaa
 | 
						|
    Xaaaa\=ps
 | 
						|
Partial match: Xaaaa
 | 
						|
    
 | 
						|
/Xa{2,4}+b/utf
 | 
						|
    X\=ps
 | 
						|
Partial match: X
 | 
						|
    Xa\=ps
 | 
						|
Partial match: Xa
 | 
						|
    Xaa\=ps
 | 
						|
Partial match: Xaa
 | 
						|
    Xaaa\=ps
 | 
						|
Partial match: Xaaa
 | 
						|
    Xaaaa\=ps
 | 
						|
Partial match: Xaaaa
 | 
						|
    
 | 
						|
/X\x{123}{2,4}b/utf
 | 
						|
    X\=ps
 | 
						|
Partial match: X
 | 
						|
    X\x{123}\=ps
 | 
						|
Partial match: X\x{123}
 | 
						|
    X\x{123}\x{123}\=ps
 | 
						|
Partial match: X\x{123}\x{123}
 | 
						|
    X\x{123}\x{123}\x{123}\=ps
 | 
						|
Partial match: X\x{123}\x{123}\x{123}
 | 
						|
    X\x{123}\x{123}\x{123}\x{123}\=ps
 | 
						|
Partial match: X\x{123}\x{123}\x{123}\x{123}
 | 
						|
    
 | 
						|
/X\x{123}{2,4}?b/utf
 | 
						|
    X\=ps
 | 
						|
Partial match: X
 | 
						|
    X\x{123}\=ps
 | 
						|
Partial match: X\x{123}
 | 
						|
    X\x{123}\x{123}\=ps
 | 
						|
Partial match: X\x{123}\x{123}
 | 
						|
    X\x{123}\x{123}\x{123}\=ps
 | 
						|
Partial match: X\x{123}\x{123}\x{123}
 | 
						|
    X\x{123}\x{123}\x{123}\x{123}\=ps
 | 
						|
Partial match: X\x{123}\x{123}\x{123}\x{123}
 | 
						|
    
 | 
						|
/X\x{123}{2,4}+b/utf
 | 
						|
    X\=ps
 | 
						|
Partial match: X
 | 
						|
    X\x{123}\=ps
 | 
						|
Partial match: X\x{123}
 | 
						|
    X\x{123}\x{123}\=ps
 | 
						|
Partial match: X\x{123}\x{123}
 | 
						|
    X\x{123}\x{123}\x{123}\=ps
 | 
						|
Partial match: X\x{123}\x{123}\x{123}
 | 
						|
    X\x{123}\x{123}\x{123}\x{123}\=ps
 | 
						|
Partial match: X\x{123}\x{123}\x{123}\x{123}
 | 
						|
    
 | 
						|
/X\x{123}{2,4}b/utf
 | 
						|
\= Expect no match
 | 
						|
    Xx\=ps
 | 
						|
No match
 | 
						|
    X\x{123}x\=ps
 | 
						|
No match
 | 
						|
    X\x{123}\x{123}x\=ps
 | 
						|
No match
 | 
						|
    X\x{123}\x{123}\x{123}x\=ps
 | 
						|
No match
 | 
						|
    X\x{123}\x{123}\x{123}\x{123}x\=ps
 | 
						|
No match
 | 
						|
    
 | 
						|
/X\x{123}{2,4}?b/utf
 | 
						|
\= Expect no match
 | 
						|
    Xx\=ps
 | 
						|
No match
 | 
						|
    X\x{123}x\=ps
 | 
						|
No match
 | 
						|
    X\x{123}\x{123}x\=ps
 | 
						|
No match
 | 
						|
    X\x{123}\x{123}\x{123}x\=ps
 | 
						|
No match
 | 
						|
    X\x{123}\x{123}\x{123}\x{123}x\=ps
 | 
						|
No match
 | 
						|
    
 | 
						|
/X\x{123}{2,4}+b/utf
 | 
						|
\= Expect no match
 | 
						|
    Xx\=ps
 | 
						|
No match
 | 
						|
    X\x{123}x\=ps
 | 
						|
No match
 | 
						|
    X\x{123}\x{123}x\=ps
 | 
						|
No match
 | 
						|
    X\x{123}\x{123}\x{123}x\=ps
 | 
						|
No match
 | 
						|
    X\x{123}\x{123}\x{123}\x{123}x\=ps
 | 
						|
No match
 | 
						|
    
 | 
						|
/X\d{2,4}b/utf
 | 
						|
    X\=ps
 | 
						|
Partial match: X
 | 
						|
    X3\=ps
 | 
						|
Partial match: X3
 | 
						|
    X33\=ps
 | 
						|
Partial match: X33
 | 
						|
    X333\=ps
 | 
						|
Partial match: X333
 | 
						|
    X3333\=ps
 | 
						|
Partial match: X3333
 | 
						|
    
 | 
						|
/X\d{2,4}?b/utf
 | 
						|
    X\=ps
 | 
						|
Partial match: X
 | 
						|
    X3\=ps
 | 
						|
Partial match: X3
 | 
						|
    X33\=ps
 | 
						|
Partial match: X33
 | 
						|
    X333\=ps
 | 
						|
Partial match: X333
 | 
						|
    X3333\=ps
 | 
						|
Partial match: X3333
 | 
						|
    
 | 
						|
/X\d{2,4}+b/utf
 | 
						|
    X\=ps
 | 
						|
Partial match: X
 | 
						|
    X3\=ps
 | 
						|
Partial match: X3
 | 
						|
    X33\=ps
 | 
						|
Partial match: X33
 | 
						|
    X333\=ps
 | 
						|
Partial match: X333
 | 
						|
    X3333\=ps
 | 
						|
Partial match: X3333
 | 
						|
 | 
						|
/X\D{2,4}b/utf
 | 
						|
    X\=ps
 | 
						|
Partial match: X
 | 
						|
    Xa\=ps
 | 
						|
Partial match: Xa
 | 
						|
    Xaa\=ps
 | 
						|
Partial match: Xaa
 | 
						|
    Xaaa\=ps
 | 
						|
Partial match: Xaaa
 | 
						|
    Xaaaa\=ps
 | 
						|
Partial match: Xaaaa
 | 
						|
    
 | 
						|
/X\D{2,4}?b/utf
 | 
						|
    X\=ps
 | 
						|
Partial match: X
 | 
						|
    Xa\=ps
 | 
						|
Partial match: Xa
 | 
						|
    Xaa\=ps
 | 
						|
Partial match: Xaa
 | 
						|
    Xaaa\=ps
 | 
						|
Partial match: Xaaa
 | 
						|
    Xaaaa\=ps
 | 
						|
Partial match: Xaaaa
 | 
						|
    
 | 
						|
/X\D{2,4}+b/utf
 | 
						|
    X\=ps
 | 
						|
Partial match: X
 | 
						|
    Xa\=ps
 | 
						|
Partial match: Xa
 | 
						|
    Xaa\=ps
 | 
						|
Partial match: Xaa
 | 
						|
    Xaaa\=ps
 | 
						|
Partial match: Xaaa
 | 
						|
    Xaaaa\=ps
 | 
						|
Partial match: Xaaaa
 | 
						|
 | 
						|
/X\D{2,4}b/utf
 | 
						|
    X\=ps
 | 
						|
Partial match: X
 | 
						|
    X\x{123}\=ps
 | 
						|
Partial match: X\x{123}
 | 
						|
    X\x{123}\x{123}\=ps
 | 
						|
Partial match: X\x{123}\x{123}
 | 
						|
    X\x{123}\x{123}\x{123}\=ps
 | 
						|
Partial match: X\x{123}\x{123}\x{123}
 | 
						|
    X\x{123}\x{123}\x{123}\x{123}\=ps
 | 
						|
Partial match: X\x{123}\x{123}\x{123}\x{123}
 | 
						|
    
 | 
						|
/X\D{2,4}?b/utf
 | 
						|
    X\=ps
 | 
						|
Partial match: X
 | 
						|
    X\x{123}\=ps
 | 
						|
Partial match: X\x{123}
 | 
						|
    X\x{123}\x{123}\=ps
 | 
						|
Partial match: X\x{123}\x{123}
 | 
						|
    X\x{123}\x{123}\x{123}\=ps
 | 
						|
Partial match: X\x{123}\x{123}\x{123}
 | 
						|
    X\x{123}\x{123}\x{123}\x{123}\=ps
 | 
						|
Partial match: X\x{123}\x{123}\x{123}\x{123}
 | 
						|
    
 | 
						|
/X\D{2,4}+b/utf
 | 
						|
    X\=ps
 | 
						|
Partial match: X
 | 
						|
    X\x{123}\=ps
 | 
						|
Partial match: X\x{123}
 | 
						|
    X\x{123}\x{123}\=ps
 | 
						|
Partial match: X\x{123}\x{123}
 | 
						|
    X\x{123}\x{123}\x{123}\=ps
 | 
						|
Partial match: X\x{123}\x{123}\x{123}
 | 
						|
    X\x{123}\x{123}\x{123}\x{123}\=ps
 | 
						|
Partial match: X\x{123}\x{123}\x{123}\x{123}
 | 
						|
 | 
						|
/X[abc]{2,4}b/utf
 | 
						|
    X\=ps
 | 
						|
Partial match: X
 | 
						|
    Xa\=ps
 | 
						|
Partial match: Xa
 | 
						|
    Xaa\=ps
 | 
						|
Partial match: Xaa
 | 
						|
    Xaaa\=ps
 | 
						|
Partial match: Xaaa
 | 
						|
    Xaaaa\=ps
 | 
						|
Partial match: Xaaaa
 | 
						|
    
 | 
						|
/X[abc]{2,4}?b/utf
 | 
						|
    X\=ps
 | 
						|
Partial match: X
 | 
						|
    Xa\=ps
 | 
						|
Partial match: Xa
 | 
						|
    Xaa\=ps
 | 
						|
Partial match: Xaa
 | 
						|
    Xaaa\=ps
 | 
						|
Partial match: Xaaa
 | 
						|
    Xaaaa\=ps
 | 
						|
Partial match: Xaaaa
 | 
						|
    
 | 
						|
/X[abc]{2,4}+b/utf
 | 
						|
    X\=ps
 | 
						|
Partial match: X
 | 
						|
    Xa\=ps
 | 
						|
Partial match: Xa
 | 
						|
    Xaa\=ps
 | 
						|
Partial match: Xaa
 | 
						|
    Xaaa\=ps
 | 
						|
Partial match: Xaaa
 | 
						|
    Xaaaa\=ps
 | 
						|
Partial match: Xaaaa
 | 
						|
 | 
						|
/X[abc\x{123}]{2,4}b/utf
 | 
						|
    X\=ps
 | 
						|
Partial match: X
 | 
						|
    X\x{123}\=ps
 | 
						|
Partial match: X\x{123}
 | 
						|
    X\x{123}\x{123}\=ps
 | 
						|
Partial match: X\x{123}\x{123}
 | 
						|
    X\x{123}\x{123}\x{123}\=ps
 | 
						|
Partial match: X\x{123}\x{123}\x{123}
 | 
						|
    X\x{123}\x{123}\x{123}\x{123}\=ps
 | 
						|
Partial match: X\x{123}\x{123}\x{123}\x{123}
 | 
						|
    
 | 
						|
/X[abc\x{123}]{2,4}?b/utf
 | 
						|
    X\=ps
 | 
						|
Partial match: X
 | 
						|
    X\x{123}\=ps
 | 
						|
Partial match: X\x{123}
 | 
						|
    X\x{123}\x{123}\=ps
 | 
						|
Partial match: X\x{123}\x{123}
 | 
						|
    X\x{123}\x{123}\x{123}\=ps
 | 
						|
Partial match: X\x{123}\x{123}\x{123}
 | 
						|
    X\x{123}\x{123}\x{123}\x{123}\=ps
 | 
						|
Partial match: X\x{123}\x{123}\x{123}\x{123}
 | 
						|
    
 | 
						|
/X[abc\x{123}]{2,4}+b/utf
 | 
						|
    X\=ps
 | 
						|
Partial match: X
 | 
						|
    X\x{123}\=ps
 | 
						|
Partial match: X\x{123}
 | 
						|
    X\x{123}\x{123}\=ps
 | 
						|
Partial match: X\x{123}\x{123}
 | 
						|
    X\x{123}\x{123}\x{123}\=ps
 | 
						|
Partial match: X\x{123}\x{123}\x{123}
 | 
						|
    X\x{123}\x{123}\x{123}\x{123}\=ps
 | 
						|
Partial match: X\x{123}\x{123}\x{123}\x{123}
 | 
						|
 | 
						|
/X[^a]{2,4}b/utf
 | 
						|
    X\=ps
 | 
						|
Partial match: X
 | 
						|
    Xz\=ps
 | 
						|
Partial match: Xz
 | 
						|
    Xzz\=ps
 | 
						|
Partial match: Xzz
 | 
						|
    Xzzz\=ps
 | 
						|
Partial match: Xzzz
 | 
						|
    Xzzzz\=ps
 | 
						|
Partial match: Xzzzz
 | 
						|
    
 | 
						|
/X[^a]{2,4}?b/utf
 | 
						|
    X\=ps
 | 
						|
Partial match: X
 | 
						|
    Xz\=ps
 | 
						|
Partial match: Xz
 | 
						|
    Xzz\=ps
 | 
						|
Partial match: Xzz
 | 
						|
    Xzzz\=ps
 | 
						|
Partial match: Xzzz
 | 
						|
    Xzzzz\=ps
 | 
						|
Partial match: Xzzzz
 | 
						|
    
 | 
						|
/X[^a]{2,4}+b/utf
 | 
						|
    X\=ps
 | 
						|
Partial match: X
 | 
						|
    Xz\=ps
 | 
						|
Partial match: Xz
 | 
						|
    Xzz\=ps
 | 
						|
Partial match: Xzz
 | 
						|
    Xzzz\=ps
 | 
						|
Partial match: Xzzz
 | 
						|
    Xzzzz\=ps
 | 
						|
Partial match: Xzzzz
 | 
						|
 | 
						|
/X[^a]{2,4}b/utf
 | 
						|
    X\=ps
 | 
						|
Partial match: X
 | 
						|
    X\x{123}\=ps
 | 
						|
Partial match: X\x{123}
 | 
						|
    X\x{123}\x{123}\=ps
 | 
						|
Partial match: X\x{123}\x{123}
 | 
						|
    X\x{123}\x{123}\x{123}\=ps
 | 
						|
Partial match: X\x{123}\x{123}\x{123}
 | 
						|
    X\x{123}\x{123}\x{123}\x{123}\=ps
 | 
						|
Partial match: X\x{123}\x{123}\x{123}\x{123}
 | 
						|
    
 | 
						|
/X[^a]{2,4}?b/utf
 | 
						|
    X\=ps
 | 
						|
Partial match: X
 | 
						|
    X\x{123}\=ps
 | 
						|
Partial match: X\x{123}
 | 
						|
    X\x{123}\x{123}\=ps
 | 
						|
Partial match: X\x{123}\x{123}
 | 
						|
    X\x{123}\x{123}\x{123}\=ps
 | 
						|
Partial match: X\x{123}\x{123}\x{123}
 | 
						|
    X\x{123}\x{123}\x{123}\x{123}\=ps
 | 
						|
Partial match: X\x{123}\x{123}\x{123}\x{123}
 | 
						|
    
 | 
						|
/X[^a]{2,4}+b/utf
 | 
						|
    X\=ps
 | 
						|
Partial match: X
 | 
						|
    X\x{123}\=ps
 | 
						|
Partial match: X\x{123}
 | 
						|
    X\x{123}\x{123}\=ps
 | 
						|
Partial match: X\x{123}\x{123}
 | 
						|
    X\x{123}\x{123}\x{123}\=ps
 | 
						|
Partial match: X\x{123}\x{123}\x{123}
 | 
						|
    X\x{123}\x{123}\x{123}\x{123}\=ps
 | 
						|
Partial match: X\x{123}\x{123}\x{123}\x{123}
 | 
						|
 | 
						|
/(Y)X\1{2,4}b/utf
 | 
						|
    YX\=ps
 | 
						|
Partial match: YX
 | 
						|
    YXY\=ps
 | 
						|
Partial match: YXY
 | 
						|
    YXYY\=ps
 | 
						|
Partial match: YXYY
 | 
						|
    YXYYY\=ps
 | 
						|
Partial match: YXYYY
 | 
						|
    YXYYYY\=ps
 | 
						|
Partial match: YXYYYY
 | 
						|
    
 | 
						|
/(Y)X\1{2,4}?b/utf
 | 
						|
    YX\=ps
 | 
						|
Partial match: YX
 | 
						|
    YXY\=ps
 | 
						|
Partial match: YXY
 | 
						|
    YXYY\=ps
 | 
						|
Partial match: YXYY
 | 
						|
    YXYYY\=ps
 | 
						|
Partial match: YXYYY
 | 
						|
    YXYYYY\=ps
 | 
						|
Partial match: YXYYYY
 | 
						|
    
 | 
						|
/(Y)X\1{2,4}+b/utf
 | 
						|
    YX\=ps
 | 
						|
Partial match: YX
 | 
						|
    YXY\=ps
 | 
						|
Partial match: YXY
 | 
						|
    YXYY\=ps
 | 
						|
Partial match: YXYY
 | 
						|
    YXYYY\=ps
 | 
						|
Partial match: YXYYY
 | 
						|
    YXYYYY\=ps
 | 
						|
Partial match: YXYYYY
 | 
						|
 | 
						|
/(\x{123})X\1{2,4}b/utf
 | 
						|
    \x{123}X\=ps
 | 
						|
Partial match: \x{123}X
 | 
						|
    \x{123}X\x{123}\=ps
 | 
						|
Partial match: \x{123}X\x{123}
 | 
						|
    \x{123}X\x{123}\x{123}\=ps
 | 
						|
Partial match: \x{123}X\x{123}\x{123}
 | 
						|
    \x{123}X\x{123}\x{123}\x{123}\=ps
 | 
						|
Partial match: \x{123}X\x{123}\x{123}\x{123}
 | 
						|
    \x{123}X\x{123}\x{123}\x{123}\x{123}\=ps
 | 
						|
Partial match: \x{123}X\x{123}\x{123}\x{123}\x{123}
 | 
						|
    
 | 
						|
/(\x{123})X\1{2,4}?b/utf
 | 
						|
    \x{123}X\=ps
 | 
						|
Partial match: \x{123}X
 | 
						|
    \x{123}X\x{123}\=ps
 | 
						|
Partial match: \x{123}X\x{123}
 | 
						|
    \x{123}X\x{123}\x{123}\=ps
 | 
						|
Partial match: \x{123}X\x{123}\x{123}
 | 
						|
    \x{123}X\x{123}\x{123}\x{123}\=ps
 | 
						|
Partial match: \x{123}X\x{123}\x{123}\x{123}
 | 
						|
    \x{123}X\x{123}\x{123}\x{123}\x{123}\=ps
 | 
						|
Partial match: \x{123}X\x{123}\x{123}\x{123}\x{123}
 | 
						|
    
 | 
						|
/(\x{123})X\1{2,4}+b/utf
 | 
						|
    \x{123}X\=ps
 | 
						|
Partial match: \x{123}X
 | 
						|
    \x{123}X\x{123}\=ps
 | 
						|
Partial match: \x{123}X\x{123}
 | 
						|
    \x{123}X\x{123}\x{123}\=ps
 | 
						|
Partial match: \x{123}X\x{123}\x{123}
 | 
						|
    \x{123}X\x{123}\x{123}\x{123}\=ps
 | 
						|
Partial match: \x{123}X\x{123}\x{123}\x{123}
 | 
						|
    \x{123}X\x{123}\x{123}\x{123}\x{123}\=ps
 | 
						|
Partial match: \x{123}X\x{123}\x{123}\x{123}\x{123}
 | 
						|
 | 
						|
/\bthe cat\b/utf
 | 
						|
    the cat\=ps
 | 
						|
 0: the cat
 | 
						|
    the cat\=ph
 | 
						|
Partial match: the cat
 | 
						|
 | 
						|
/abcd*/utf
 | 
						|
    xxxxabcd\=ps
 | 
						|
 0: abcd
 | 
						|
    xxxxabcd\=ph
 | 
						|
Partial match: abcd
 | 
						|
 | 
						|
/abcd*/i,utf
 | 
						|
    xxxxabcd\=ps
 | 
						|
 0: abcd
 | 
						|
    xxxxabcd\=ph
 | 
						|
Partial match: abcd
 | 
						|
    XXXXABCD\=ps
 | 
						|
 0: ABCD
 | 
						|
    XXXXABCD\=ph
 | 
						|
Partial match: ABCD
 | 
						|
 | 
						|
/abc\d*/utf
 | 
						|
    xxxxabc1\=ps
 | 
						|
 0: abc1
 | 
						|
    xxxxabc1\=ph
 | 
						|
Partial match: abc1
 | 
						|
 | 
						|
/(a)bc\1*/utf
 | 
						|
    xxxxabca\=ps
 | 
						|
 0: abca
 | 
						|
 1: a
 | 
						|
    xxxxabca\=ph
 | 
						|
Partial match: abca
 | 
						|
 | 
						|
/abc[de]*/utf
 | 
						|
    xxxxabcde\=ps
 | 
						|
 0: abcde
 | 
						|
    xxxxabcde\=ph
 | 
						|
Partial match: abcde
 | 
						|
 | 
						|
/X\W{3}X/utf
 | 
						|
    X\=ps
 | 
						|
Partial match: X
 | 
						|
 | 
						|
/\sxxx\s/utf,tables=2
 | 
						|
    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/utf,tables=2
 | 
						|
    \x{a2} \x{84} 
 | 
						|
 0: \x{a2} \x{84}
 | 
						|
 | 
						|
'A#хц'Bx,newline=any,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        A
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
'A#хц
 | 
						|
  PQ'Bx,newline=any,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        APQ
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
  
 | 
						|
/a+#хaa
 | 
						|
  z#XX?/Bx,newline=any,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        a++
 | 
						|
        z
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/a+#хaa
 | 
						|
  z#х?/Bx,newline=any,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        a++
 | 
						|
        z
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/\g{A}xxx#bXX(?'A'123)
 | 
						|
(?'A'456)/Bx,newline=any,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        \1
 | 
						|
        xxx
 | 
						|
        CBra 1
 | 
						|
        456
 | 
						|
        Ket
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/\g{A}xxx#bх(?'A'123)
 | 
						|
(?'A'456)/Bx,newline=any,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        \1
 | 
						|
        xxx
 | 
						|
        CBra 1
 | 
						|
        456
 | 
						|
        Ket
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/^\cģ/utf
 | 
						|
Failed: error 168 at offset 3: \c must be followed by a printable ASCII character
 | 
						|
 | 
						|
/(\R*)(.)/s,utf
 | 
						|
    \r\n
 | 
						|
 0: \x{0d}
 | 
						|
 1: 
 | 
						|
 2: \x{0d}
 | 
						|
    \r\r\n\n\r 
 | 
						|
 0: \x{0d}\x{0d}\x{0a}\x{0a}\x{0d}
 | 
						|
 1: \x{0d}\x{0d}\x{0a}\x{0a}
 | 
						|
 2: \x{0d}
 | 
						|
    \r\r\n\n\r\n 
 | 
						|
 0: \x{0d}\x{0d}\x{0a}\x{0a}\x{0d}
 | 
						|
 1: \x{0d}\x{0d}\x{0a}\x{0a}
 | 
						|
 2: \x{0d}
 | 
						|
 | 
						|
/(\R)*(.)/s,utf
 | 
						|
    \r\n
 | 
						|
 0: \x{0d}
 | 
						|
 1: <unset>
 | 
						|
 2: \x{0d}
 | 
						|
    \r\r\n\n\r 
 | 
						|
 0: \x{0d}\x{0d}\x{0a}\x{0a}\x{0d}
 | 
						|
 1: \x{0a}
 | 
						|
 2: \x{0d}
 | 
						|
    \r\r\n\n\r\n 
 | 
						|
 0: \x{0d}\x{0d}\x{0a}\x{0a}\x{0d}
 | 
						|
 1: \x{0a}
 | 
						|
 2: \x{0d}
 | 
						|
 | 
						|
/[^\x{1234}]+/Ii,utf
 | 
						|
Capturing subpattern count = 0
 | 
						|
Options: caseless utf
 | 
						|
Subject length lower bound = 1
 | 
						|
 | 
						|
/[^\x{1234}]+?/Ii,utf
 | 
						|
Capturing subpattern count = 0
 | 
						|
Options: caseless utf
 | 
						|
Subject length lower bound = 1
 | 
						|
 | 
						|
/[^\x{1234}]++/Ii,utf
 | 
						|
Capturing subpattern count = 0
 | 
						|
Options: caseless utf
 | 
						|
Subject length lower bound = 1
 | 
						|
 | 
						|
/[^\x{1234}]{2}/Ii,utf
 | 
						|
Capturing subpattern count = 0
 | 
						|
Options: caseless utf
 | 
						|
Subject length lower bound = 2
 | 
						|
 | 
						|
/f.*/
 | 
						|
    for\=ph
 | 
						|
Partial match: for
 | 
						|
 | 
						|
/f.*/s
 | 
						|
    for\=ph
 | 
						|
Partial match: for
 | 
						|
 | 
						|
/f.*/utf
 | 
						|
    for\=ph
 | 
						|
Partial match: for
 | 
						|
 | 
						|
/f.*/s,utf
 | 
						|
    for\=ph
 | 
						|
Partial match: for
 | 
						|
    
 | 
						|
/\x{d7ff}\x{e000}/utf
 | 
						|
 | 
						|
/\x{d800}/utf
 | 
						|
Failed: error 173 at offset 7: disallowed Unicode code point (>= 0xd800 && <= 0xdfff)
 | 
						|
 | 
						|
/\x{dfff}/utf
 | 
						|
Failed: error 173 at offset 7: disallowed Unicode code point (>= 0xd800 && <= 0xdfff)
 | 
						|
 | 
						|
/\h+/utf
 | 
						|
    \x{1681}\x{200b}\x{1680}\x{2000}\x{202f}\x{3000}
 | 
						|
 0: \x{1680}\x{2000}\x{202f}\x{3000}
 | 
						|
    \x{3001}\x{2fff}\x{200a}\x{a0}\x{2000}
 | 
						|
 0: \x{200a}\x{a0}\x{2000}
 | 
						|
 | 
						|
/[\h\x{e000}]+/B,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [\x09 \xa0\x{1680}\x{180e}\x{2000}-\x{200a}\x{202f}\x{205f}\x{3000}\x{e000}]++
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
    \x{1681}\x{200b}\x{1680}\x{2000}\x{202f}\x{3000}
 | 
						|
 0: \x{1680}\x{2000}\x{202f}\x{3000}
 | 
						|
    \x{3001}\x{2fff}\x{200a}\x{a0}\x{2000}
 | 
						|
 0: \x{200a}\x{a0}\x{2000}
 | 
						|
 | 
						|
/\H+/utf
 | 
						|
    \x{1680}\x{180e}\x{167f}\x{1681}\x{180d}\x{180f}
 | 
						|
 0: \x{167f}\x{1681}\x{180d}\x{180f}
 | 
						|
    \x{2000}\x{200a}\x{1fff}\x{200b}
 | 
						|
 0: \x{1fff}\x{200b}
 | 
						|
    \x{202f}\x{205f}\x{202e}\x{2030}\x{205e}\x{2060}
 | 
						|
 0: \x{202e}\x{2030}\x{205e}\x{2060}
 | 
						|
    \x{a0}\x{3000}\x{9f}\x{a1}\x{2fff}\x{3001}
 | 
						|
 0: \x{9f}\x{a1}\x{2fff}\x{3001}
 | 
						|
 | 
						|
/[\H\x{d7ff}]+/B,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        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{10ffff}\x{d7ff}]++
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
    \x{1680}\x{180e}\x{167f}\x{1681}\x{180d}\x{180f}
 | 
						|
 0: \x{167f}\x{1681}\x{180d}\x{180f}
 | 
						|
    \x{2000}\x{200a}\x{1fff}\x{200b}
 | 
						|
 0: \x{1fff}\x{200b}
 | 
						|
    \x{202f}\x{205f}\x{202e}\x{2030}\x{205e}\x{2060}
 | 
						|
 0: \x{202e}\x{2030}\x{205e}\x{2060}
 | 
						|
    \x{a0}\x{3000}\x{9f}\x{a1}\x{2fff}\x{3001}
 | 
						|
 0: \x{9f}\x{a1}\x{2fff}\x{3001}
 | 
						|
 | 
						|
/\v+/utf
 | 
						|
    \x{2027}\x{2030}\x{2028}\x{2029}
 | 
						|
 0: \x{2028}\x{2029}
 | 
						|
    \x09\x0e\x{84}\x{86}\x{85}\x0a\x0b\x0c\x0d
 | 
						|
 0: \x{85}\x{0a}\x{0b}\x{0c}\x{0d}
 | 
						|
 | 
						|
/[\v\x{e000}]+/B,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [\x0a-\x0d\x85\x{2028}-\x{2029}\x{e000}]++
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
    \x{2027}\x{2030}\x{2028}\x{2029}
 | 
						|
 0: \x{2028}\x{2029}
 | 
						|
    \x09\x0e\x{84}\x{86}\x{85}\x0a\x0b\x0c\x0d
 | 
						|
 0: \x{85}\x{0a}\x{0b}\x{0c}\x{0d}
 | 
						|
 | 
						|
/\V+/utf
 | 
						|
    \x{2028}\x{2029}\x{2027}\x{2030}
 | 
						|
 0: \x{2027}\x{2030}
 | 
						|
    \x{85}\x0a\x0b\x0c\x0d\x09\x0e\x{84}\x{86}
 | 
						|
 0: \x{09}\x{0e}\x{84}\x{86}
 | 
						|
 | 
						|
/[\V\x{d7ff}]+/B,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [\x00-\x09\x0e-\x84\x86-\xff\x{100}-\x{2027}\x{202a}-\x{10ffff}\x{d7ff}]++
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
    \x{2028}\x{2029}\x{2027}\x{2030}
 | 
						|
 0: \x{2027}\x{2030}
 | 
						|
    \x{85}\x0a\x0b\x0c\x0d\x09\x0e\x{84}\x{86}
 | 
						|
 0: \x{09}\x{0e}\x{84}\x{86}
 | 
						|
 | 
						|
/\R+/bsr=unicode,utf
 | 
						|
    \x{2027}\x{2030}\x{2028}\x{2029}
 | 
						|
 0: \x{2028}\x{2029}
 | 
						|
    \x09\x0e\x{84}\x{86}\x{85}\x0a\x0b\x0c\x0d
 | 
						|
 0: \x{85}\x{0a}\x{0b}\x{0c}\x{0d}
 | 
						|
 | 
						|
/(..)\1/utf
 | 
						|
    ab\=ps
 | 
						|
Partial match: ab
 | 
						|
    aba\=ps
 | 
						|
Partial match: aba
 | 
						|
    abab\=ps
 | 
						|
 0: abab
 | 
						|
 1: ab
 | 
						|
 | 
						|
/(..)\1/i,utf
 | 
						|
    ab\=ps
 | 
						|
Partial match: ab
 | 
						|
    abA\=ps
 | 
						|
Partial match: abA
 | 
						|
    aBAb\=ps
 | 
						|
 0: aBAb
 | 
						|
 1: aB
 | 
						|
 | 
						|
/(..)\1{2,}/utf
 | 
						|
    ab\=ps
 | 
						|
Partial match: ab
 | 
						|
    aba\=ps
 | 
						|
Partial match: aba
 | 
						|
    abab\=ps
 | 
						|
Partial match: abab
 | 
						|
    ababa\=ps
 | 
						|
Partial match: ababa
 | 
						|
    ababab\=ps
 | 
						|
 0: ababab
 | 
						|
 1: ab
 | 
						|
    ababab\=ph
 | 
						|
Partial match: ababab
 | 
						|
    abababa\=ps
 | 
						|
 0: ababab
 | 
						|
 1: ab
 | 
						|
    abababa\=ph
 | 
						|
Partial match: abababa
 | 
						|
 | 
						|
/(..)\1{2,}/i,utf
 | 
						|
    ab\=ps
 | 
						|
Partial match: ab
 | 
						|
    aBa\=ps
 | 
						|
Partial match: aBa
 | 
						|
    aBAb\=ps
 | 
						|
Partial match: aBAb
 | 
						|
    AbaBA\=ps
 | 
						|
Partial match: AbaBA
 | 
						|
    abABAb\=ps
 | 
						|
 0: abABAb
 | 
						|
 1: ab
 | 
						|
    aBAbaB\=ph
 | 
						|
Partial match: aBAbaB
 | 
						|
    abABabA\=ps
 | 
						|
 0: abABab
 | 
						|
 1: ab
 | 
						|
    abaBABa\=ph
 | 
						|
Partial match: abaBABa
 | 
						|
 | 
						|
/(..)\1{2,}?x/i,utf
 | 
						|
    ab\=ps
 | 
						|
Partial match: ab
 | 
						|
    abA\=ps
 | 
						|
Partial match: abA
 | 
						|
    aBAb\=ps
 | 
						|
Partial match: aBAb
 | 
						|
    abaBA\=ps
 | 
						|
Partial match: abaBA
 | 
						|
    abAbaB\=ps
 | 
						|
Partial match: abAbaB
 | 
						|
    abaBabA\=ps
 | 
						|
Partial match: abaBabA
 | 
						|
    abAbABaBx\=ps
 | 
						|
 0: abAbABaBx
 | 
						|
 1: ab
 | 
						|
 | 
						|
/./utf,newline=crlf
 | 
						|
    \r\=ps
 | 
						|
 0: \x{0d}
 | 
						|
    \r\=ph
 | 
						|
Partial match: \x{0d}
 | 
						|
  
 | 
						|
/.{2,3}/utf,newline=crlf
 | 
						|
    \r\=ps
 | 
						|
Partial match: \x{0d}
 | 
						|
    \r\=ph
 | 
						|
Partial match: \x{0d}
 | 
						|
    \r\r\=ps
 | 
						|
 0: \x{0d}\x{0d}
 | 
						|
    \r\r\=ph
 | 
						|
Partial match: \x{0d}\x{0d}
 | 
						|
    \r\r\r\=ps
 | 
						|
 0: \x{0d}\x{0d}\x{0d}
 | 
						|
    \r\r\r\=ph
 | 
						|
Partial match: \x{0d}\x{0d}\x{0d}
 | 
						|
 | 
						|
/.{2,3}?/utf,newline=crlf
 | 
						|
    \r\=ps
 | 
						|
Partial match: \x{0d}
 | 
						|
    \r\=ph
 | 
						|
Partial match: \x{0d}
 | 
						|
    \r\r\=ps
 | 
						|
 0: \x{0d}\x{0d}
 | 
						|
    \r\r\=ph
 | 
						|
Partial match: \x{0d}\x{0d}
 | 
						|
    \r\r\r\=ps
 | 
						|
 0: \x{0d}\x{0d}
 | 
						|
    \r\r\r\=ph
 | 
						|
 0: \x{0d}\x{0d}
 | 
						|
 | 
						|
/[^\x{100}][^\x{1234}][^\x{ffff}][^\x{10000}][^\x{10ffff}]/B,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [^\x{100}]
 | 
						|
        [^\x{1234}]
 | 
						|
        [^\x{ffff}]
 | 
						|
        [^\x{10000}]
 | 
						|
        [^\x{10ffff}]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/[^\x{100}][^\x{1234}][^\x{ffff}][^\x{10000}][^\x{10ffff}]/Bi,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
     /i [^\x{100}]
 | 
						|
     /i [^\x{1234}]
 | 
						|
     /i [^\x{ffff}]
 | 
						|
     /i [^\x{10000}]
 | 
						|
     /i [^\x{10ffff}]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/[^\x{100}]*[^\x{10000}]+[^\x{10ffff}]??[^\x{8000}]{4,}[^\x{7fff}]{2,9}?[^\x{fffff}]{5,6}+/B,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [^\x{100}]*
 | 
						|
        [^\x{10000}]+
 | 
						|
        [^\x{10ffff}]??
 | 
						|
        [^\x{8000}]{4}
 | 
						|
        [^\x{8000}]*
 | 
						|
        [^\x{7fff}]{2}
 | 
						|
        [^\x{7fff}]{0,7}?
 | 
						|
        [^\x{fffff}]{5}
 | 
						|
        [^\x{fffff}]?+
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/[^\x{100}]*[^\x{10000}]+[^\x{10ffff}]??[^\x{8000}]{4,}[^\x{7fff}]{2,9}?[^\x{fffff}]{5,6}+/Bi,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
     /i [^\x{100}]*
 | 
						|
     /i [^\x{10000}]+
 | 
						|
     /i [^\x{10ffff}]??
 | 
						|
     /i [^\x{8000}]{4}
 | 
						|
     /i [^\x{8000}]*
 | 
						|
     /i [^\x{7fff}]{2}
 | 
						|
     /i [^\x{7fff}]{0,7}?
 | 
						|
     /i [^\x{fffff}]{5}
 | 
						|
     /i [^\x{fffff}]?+
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/(?<=\x{1234}\x{1234})\bxy/I,utf
 | 
						|
Capturing subpattern count = 0
 | 
						|
Max lookbehind = 2
 | 
						|
Options: utf
 | 
						|
First code unit = 'x'
 | 
						|
Last code unit = 'y'
 | 
						|
Subject length lower bound = 2
 | 
						|
 | 
						|
/(?<!^)ETA/utf
 | 
						|
\= Expect no match
 | 
						|
    ETA
 | 
						|
No match
 | 
						|
 | 
						|
/\u0100/B,utf,alt_bsux,allow_empty_class,match_unset_backref
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        \x{100}
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/[\u0100-\u0200]/B,utf,alt_bsux,allow_empty_class,match_unset_backref
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [\x{100}-\x{200}]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/\ud800/utf,alt_bsux,allow_empty_class,match_unset_backref
 | 
						|
Failed: error 173 at offset 6: disallowed Unicode code point (>= 0xd800 && <= 0xdfff)
 | 
						|
 | 
						|
/^a+[a\x{200}]/B,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        ^
 | 
						|
        a+
 | 
						|
        [a\x{200}]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
    aa
 | 
						|
 0: aa
 | 
						|
 | 
						|
/[b-d\x{200}-\x{250}]*[ae-h]?#[\x{200}-\x{250}]{0,8}[\x00-\xff]*#[\x{200}-\x{250}]+[a-z]/B,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [b-d\x{200}-\x{250}]*+
 | 
						|
        [ae-h]?+
 | 
						|
        #
 | 
						|
        [\x{200}-\x{250}]{0,8}+
 | 
						|
        [\x00-\xff]*
 | 
						|
        #
 | 
						|
        [\x{200}-\x{250}]++
 | 
						|
        [a-z]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/[\p{L}]/IB
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [\p{L}]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
Capturing subpattern count = 0
 | 
						|
Subject length lower bound = 1
 | 
						|
 | 
						|
/[\p{^L}]/IB
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [\P{L}]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
Capturing subpattern count = 0
 | 
						|
Subject length lower bound = 1
 | 
						|
 | 
						|
/[\P{L}]/IB
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [\P{L}]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
Capturing subpattern count = 0
 | 
						|
Subject length lower bound = 1
 | 
						|
 | 
						|
/[\P{^L}]/IB
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [\p{L}]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
Capturing subpattern count = 0
 | 
						|
Subject length lower bound = 1
 | 
						|
 | 
						|
/[abc\p{L}\x{0660}]/IB,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [a-c\p{L}\x{660}]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
Capturing subpattern count = 0
 | 
						|
Options: utf
 | 
						|
Subject length lower bound = 1
 | 
						|
 | 
						|
/[\p{Nd}]/IB,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [\p{Nd}]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
Capturing subpattern count = 0
 | 
						|
Options: utf
 | 
						|
Subject length lower bound = 1
 | 
						|
    1234
 | 
						|
 0: 1
 | 
						|
 | 
						|
/[\p{Nd}+-]+/IB,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [+\-\p{Nd}]++
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
Capturing subpattern count = 0
 | 
						|
Options: utf
 | 
						|
Subject length lower bound = 1
 | 
						|
    1234
 | 
						|
 0: 1234
 | 
						|
    12-34
 | 
						|
 0: 12-34
 | 
						|
    12+\x{661}-34  
 | 
						|
 0: 12+\x{661}-34
 | 
						|
\= Expect no match
 | 
						|
    abcd  
 | 
						|
No match
 | 
						|
 | 
						|
/(?:[\PPa*]*){8,}/
 | 
						|
 | 
						|
/[\P{Any}]/B
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [\P{Any}]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/[\P{Any}\E]/B
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [\P{Any}]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/(\P{Yi}+\277)/
 | 
						|
 | 
						|
/(\P{Yi}+\277)?/
 | 
						|
 | 
						|
/(?<=\P{Yi}{3}A)X/
 | 
						|
 | 
						|
/\p{Yi}+(\P{Yi}+)(?1)/
 | 
						|
 | 
						|
/(\P{Yi}{2}\277)?/
 | 
						|
 | 
						|
/[\P{Yi}A]/
 | 
						|
 | 
						|
/[\P{Yi}\P{Yi}\P{Yi}A]/
 | 
						|
 | 
						|
/[^\P{Yi}A]/
 | 
						|
 | 
						|
/[^\P{Yi}\P{Yi}\P{Yi}A]/
 | 
						|
 | 
						|
/(\P{Yi}*\277)*/
 | 
						|
 | 
						|
/(\P{Yi}*?\277)*/
 | 
						|
 | 
						|
/(\p{Yi}*+\277)*/
 | 
						|
 | 
						|
/(\P{Yi}?\277)*/
 | 
						|
 | 
						|
/(\P{Yi}??\277)*/
 | 
						|
 | 
						|
/(\p{Yi}?+\277)*/
 | 
						|
 | 
						|
/(\P{Yi}{0,3}\277)*/
 | 
						|
 | 
						|
/(\P{Yi}{0,3}?\277)*/
 | 
						|
 | 
						|
/(\p{Yi}{0,3}+\277)*/
 | 
						|
 | 
						|
/\p{Zl}{2,3}+/B,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        prop Zl {2}
 | 
						|
        prop Zl ?+
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
    
 | 
						|
 0: \x{2028}\x{2028}
 | 
						|
    \x{2028}\x{2028}\x{2028}
 | 
						|
 0: \x{2028}\x{2028}\x{2028}
 | 
						|
    
 | 
						|
/\p{Zl}/B,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        prop Zl
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/\p{Lu}{3}+/B,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        prop Lu {3}
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/\pL{2}+/B,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        prop L {2}
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/\p{Cc}{2}+/B,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        prop Cc {2}
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/^\p{Cf}/utf
 | 
						|
    \x{180e}
 | 
						|
 0: \x{180e}
 | 
						|
    \x{061c}
 | 
						|
 0: \x{61c}
 | 
						|
    \x{2066}
 | 
						|
 0: \x{2066}
 | 
						|
    \x{2067}
 | 
						|
 0: \x{2067}
 | 
						|
    \x{2068}
 | 
						|
 0: \x{2068}
 | 
						|
    \x{2069}
 | 
						|
 0: \x{2069}
 | 
						|
 | 
						|
/^\p{Cs}/utf
 | 
						|
    \x{dfff}\=no_utf_check
 | 
						|
 0: \x{dfff}
 | 
						|
\= Expect no match
 | 
						|
    \x{09f} 
 | 
						|
No match
 | 
						|
  
 | 
						|
/^\p{Mn}/utf
 | 
						|
    \x{1a1b}
 | 
						|
 0: \x{1a1b}
 | 
						|
 | 
						|
/^\p{Pe}/utf
 | 
						|
    \x{2309}
 | 
						|
 0: \x{2309}
 | 
						|
    \x{230b}
 | 
						|
 0: \x{230b}
 | 
						|
 | 
						|
/^\p{Ps}/utf
 | 
						|
    \x{2308}
 | 
						|
 0: \x{2308}
 | 
						|
    \x{230a}
 | 
						|
 0: \x{230a}
 | 
						|
 | 
						|
/^\p{Sc}+/utf
 | 
						|
    $\x{a2}\x{a3}\x{a4}\x{a5}\x{a6}
 | 
						|
 0: $\x{a2}\x{a3}\x{a4}\x{a5}
 | 
						|
    \x{9f2}
 | 
						|
 0: \x{9f2}
 | 
						|
\= Expect no match
 | 
						|
    X
 | 
						|
No match
 | 
						|
    \x{2c2}
 | 
						|
No match
 | 
						|
  
 | 
						|
/^\p{Zs}/utf
 | 
						|
    \ \
 | 
						|
 0:  
 | 
						|
    \x{a0}
 | 
						|
 0: \x{a0}
 | 
						|
    \x{1680}
 | 
						|
 0: \x{1680}
 | 
						|
    \x{2000}
 | 
						|
 0: \x{2000}
 | 
						|
    \x{2001}     
 | 
						|
 0: \x{2001}
 | 
						|
\= Expect no match
 | 
						|
    \x{2028}
 | 
						|
No match
 | 
						|
    \x{200d} 
 | 
						|
No match
 | 
						|
  
 | 
						|
# These are here because Perl has problems with the negative versions of the
 | 
						|
# properties and has changed how it behaves for caseless matching.
 | 
						|
      
 | 
						|
/\p{^Lu}/i,utf
 | 
						|
    1234
 | 
						|
 0: 1
 | 
						|
\= Expect no match
 | 
						|
    ABC 
 | 
						|
No match
 | 
						|
 | 
						|
/\P{Lu}/i,utf
 | 
						|
    1234
 | 
						|
 0: 1
 | 
						|
\= Expect no match
 | 
						|
    ABC 
 | 
						|
No match
 | 
						|
 | 
						|
/\p{Ll}/i,utf
 | 
						|
    a
 | 
						|
 0: a
 | 
						|
    Az
 | 
						|
 0: z
 | 
						|
\= Expect no match
 | 
						|
    ABC   
 | 
						|
No match
 | 
						|
 | 
						|
/\p{Lu}/i,utf
 | 
						|
    A
 | 
						|
 0: A
 | 
						|
    a\x{10a0}B 
 | 
						|
 0: \x{10a0}
 | 
						|
\= Expect no match 
 | 
						|
    a
 | 
						|
No match
 | 
						|
    \x{1d00}  
 | 
						|
No match
 | 
						|
 | 
						|
/\p{Lu}/i,utf
 | 
						|
    A
 | 
						|
 0: A
 | 
						|
    aZ
 | 
						|
 0: Z
 | 
						|
\= Expect no match
 | 
						|
    abc   
 | 
						|
No match
 | 
						|
 | 
						|
/[\x{c0}\x{391}]/i,utf
 | 
						|
    \x{c0}
 | 
						|
 0: \x{c0}
 | 
						|
    \x{e0} 
 | 
						|
 0: \x{e0}
 | 
						|
 | 
						|
# The next two are special cases where the lengths of the different cases of
 | 
						|
# the same character differ. The first went wrong with heap frame storage; the
 | 
						|
# second was broken in all cases. 
 | 
						|
 | 
						|
/^\x{023a}+?(\x{0130}+)/i,utf
 | 
						|
  \x{023a}\x{2c65}\x{0130}
 | 
						|
 0: \x{23a}\x{2c65}\x{130}
 | 
						|
 1: \x{130}
 | 
						|
  
 | 
						|
/^\x{023a}+([^X])/i,utf
 | 
						|
  \x{023a}\x{2c65}X
 | 
						|
 0: \x{23a}\x{2c65}
 | 
						|
 1: \x{2c65}
 | 
						|
 | 
						|
/\x{c0}+\x{116}+/i,utf
 | 
						|
    \x{c0}\x{e0}\x{116}\x{117}
 | 
						|
 0: \x{c0}\x{e0}\x{116}\x{117}
 | 
						|
 | 
						|
/[\x{c0}\x{116}]+/i,utf
 | 
						|
    \x{c0}\x{e0}\x{116}\x{117}
 | 
						|
 0: \x{c0}\x{e0}\x{116}\x{117}
 | 
						|
 | 
						|
/(\x{de})\1/i,utf
 | 
						|
    \x{de}\x{de}
 | 
						|
 0: \x{de}\x{de}
 | 
						|
 1: \x{de}
 | 
						|
    \x{de}\x{fe}
 | 
						|
 0: \x{de}\x{fe}
 | 
						|
 1: \x{de}
 | 
						|
    \x{fe}\x{fe}
 | 
						|
 0: \x{fe}\x{fe}
 | 
						|
 1: \x{fe}
 | 
						|
    \x{fe}\x{de}
 | 
						|
 0: \x{fe}\x{de}
 | 
						|
 1: \x{fe}
 | 
						|
 | 
						|
/^\x{c0}$/i,utf
 | 
						|
    \x{c0}
 | 
						|
 0: \x{c0}
 | 
						|
    \x{e0} 
 | 
						|
 0: \x{e0}
 | 
						|
 | 
						|
/^\x{e0}$/i,utf
 | 
						|
    \x{c0}
 | 
						|
 0: \x{c0}
 | 
						|
    \x{e0} 
 | 
						|
 0: \x{e0}
 | 
						|
 | 
						|
# The next two should be Perl-compatible, but it fails to match \x{e0}. PCRE
 | 
						|
# will match it only with UCP support, because without that it has no notion
 | 
						|
# of case for anything other than the ASCII letters.  
 | 
						|
 | 
						|
/((?i)[\x{c0}])/utf
 | 
						|
    \x{c0}
 | 
						|
 0: \x{c0}
 | 
						|
 1: \x{c0}
 | 
						|
    \x{e0} 
 | 
						|
 0: \x{e0}
 | 
						|
 1: \x{e0}
 | 
						|
 | 
						|
/(?i:[\x{c0}])/utf
 | 
						|
    \x{c0}
 | 
						|
 0: \x{c0}
 | 
						|
    \x{e0} 
 | 
						|
 0: \x{e0}
 | 
						|
 | 
						|
# These are PCRE's extra properties to help with Unicodizing \d etc. 
 | 
						|
 | 
						|
/^\p{Xan}/utf
 | 
						|
    ABCD
 | 
						|
 0: A
 | 
						|
    1234
 | 
						|
 0: 1
 | 
						|
    \x{6ca}
 | 
						|
 0: \x{6ca}
 | 
						|
    \x{a6c}
 | 
						|
 0: \x{a6c}
 | 
						|
    \x{10a7}   
 | 
						|
 0: \x{10a7}
 | 
						|
\= Expect no match
 | 
						|
    _ABC   
 | 
						|
No match
 | 
						|
 | 
						|
/^\p{Xan}+/utf
 | 
						|
    ABCD1234\x{6ca}\x{a6c}\x{10a7}_
 | 
						|
 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}
 | 
						|
\= Expect no match
 | 
						|
    _ABC   
 | 
						|
No match
 | 
						|
 | 
						|
/^\p{Xan}+?/utf
 | 
						|
    \x{6ca}\x{a6c}\x{10a7}_
 | 
						|
 0: \x{6ca}
 | 
						|
 | 
						|
/^\p{Xan}*/utf
 | 
						|
    ABCD1234\x{6ca}\x{a6c}\x{10a7}_
 | 
						|
 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}
 | 
						|
    
 | 
						|
/^\p{Xan}{2,9}/utf
 | 
						|
    ABCD1234\x{6ca}\x{a6c}\x{10a7}_
 | 
						|
 0: ABCD1234\x{6ca}
 | 
						|
    
 | 
						|
/^\p{Xan}{2,9}?/utf
 | 
						|
    \x{6ca}\x{a6c}\x{10a7}_
 | 
						|
 0: \x{6ca}\x{a6c}
 | 
						|
    
 | 
						|
/^[\p{Xan}]/utf
 | 
						|
    ABCD1234_
 | 
						|
 0: A
 | 
						|
    1234abcd_
 | 
						|
 0: 1
 | 
						|
    \x{6ca}
 | 
						|
 0: \x{6ca}
 | 
						|
    \x{a6c}
 | 
						|
 0: \x{a6c}
 | 
						|
    \x{10a7}   
 | 
						|
 0: \x{10a7}
 | 
						|
\= Expect no match
 | 
						|
    _ABC   
 | 
						|
No match
 | 
						|
 
 | 
						|
/^[\p{Xan}]+/utf
 | 
						|
    ABCD1234\x{6ca}\x{a6c}\x{10a7}_
 | 
						|
 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}
 | 
						|
\= Expect no match
 | 
						|
    _ABC   
 | 
						|
No match
 | 
						|
 | 
						|
/^>\p{Xsp}/utf
 | 
						|
    >\x{1680}\x{2028}\x{0b}
 | 
						|
 0: >\x{1680}
 | 
						|
    >\x{a0} 
 | 
						|
 0: >\x{a0}
 | 
						|
\= Expect no match
 | 
						|
    \x{0b} 
 | 
						|
No match
 | 
						|
 | 
						|
/^>\p{Xsp}+/utf
 | 
						|
    > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
 | 
						|
 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
 | 
						|
 | 
						|
/^>\p{Xsp}+?/utf
 | 
						|
    >\x{1680}\x{2028}\x{0b}
 | 
						|
 0: >\x{1680}
 | 
						|
 | 
						|
/^>\p{Xsp}*/utf
 | 
						|
    > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
 | 
						|
 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
 | 
						|
    
 | 
						|
/^>\p{Xsp}{2,9}/utf
 | 
						|
    > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
 | 
						|
 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
 | 
						|
    
 | 
						|
/^>\p{Xsp}{2,9}?/utf
 | 
						|
    > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
 | 
						|
 0: > \x{09}
 | 
						|
    
 | 
						|
/^>[\p{Xsp}]/utf
 | 
						|
    >\x{2028}\x{0b}
 | 
						|
 0: >\x{2028}
 | 
						|
 
 | 
						|
/^>[\p{Xsp}]+/utf
 | 
						|
    > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
 | 
						|
 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
 | 
						|
 | 
						|
/^>\p{Xps}/utf
 | 
						|
    >\x{1680}\x{2028}\x{0b}
 | 
						|
 0: >\x{1680}
 | 
						|
    >\x{a0} 
 | 
						|
 0: >\x{a0}
 | 
						|
\= Expect no match
 | 
						|
    \x{0b} 
 | 
						|
No match
 | 
						|
 | 
						|
/^>\p{Xps}+/utf
 | 
						|
    > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
 | 
						|
 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
 | 
						|
 | 
						|
/^>\p{Xps}+?/utf
 | 
						|
    >\x{1680}\x{2028}\x{0b}
 | 
						|
 0: >\x{1680}
 | 
						|
 | 
						|
/^>\p{Xps}*/utf
 | 
						|
    > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
 | 
						|
 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
 | 
						|
    
 | 
						|
/^>\p{Xps}{2,9}/utf
 | 
						|
    > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
 | 
						|
 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
 | 
						|
    
 | 
						|
/^>\p{Xps}{2,9}?/utf
 | 
						|
    > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
 | 
						|
 0: > \x{09}
 | 
						|
    
 | 
						|
/^>[\p{Xps}]/utf
 | 
						|
    >\x{2028}\x{0b}
 | 
						|
 0: >\x{2028}
 | 
						|
 
 | 
						|
/^>[\p{Xps}]+/utf
 | 
						|
    > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
 | 
						|
 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
 | 
						|
 | 
						|
/^\p{Xwd}/utf
 | 
						|
    ABCD
 | 
						|
 0: A
 | 
						|
    1234
 | 
						|
 0: 1
 | 
						|
    \x{6ca}
 | 
						|
 0: \x{6ca}
 | 
						|
    \x{a6c}
 | 
						|
 0: \x{a6c}
 | 
						|
    \x{10a7}
 | 
						|
 0: \x{10a7}
 | 
						|
    _ABC    
 | 
						|
 0: _
 | 
						|
\= Expect no match
 | 
						|
    [] 
 | 
						|
No match
 | 
						|
 | 
						|
/^\p{Xwd}+/utf
 | 
						|
    ABCD1234\x{6ca}\x{a6c}\x{10a7}_
 | 
						|
 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
 | 
						|
 | 
						|
/^\p{Xwd}+?/utf
 | 
						|
    \x{6ca}\x{a6c}\x{10a7}_
 | 
						|
 0: \x{6ca}
 | 
						|
 | 
						|
/^\p{Xwd}*/utf
 | 
						|
    ABCD1234\x{6ca}\x{a6c}\x{10a7}_
 | 
						|
 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
 | 
						|
    
 | 
						|
/^\p{Xwd}{2,9}/utf
 | 
						|
    A_B12\x{6ca}\x{a6c}\x{10a7}
 | 
						|
 0: A_B12\x{6ca}\x{a6c}\x{10a7}
 | 
						|
    
 | 
						|
/^\p{Xwd}{2,9}?/utf
 | 
						|
    \x{6ca}\x{a6c}\x{10a7}_
 | 
						|
 0: \x{6ca}\x{a6c}
 | 
						|
    
 | 
						|
/^[\p{Xwd}]/utf
 | 
						|
    ABCD1234_
 | 
						|
 0: A
 | 
						|
    1234abcd_
 | 
						|
 0: 1
 | 
						|
    \x{6ca}
 | 
						|
 0: \x{6ca}
 | 
						|
    \x{a6c}
 | 
						|
 0: \x{a6c}
 | 
						|
    \x{10a7}   
 | 
						|
 0: \x{10a7}
 | 
						|
    _ABC 
 | 
						|
 0: _
 | 
						|
\= Expect no match
 | 
						|
    []   
 | 
						|
No match
 | 
						|
 
 | 
						|
/^[\p{Xwd}]+/utf
 | 
						|
    ABCD1234\x{6ca}\x{a6c}\x{10a7}_
 | 
						|
 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
 | 
						|
 | 
						|
# A check not in UTF-8 mode 
 | 
						|
 | 
						|
/^[\p{Xwd}]+/
 | 
						|
    ABCD1234_
 | 
						|
 0: ABCD1234_
 | 
						|
    
 | 
						|
# Some negative checks 
 | 
						|
 | 
						|
/^[\P{Xwd}]+/utf
 | 
						|
    !.+\x{019}\x{35a}AB
 | 
						|
 0: !.+\x{19}\x{35a}
 | 
						|
 | 
						|
/^[\p{^Xwd}]+/utf
 | 
						|
    !.+\x{019}\x{35a}AB
 | 
						|
 0: !.+\x{19}\x{35a}
 | 
						|
 | 
						|
/[\D]/B,utf,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [\P{Nd}]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
    1\x{3c8}2
 | 
						|
 0: \x{3c8}
 | 
						|
 | 
						|
/[\d]/B,utf,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [\p{Nd}]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
    >\x{6f4}<
 | 
						|
 0: \x{6f4}
 | 
						|
 | 
						|
/[\S]/B,utf,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [\P{Xsp}]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
    \x{1680}\x{6f4}\x{1680}
 | 
						|
 0: \x{6f4}
 | 
						|
 | 
						|
/[\s]/B,utf,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [\p{Xsp}]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
    >\x{1680}<
 | 
						|
 0: \x{1680}
 | 
						|
 | 
						|
/[\W]/B,utf,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [\P{Xwd}]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
    A\x{1712}B
 | 
						|
 0: \x{1712}
 | 
						|
 | 
						|
/[\w]/B,utf,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [\p{Xwd}]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
    >\x{1723}<
 | 
						|
 0: \x{1723}
 | 
						|
 | 
						|
/\D/B,utf,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        notprop Nd
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
    1\x{3c8}2
 | 
						|
 0: \x{3c8}
 | 
						|
 | 
						|
/\d/B,utf,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        prop Nd
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
    >\x{6f4}<
 | 
						|
 0: \x{6f4}
 | 
						|
 | 
						|
/\S/B,utf,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        notprop Xsp
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
    \x{1680}\x{6f4}\x{1680}
 | 
						|
 0: \x{6f4}
 | 
						|
 | 
						|
/\s/B,utf,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        prop Xsp
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
    >\x{1680}>
 | 
						|
 0: \x{1680}
 | 
						|
 | 
						|
/\W/B,utf,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        notprop Xwd
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
    A\x{1712}B
 | 
						|
 0: \x{1712}
 | 
						|
 | 
						|
/\w/B,utf,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        prop Xwd
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
    >\x{1723}<
 | 
						|
 0: \x{1723}
 | 
						|
 | 
						|
/[[:alpha:]]/B,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [\p{L}]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/[[:lower:]]/B,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [\p{Ll}]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/[[:upper:]]/B,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [\p{Lu}]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/[[:alnum:]]/B,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [\p{Xan}]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/[[:ascii:]]/B,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [\x00-\x7f]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/[[:cntrl:]]/B,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [\p{Cc}]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/[[:digit:]]/B,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [\p{Nd}]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/[[:graph:]]/B,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [[:graph:]]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/[[:print:]]/B,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [[:print:]]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/[[:punct:]]/B,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [[:punct:]]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/[[:space:]]/B,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [\p{Xps}]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/[[:word:]]/B,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [\p{Xwd}]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/[[:xdigit:]]/B,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [0-9A-Fa-f]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
# Unicode properties for \b abd \B 
 | 
						|
 | 
						|
/\b...\B/utf,ucp
 | 
						|
    abc_
 | 
						|
 0: abc
 | 
						|
    \x{37e}abc\x{376} 
 | 
						|
 0: abc
 | 
						|
    \x{37e}\x{376}\x{371}\x{393}\x{394} 
 | 
						|
 0: \x{376}\x{371}\x{393}
 | 
						|
    !\x{c0}++\x{c1}\x{c2} 
 | 
						|
 0: ++\x{c1}
 | 
						|
    !\x{c0}+++++ 
 | 
						|
 0: \x{c0}++
 | 
						|
 | 
						|
# Without PCRE_UCP, non-ASCII always fail, even if < 256  
 | 
						|
 | 
						|
/\b...\B/utf
 | 
						|
    abc_
 | 
						|
 0: abc
 | 
						|
\= Expect no match 
 | 
						|
    \x{37e}abc\x{376} 
 | 
						|
No match
 | 
						|
    \x{37e}\x{376}\x{371}\x{393}\x{394} 
 | 
						|
No match
 | 
						|
    !\x{c0}++\x{c1}\x{c2} 
 | 
						|
No match
 | 
						|
    !\x{c0}+++++ 
 | 
						|
No match
 | 
						|
 | 
						|
# With PCRE_UCP, non-UTF8 chars that are < 256 still check properties  
 | 
						|
 | 
						|
/\b...\B/ucp
 | 
						|
    abc_
 | 
						|
 0: abc
 | 
						|
    !\x{c0}++\x{c1}\x{c2} 
 | 
						|
 0: ++\xc1
 | 
						|
    !\x{c0}+++++ 
 | 
						|
 0: \xc0++
 | 
						|
 | 
						|
# Some of these are silly, but they check various combinations 
 | 
						|
 | 
						|
/[[:^alpha:][:^cntrl:]]+/B,utf,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [\P{L}\P{Cc}]++
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
    123
 | 
						|
 0: 123
 | 
						|
    abc 
 | 
						|
 0: abc
 | 
						|
 | 
						|
/[[:^cntrl:][:^alpha:]]+/B,utf,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [\P{Cc}\P{L}]++
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
    123
 | 
						|
 0: 123
 | 
						|
    abc 
 | 
						|
 0: abc
 | 
						|
 | 
						|
/[[:alpha:]]+/B,utf,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [\p{L}]++
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
    abc
 | 
						|
 0: abc
 | 
						|
 | 
						|
/[[:^alpha:]\S]+/B,utf,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [\P{L}\P{Xsp}]++
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
    123
 | 
						|
 0: 123
 | 
						|
    abc 
 | 
						|
 0: abc
 | 
						|
 | 
						|
/[^\d]+/B,utf,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [^\p{Nd}]++
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
    abc123
 | 
						|
 0: abc
 | 
						|
    abc\x{123}
 | 
						|
 0: abc\x{123}
 | 
						|
    \x{660}abc   
 | 
						|
 0: abc
 | 
						|
 | 
						|
/\p{Lu}+9\p{Lu}+B\p{Lu}+b/B
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        prop Lu ++
 | 
						|
        9
 | 
						|
        prop Lu +
 | 
						|
        B
 | 
						|
        prop Lu ++
 | 
						|
        b
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/\p{^Lu}+9\p{^Lu}+B\p{^Lu}+b/B
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        notprop Lu +
 | 
						|
        9
 | 
						|
        notprop Lu ++
 | 
						|
        B
 | 
						|
        notprop Lu +
 | 
						|
        b
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/\P{Lu}+9\P{Lu}+B\P{Lu}+b/B
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        notprop Lu +
 | 
						|
        9
 | 
						|
        notprop Lu ++
 | 
						|
        B
 | 
						|
        notprop Lu +
 | 
						|
        b
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/\p{Han}+X\p{Greek}+\x{370}/B,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        prop Han ++
 | 
						|
        X
 | 
						|
        prop Greek +
 | 
						|
        \x{370}
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/\p{Xan}+!\p{Xan}+A/B
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        prop Xan ++
 | 
						|
        !
 | 
						|
        prop Xan +
 | 
						|
        A
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/\p{Xsp}+!\p{Xsp}\t/B
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        prop Xsp ++
 | 
						|
        !
 | 
						|
        prop Xsp
 | 
						|
        \x09
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/\p{Xps}+!\p{Xps}\t/B
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        prop Xps ++
 | 
						|
        !
 | 
						|
        prop Xps
 | 
						|
        \x09
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/\p{Xwd}+!\p{Xwd}_/B
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        prop Xwd ++
 | 
						|
        !
 | 
						|
        prop Xwd
 | 
						|
        _
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/A+\p{N}A+\dB+\p{N}*B+\d*/B,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        A++
 | 
						|
        prop N
 | 
						|
        A++
 | 
						|
        prop Nd
 | 
						|
        B+
 | 
						|
        prop N *+
 | 
						|
        B++
 | 
						|
        prop Nd *+
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
# These behaved oddly in Perl, so they are kept in this test 
 | 
						|
 | 
						|
/(\x{23a}\x{23a}\x{23a})?\1/i,utf
 | 
						|
\= Expect no match
 | 
						|
    \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}
 | 
						|
No match
 | 
						|
 | 
						|
/(ȺȺȺ)?\1/i,utf
 | 
						|
\= Expect no match
 | 
						|
    ȺȺȺⱥⱥ
 | 
						|
No match
 | 
						|
 | 
						|
/(\x{23a}\x{23a}\x{23a})?\1/i,utf
 | 
						|
    \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
 | 
						|
 0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
 | 
						|
 1: \x{23a}\x{23a}\x{23a}
 | 
						|
 | 
						|
/(ȺȺȺ)?\1/i,utf
 | 
						|
    ȺȺȺⱥⱥⱥ
 | 
						|
 0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
 | 
						|
 1: \x{23a}\x{23a}\x{23a}
 | 
						|
 | 
						|
/(\x{23a}\x{23a}\x{23a})\1/i,utf
 | 
						|
\= Expect no match
 | 
						|
    \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}
 | 
						|
No match
 | 
						|
 | 
						|
/(ȺȺȺ)\1/i,utf
 | 
						|
\= Expect no match
 | 
						|
    ȺȺȺⱥⱥ
 | 
						|
No match
 | 
						|
 | 
						|
/(\x{23a}\x{23a}\x{23a})\1/i,utf
 | 
						|
    \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
 | 
						|
 0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
 | 
						|
 1: \x{23a}\x{23a}\x{23a}
 | 
						|
 | 
						|
/(ȺȺȺ)\1/i,utf
 | 
						|
    ȺȺȺⱥⱥⱥ
 | 
						|
 0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
 | 
						|
 1: \x{23a}\x{23a}\x{23a}
 | 
						|
 | 
						|
/(\x{2c65}\x{2c65})\1/i,utf
 | 
						|
    \x{2c65}\x{2c65}\x{23a}\x{23a}
 | 
						|
 0: \x{2c65}\x{2c65}\x{23a}\x{23a}
 | 
						|
 1: \x{2c65}\x{2c65}
 | 
						|
    
 | 
						|
/(ⱥⱥ)\1/i,utf
 | 
						|
    ⱥⱥȺȺ 
 | 
						|
 0: \x{2c65}\x{2c65}\x{23a}\x{23a}
 | 
						|
 1: \x{2c65}\x{2c65}
 | 
						|
    
 | 
						|
/(\x{23a}\x{23a}\x{23a})\1Y/i,utf
 | 
						|
    X\x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}YZ
 | 
						|
 0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}Y
 | 
						|
 1: \x{23a}\x{23a}\x{23a}
 | 
						|
 | 
						|
/(\x{2c65}\x{2c65})\1Y/i,utf
 | 
						|
    X\x{2c65}\x{2c65}\x{23a}\x{23a}YZ
 | 
						|
 0: \x{2c65}\x{2c65}\x{23a}\x{23a}Y
 | 
						|
 1: \x{2c65}\x{2c65}
 | 
						|
 | 
						|
# These scripts weren't yet in Perl when I added Unicode 6.0.0 to PCRE 
 | 
						|
 | 
						|
/^[\p{Batak}]/utf
 | 
						|
    \x{1bc0}
 | 
						|
 0: \x{1bc0}
 | 
						|
    \x{1bff}
 | 
						|
 0: \x{1bff}
 | 
						|
\= Expect no match
 | 
						|
    \x{1bf4}
 | 
						|
No match
 | 
						|
    
 | 
						|
/^[\p{Brahmi}]/utf
 | 
						|
    \x{11000}
 | 
						|
 0: \x{11000}
 | 
						|
    \x{1106f}
 | 
						|
 0: \x{1106f}
 | 
						|
\= Expect no match
 | 
						|
    \x{1104e}
 | 
						|
No match
 | 
						|
    
 | 
						|
/^[\p{Mandaic}]/utf
 | 
						|
    \x{840}
 | 
						|
 0: \x{840}
 | 
						|
    \x{85e}
 | 
						|
 0: \x{85e}
 | 
						|
\= Expect no match
 | 
						|
    \x{85c}
 | 
						|
No match
 | 
						|
    \x{85d}    
 | 
						|
No match
 | 
						|
 | 
						|
/(\X*)(.)/s,utf
 | 
						|
    A\x{300}
 | 
						|
 0: A
 | 
						|
 1: 
 | 
						|
 2: A
 | 
						|
 | 
						|
/^S(\X*)e(\X*)$/utf
 | 
						|
    Stéréo
 | 
						|
 0: Ste\x{301}re\x{301}o
 | 
						|
 1: te\x{301}r
 | 
						|
 2: \x{301}o
 | 
						|
    
 | 
						|
/^\X/utf
 | 
						|
    ́réo
 | 
						|
 0: \x{301}
 | 
						|
 | 
						|
/^a\X41z/alt_bsux,allow_empty_class,match_unset_backref,dupnames
 | 
						|
    aX41z
 | 
						|
 0: aX41z
 | 
						|
\= Expect no match
 | 
						|
    aAz
 | 
						|
No match
 | 
						|
 | 
						|
/\X/
 | 
						|
    a\=ps
 | 
						|
 0: a
 | 
						|
    a\=ph
 | 
						|
Partial match: a
 | 
						|
 | 
						|
/\Xa/
 | 
						|
    aa\=ps
 | 
						|
 0: aa
 | 
						|
    aa\=ph
 | 
						|
 0: aa
 | 
						|
 | 
						|
/\X{2}/
 | 
						|
    aa\=ps
 | 
						|
 0: aa
 | 
						|
    aa\=ph
 | 
						|
Partial match: aa
 | 
						|
 | 
						|
/\X+a/
 | 
						|
    a\=ps
 | 
						|
Partial match: a
 | 
						|
    aa\=ps
 | 
						|
 0: aa
 | 
						|
    aa\=ph
 | 
						|
Partial match: aa
 | 
						|
 | 
						|
/\X+?a/
 | 
						|
    a\=ps
 | 
						|
Partial match: a
 | 
						|
    ab\=ps
 | 
						|
Partial match: ab
 | 
						|
    aa\=ps
 | 
						|
 0: aa
 | 
						|
    aa\=ph
 | 
						|
 0: aa
 | 
						|
    aba\=ps
 | 
						|
 0: aba
 | 
						|
    
 | 
						|
# These Unicode 6.1.0 scripts are not known to Perl.  
 | 
						|
 | 
						|
/\p{Chakma}\d/utf,ucp
 | 
						|
    \x{11100}\x{1113c}
 | 
						|
 0: \x{11100}\x{1113c}
 | 
						|
 | 
						|
/\p{Takri}\d/utf,ucp
 | 
						|
    \x{11680}\x{116c0}
 | 
						|
 0: \x{11680}\x{116c0}
 | 
						|
 | 
						|
/^\X/utf
 | 
						|
    A\=ps
 | 
						|
 0: A
 | 
						|
    A\=ph
 | 
						|
Partial match: A
 | 
						|
    A\x{300}\x{301}\=ps
 | 
						|
 0: A\x{300}\x{301}
 | 
						|
    A\x{300}\x{301}\=ph
 | 
						|
Partial match: A\x{300}\x{301}
 | 
						|
    A\x{301}\=ps
 | 
						|
 0: A\x{301}
 | 
						|
    A\x{301}\=ph
 | 
						|
Partial match: A\x{301}
 | 
						|
    
 | 
						|
/^\X{2,3}/utf
 | 
						|
    A\=ps
 | 
						|
Partial match: A
 | 
						|
    A\=ph
 | 
						|
Partial match: A
 | 
						|
    AA\=ps
 | 
						|
 0: AA
 | 
						|
    AA\=ph
 | 
						|
Partial match: AA
 | 
						|
    A\x{300}\x{301}\=ps
 | 
						|
Partial match: A\x{300}\x{301}
 | 
						|
    A\x{300}\x{301}\=ph
 | 
						|
Partial match: A\x{300}\x{301}
 | 
						|
    A\x{300}\x{301}A\x{300}\x{301}\=ps
 | 
						|
 0: A\x{300}\x{301}A\x{300}\x{301}
 | 
						|
    A\x{300}\x{301}A\x{300}\x{301}\=ph
 | 
						|
Partial match: A\x{300}\x{301}A\x{300}\x{301}
 | 
						|
 | 
						|
/^\X{2}/utf
 | 
						|
    AA\=ps
 | 
						|
 0: AA
 | 
						|
    AA\=ph
 | 
						|
Partial match: AA
 | 
						|
    A\x{300}\x{301}A\x{300}\x{301}\=ps
 | 
						|
 0: A\x{300}\x{301}A\x{300}\x{301}
 | 
						|
    A\x{300}\x{301}A\x{300}\x{301}\=ph
 | 
						|
Partial match: A\x{300}\x{301}A\x{300}\x{301}
 | 
						|
    
 | 
						|
/^\X+/utf
 | 
						|
    AA\=ps
 | 
						|
 0: AA
 | 
						|
    AA\=ph
 | 
						|
Partial match: AA
 | 
						|
 | 
						|
/^\X+?Z/utf
 | 
						|
    AA\=ps
 | 
						|
Partial match: AA
 | 
						|
    AA\=ph
 | 
						|
Partial match: AA
 | 
						|
 | 
						|
/A\x{3a3}B/IBi,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
     /i A
 | 
						|
        clist 03a3 03c2 03c3
 | 
						|
     /i B
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
Capturing subpattern count = 0
 | 
						|
Options: caseless utf
 | 
						|
First code unit = 'A' (caseless)
 | 
						|
Last code unit = 'B' (caseless)
 | 
						|
Subject length lower bound = 3
 | 
						|
 | 
						|
/[\x{3a3}]/Bi,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        clist 03a3 03c2 03c3
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/[^\x{3a3}]/Bi,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        not clist 03a3 03c2 03c3
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/[\x{3a3}]+/Bi,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        clist 03a3 03c2 03c3 ++
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/[^\x{3a3}]+/Bi,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        not clist 03a3 03c2 03c3 ++
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/a*\x{3a3}/Bi,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
     /i a*+
 | 
						|
        clist 03a3 03c2 03c3
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/\x{3a3}+a/Bi,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        clist 03a3 03c2 03c3 ++
 | 
						|
     /i a
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/\x{3a3}*\x{3c2}/Bi,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        clist 03a3 03c2 03c3 *
 | 
						|
        clist 03a3 03c2 03c3
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/\x{3a3}{3}/i,utf,aftertext
 | 
						|
    \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2}
 | 
						|
 0: \x{3a3}\x{3c3}\x{3c2}
 | 
						|
 0+ \x{3a3}\x{3c3}\x{3c2}
 | 
						|
 | 
						|
/\x{3a3}{2,4}/i,utf,aftertext
 | 
						|
    \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2}
 | 
						|
 0: \x{3a3}\x{3c3}\x{3c2}\x{3a3}
 | 
						|
 0+ \x{3c3}\x{3c2}
 | 
						|
 | 
						|
/\x{3a3}{2,4}?/i,utf,aftertext
 | 
						|
    \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2}
 | 
						|
 0: \x{3a3}\x{3c3}
 | 
						|
 0+ \x{3c2}\x{3a3}\x{3c3}\x{3c2}
 | 
						|
 | 
						|
/\x{3a3}+./i,utf,aftertext
 | 
						|
    \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2}
 | 
						|
 0: \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2}
 | 
						|
 0+ 
 | 
						|
 | 
						|
/\x{3a3}++./i,utf,aftertext
 | 
						|
\= Expect no match
 | 
						|
    \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2}
 | 
						|
No match
 | 
						|
 | 
						|
/\x{3a3}*\x{3c2}/Bi,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        clist 03a3 03c2 03c3 *
 | 
						|
        clist 03a3 03c2 03c3
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/[^\x{3a3}]*\x{3c2}/Bi,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        not clist 03a3 03c2 03c3 *+
 | 
						|
        clist 03a3 03c2 03c3
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/[^a]*\x{3c2}/Bi,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
     /i [^a]*
 | 
						|
        clist 03a3 03c2 03c3
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/ist/Bi,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
     /i i
 | 
						|
        clist 0053 0073 017f
 | 
						|
     /i t
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
\= Expect no match
 | 
						|
    ikt
 | 
						|
No match
 | 
						|
 | 
						|
/is+t/i,utf
 | 
						|
    iSs\x{17f}t
 | 
						|
 0: iSs\x{17f}t
 | 
						|
\= Expect no match
 | 
						|
    ikt
 | 
						|
No match
 | 
						|
 | 
						|
/is+?t/i,utf
 | 
						|
\= Expect no match
 | 
						|
    ikt
 | 
						|
No match
 | 
						|
 | 
						|
/is?t/i,utf
 | 
						|
\= Expect no match
 | 
						|
    ikt
 | 
						|
No match
 | 
						|
 | 
						|
/is{2}t/i,utf
 | 
						|
\= Expect no match
 | 
						|
    iskt
 | 
						|
No match
 | 
						|
    
 | 
						|
# This property is a PCRE special 
 | 
						|
 | 
						|
/^\p{Xuc}/utf
 | 
						|
    $abc
 | 
						|
 0: $
 | 
						|
    @abc
 | 
						|
 0: @
 | 
						|
    `abc
 | 
						|
 0: `
 | 
						|
    \x{1234}abc
 | 
						|
 0: \x{1234}
 | 
						|
\= Expect no match
 | 
						|
    abc     
 | 
						|
No match
 | 
						|
 | 
						|
/^\p{Xuc}+/utf
 | 
						|
    $@`\x{a0}\x{1234}\x{e000}**
 | 
						|
 0: $@`\x{a0}\x{1234}\x{e000}
 | 
						|
\= Expect no match
 | 
						|
    \x{9f}
 | 
						|
No match
 | 
						|
 | 
						|
/^\p{Xuc}+?/utf
 | 
						|
    $@`\x{a0}\x{1234}\x{e000}**
 | 
						|
 0: $
 | 
						|
\= Expect no match
 | 
						|
    \x{9f}
 | 
						|
No match
 | 
						|
 | 
						|
/^\p{Xuc}+?\*/utf
 | 
						|
    $@`\x{a0}\x{1234}\x{e000}**
 | 
						|
 0: $@`\x{a0}\x{1234}\x{e000}*
 | 
						|
\= Expect no match
 | 
						|
    \x{9f}
 | 
						|
No match
 | 
						|
 | 
						|
/^\p{Xuc}++/utf
 | 
						|
    $@`\x{a0}\x{1234}\x{e000}**
 | 
						|
 0: $@`\x{a0}\x{1234}\x{e000}
 | 
						|
\= Expect no match
 | 
						|
    \x{9f}
 | 
						|
No match
 | 
						|
 | 
						|
/^\p{Xuc}{3,5}/utf
 | 
						|
    $@`\x{a0}\x{1234}\x{e000}**
 | 
						|
 0: $@`\x{a0}\x{1234}
 | 
						|
\= Expect no match
 | 
						|
    \x{9f}
 | 
						|
No match
 | 
						|
 | 
						|
/^\p{Xuc}{3,5}?/utf
 | 
						|
    $@`\x{a0}\x{1234}\x{e000}**
 | 
						|
 0: $@`
 | 
						|
\= Expect no match
 | 
						|
    \x{9f}
 | 
						|
No match
 | 
						|
 | 
						|
/^[\p{Xuc}]/utf
 | 
						|
    $@`\x{a0}\x{1234}\x{e000}**
 | 
						|
 0: $
 | 
						|
\= Expect no match
 | 
						|
    \x{9f}
 | 
						|
No match
 | 
						|
 | 
						|
/^[\p{Xuc}]+/utf
 | 
						|
    $@`\x{a0}\x{1234}\x{e000}**
 | 
						|
 0: $@`\x{a0}\x{1234}\x{e000}
 | 
						|
\= Expect no match
 | 
						|
    \x{9f}
 | 
						|
No match
 | 
						|
 | 
						|
/^\P{Xuc}/utf
 | 
						|
    abc
 | 
						|
 0: a
 | 
						|
\= Expect no match
 | 
						|
    $abc
 | 
						|
No match
 | 
						|
    @abc
 | 
						|
No match
 | 
						|
    `abc
 | 
						|
No match
 | 
						|
    \x{1234}abc
 | 
						|
No match
 | 
						|
 | 
						|
/^[\P{Xuc}]/utf
 | 
						|
    abc
 | 
						|
 0: a
 | 
						|
\= Expect no match
 | 
						|
    $abc
 | 
						|
No match
 | 
						|
    @abc
 | 
						|
No match
 | 
						|
    `abc
 | 
						|
No match
 | 
						|
    \x{1234}abc
 | 
						|
No match
 | 
						|
    
 | 
						|
# Some auto-possessification tests 
 | 
						|
 | 
						|
/\pN+\z/B
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        prop N ++
 | 
						|
        \z
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/\PN+\z/B
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        notprop N ++
 | 
						|
        \z
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/\pN+/B
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        prop N ++
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/\PN+/B
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        notprop N ++
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/\p{Any}+\p{Any} \p{Any}+\P{Any} \p{Any}+\p{L&} \p{Any}+\p{L} \p{Any}+\p{Lu} \p{Any}+\p{Han} \p{Any}+\p{Xan} \p{Any}+\p{Xsp} \p{Any}+\p{Xps} \p{Xwd}+\p{Any} \p{Any}+\p{Xuc}/Bx,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        prop Any +
 | 
						|
        prop Any
 | 
						|
        prop Any +
 | 
						|
        notprop Any
 | 
						|
        prop Any +
 | 
						|
        prop L&
 | 
						|
        prop Any +
 | 
						|
        prop L
 | 
						|
        prop Any +
 | 
						|
        prop Lu
 | 
						|
        prop Any +
 | 
						|
        prop Han
 | 
						|
        prop Any +
 | 
						|
        prop Xan
 | 
						|
        prop Any +
 | 
						|
        prop Xsp
 | 
						|
        prop Any +
 | 
						|
        prop Xps
 | 
						|
        prop Xwd +
 | 
						|
        prop Any
 | 
						|
        prop Any +
 | 
						|
        prop Xuc
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/\p{L&}+\p{Any} \p{L&}+\p{L&} \P{L&}+\p{L&} \p{L&}+\p{L} \p{L&}+\p{Lu} \p{L&}+\p{Han} \p{L&}+\p{Xan} \p{L&}+\P{Xan} \p{L&}+\p{Xsp} \p{L&}+\p{Xps} \p{Xwd}+\p{L&} \p{L&}+\p{Xuc}/Bx,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        prop L& +
 | 
						|
        prop Any
 | 
						|
        prop L& +
 | 
						|
        prop L&
 | 
						|
        notprop L& ++
 | 
						|
        prop L&
 | 
						|
        prop L& +
 | 
						|
        prop L
 | 
						|
        prop L& +
 | 
						|
        prop Lu
 | 
						|
        prop L& +
 | 
						|
        prop Han
 | 
						|
        prop L& +
 | 
						|
        prop Xan
 | 
						|
        prop L& ++
 | 
						|
        notprop Xan
 | 
						|
        prop L& ++
 | 
						|
        prop Xsp
 | 
						|
        prop L& ++
 | 
						|
        prop Xps
 | 
						|
        prop Xwd +
 | 
						|
        prop L&
 | 
						|
        prop L& +
 | 
						|
        prop Xuc
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/\p{N}+\p{Any} \p{N}+\p{L&} \p{N}+\p{L} \p{N}+\P{L} \p{N}+\P{N} \p{N}+\p{Lu} \p{N}+\p{Han} \p{N}+\p{Xan} \p{N}+\p{Xsp} \p{N}+\p{Xps} \p{Xwd}+\p{N} \p{N}+\p{Xuc}/Bx,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        prop N +
 | 
						|
        prop Any
 | 
						|
        prop N +
 | 
						|
        prop L&
 | 
						|
        prop N ++
 | 
						|
        prop L
 | 
						|
        prop N +
 | 
						|
        notprop L
 | 
						|
        prop N ++
 | 
						|
        notprop N
 | 
						|
        prop N ++
 | 
						|
        prop Lu
 | 
						|
        prop N +
 | 
						|
        prop Han
 | 
						|
        prop N +
 | 
						|
        prop Xan
 | 
						|
        prop N ++
 | 
						|
        prop Xsp
 | 
						|
        prop N ++
 | 
						|
        prop Xps
 | 
						|
        prop Xwd +
 | 
						|
        prop N
 | 
						|
        prop N +
 | 
						|
        prop Xuc
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/\p{Lu}+\p{Any} \p{Lu}+\p{L&} \p{Lu}+\p{L} \p{Lu}+\p{Lu} \P{Lu}+\p{Lu} \p{Lu}+\p{Nd} \p{Lu}+\P{Nd} \p{Lu}+\p{Han} \p{Lu}+\p{Xan} \p{Lu}+\p{Xsp} \p{Lu}+\p{Xps} \p{Xwd}+\p{Lu} \p{Lu}+\p{Xuc}/Bx,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        prop Lu +
 | 
						|
        prop Any
 | 
						|
        prop Lu +
 | 
						|
        prop L&
 | 
						|
        prop Lu +
 | 
						|
        prop L
 | 
						|
        prop Lu +
 | 
						|
        prop Lu
 | 
						|
        notprop Lu ++
 | 
						|
        prop Lu
 | 
						|
        prop Lu ++
 | 
						|
        prop Nd
 | 
						|
        prop Lu +
 | 
						|
        notprop Nd
 | 
						|
        prop Lu +
 | 
						|
        prop Han
 | 
						|
        prop Lu +
 | 
						|
        prop Xan
 | 
						|
        prop Lu ++
 | 
						|
        prop Xsp
 | 
						|
        prop Lu ++
 | 
						|
        prop Xps
 | 
						|
        prop Xwd +
 | 
						|
        prop Lu
 | 
						|
        prop Lu +
 | 
						|
        prop Xuc
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/\p{Han}+\p{Lu} \p{Han}+\p{L&} \p{Han}+\p{L} \p{Han}+\p{Lu} \p{Han}+\p{Arabic} \p{Arabic}+\p{Arabic} \p{Han}+\p{Xan} \p{Han}+\p{Xsp} \p{Han}+\p{Xps} \p{Xwd}+\p{Han} \p{Han}+\p{Xuc}/Bx,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        prop Han +
 | 
						|
        prop Lu
 | 
						|
        prop Han +
 | 
						|
        prop L&
 | 
						|
        prop Han +
 | 
						|
        prop L
 | 
						|
        prop Han +
 | 
						|
        prop Lu
 | 
						|
        prop Han ++
 | 
						|
        prop Arabic
 | 
						|
        prop Arabic +
 | 
						|
        prop Arabic
 | 
						|
        prop Han +
 | 
						|
        prop Xan
 | 
						|
        prop Han +
 | 
						|
        prop Xsp
 | 
						|
        prop Han +
 | 
						|
        prop Xps
 | 
						|
        prop Xwd +
 | 
						|
        prop Han
 | 
						|
        prop Han +
 | 
						|
        prop Xuc
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/\p{Xan}+\p{Any} \p{Xan}+\p{L&} \P{Xan}+\p{L&} \p{Xan}+\p{L} \p{Xan}+\p{Lu} \p{Xan}+\p{Han} \p{Xan}+\p{Xan} \p{Xan}+\P{Xan} \p{Xan}+\p{Xsp} \p{Xan}+\p{Xps} \p{Xwd}+\p{Xan} \p{Xan}+\p{Xuc}/Bx,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        prop Xan +
 | 
						|
        prop Any
 | 
						|
        prop Xan +
 | 
						|
        prop L&
 | 
						|
        notprop Xan ++
 | 
						|
        prop L&
 | 
						|
        prop Xan +
 | 
						|
        prop L
 | 
						|
        prop Xan +
 | 
						|
        prop Lu
 | 
						|
        prop Xan +
 | 
						|
        prop Han
 | 
						|
        prop Xan +
 | 
						|
        prop Xan
 | 
						|
        prop Xan ++
 | 
						|
        notprop Xan
 | 
						|
        prop Xan ++
 | 
						|
        prop Xsp
 | 
						|
        prop Xan ++
 | 
						|
        prop Xps
 | 
						|
        prop Xwd +
 | 
						|
        prop Xan
 | 
						|
        prop Xan +
 | 
						|
        prop Xuc
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/\p{Xsp}+\p{Any} \p{Xsp}+\p{L&} \p{Xsp}+\p{L} \p{Xsp}+\p{Lu} \p{Xsp}+\p{Han} \p{Xsp}+\p{Xan} \p{Xsp}+\p{Xsp} \P{Xsp}+\p{Xsp} \p{Xsp}+\p{Xps} \p{Xwd}+\p{Xsp} \p{Xsp}+\p{Xuc}/Bx,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        prop Xsp +
 | 
						|
        prop Any
 | 
						|
        prop Xsp ++
 | 
						|
        prop L&
 | 
						|
        prop Xsp ++
 | 
						|
        prop L
 | 
						|
        prop Xsp ++
 | 
						|
        prop Lu
 | 
						|
        prop Xsp +
 | 
						|
        prop Han
 | 
						|
        prop Xsp ++
 | 
						|
        prop Xan
 | 
						|
        prop Xsp +
 | 
						|
        prop Xsp
 | 
						|
        notprop Xsp ++
 | 
						|
        prop Xsp
 | 
						|
        prop Xsp +
 | 
						|
        prop Xps
 | 
						|
        prop Xwd ++
 | 
						|
        prop Xsp
 | 
						|
        prop Xsp +
 | 
						|
        prop Xuc
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/\p{Xwd}+\p{Any} \p{Xwd}+\p{L&} \p{Xwd}+\p{L} \p{Xwd}+\p{Lu} \p{Xwd}+\p{Han} \p{Xwd}+\p{Xan} \p{Xwd}+\p{Xsp} \p{Xwd}+\p{Xps} \p{Xwd}+\p{Xwd} \p{Xwd}+\P{Xwd} \p{Xwd}+\p{Xuc}/Bx,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        prop Xwd +
 | 
						|
        prop Any
 | 
						|
        prop Xwd +
 | 
						|
        prop L&
 | 
						|
        prop Xwd +
 | 
						|
        prop L
 | 
						|
        prop Xwd +
 | 
						|
        prop Lu
 | 
						|
        prop Xwd +
 | 
						|
        prop Han
 | 
						|
        prop Xwd +
 | 
						|
        prop Xan
 | 
						|
        prop Xwd ++
 | 
						|
        prop Xsp
 | 
						|
        prop Xwd ++
 | 
						|
        prop Xps
 | 
						|
        prop Xwd +
 | 
						|
        prop Xwd
 | 
						|
        prop Xwd ++
 | 
						|
        notprop Xwd
 | 
						|
        prop Xwd +
 | 
						|
        prop Xuc
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/\p{Xuc}+\p{Any} \p{Xuc}+\p{L&} \p{Xuc}+\p{L} \p{Xuc}+\p{Lu} \p{Xuc}+\p{Han} \p{Xuc}+\p{Xan} \p{Xuc}+\p{Xsp} \p{Xuc}+\p{Xps} \p{Xwd}+\p{Xuc} \p{Xuc}+\p{Xuc} \p{Xuc}+\P{Xuc}/Bx,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        prop Xuc +
 | 
						|
        prop Any
 | 
						|
        prop Xuc +
 | 
						|
        prop L&
 | 
						|
        prop Xuc +
 | 
						|
        prop L
 | 
						|
        prop Xuc +
 | 
						|
        prop Lu
 | 
						|
        prop Xuc +
 | 
						|
        prop Han
 | 
						|
        prop Xuc +
 | 
						|
        prop Xan
 | 
						|
        prop Xuc +
 | 
						|
        prop Xsp
 | 
						|
        prop Xuc +
 | 
						|
        prop Xps
 | 
						|
        prop Xwd +
 | 
						|
        prop Xuc
 | 
						|
        prop Xuc +
 | 
						|
        prop Xuc
 | 
						|
        prop Xuc ++
 | 
						|
        notprop Xuc
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/\p{N}+\p{Ll} \p{N}+\p{Nd} \p{N}+\P{Nd}/Bx,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        prop N ++
 | 
						|
        prop Ll
 | 
						|
        prop N +
 | 
						|
        prop Nd
 | 
						|
        prop N +
 | 
						|
        notprop Nd
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/\p{Xan}+\p{L} \p{Xan}+\p{N} \p{Xan}+\p{C} \p{Xan}+\P{L} \P{Xan}+\p{N} \p{Xan}+\P{C}/Bx,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        prop Xan +
 | 
						|
        prop L
 | 
						|
        prop Xan +
 | 
						|
        prop N
 | 
						|
        prop Xan ++
 | 
						|
        prop C
 | 
						|
        prop Xan +
 | 
						|
        notprop L
 | 
						|
        notprop Xan ++
 | 
						|
        prop N
 | 
						|
        prop Xan +
 | 
						|
        notprop C
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/\p{L}+\p{Xan} \p{N}+\p{Xan} \p{C}+\p{Xan} \P{L}+\p{Xan} \p{N}+\p{Xan} \P{C}+\p{Xan} \p{L}+\P{Xan}/Bx,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        prop L +
 | 
						|
        prop Xan
 | 
						|
        prop N +
 | 
						|
        prop Xan
 | 
						|
        prop C ++
 | 
						|
        prop Xan
 | 
						|
        notprop L +
 | 
						|
        prop Xan
 | 
						|
        prop N +
 | 
						|
        prop Xan
 | 
						|
        notprop C +
 | 
						|
        prop Xan
 | 
						|
        prop L ++
 | 
						|
        notprop Xan
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/\p{Xan}+\p{Lu} \p{Xan}+\p{Nd} \p{Xan}+\p{Cc} \p{Xan}+\P{Ll} \P{Xan}+\p{No} \p{Xan}+\P{Cf}/Bx,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        prop Xan +
 | 
						|
        prop Lu
 | 
						|
        prop Xan +
 | 
						|
        prop Nd
 | 
						|
        prop Xan ++
 | 
						|
        prop Cc
 | 
						|
        prop Xan +
 | 
						|
        notprop Ll
 | 
						|
        notprop Xan ++
 | 
						|
        prop No
 | 
						|
        prop Xan +
 | 
						|
        notprop Cf
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/\p{Lu}+\p{Xan} \p{Nd}+\p{Xan} \p{Cs}+\p{Xan} \P{Lt}+\p{Xan} \p{Nl}+\p{Xan} \P{Cc}+\p{Xan} \p{Lt}+\P{Xan}/Bx,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        prop Lu +
 | 
						|
        prop Xan
 | 
						|
        prop Nd +
 | 
						|
        prop Xan
 | 
						|
        prop Cs ++
 | 
						|
        prop Xan
 | 
						|
        notprop Lt +
 | 
						|
        prop Xan
 | 
						|
        prop Nl +
 | 
						|
        prop Xan
 | 
						|
        notprop Cc +
 | 
						|
        prop Xan
 | 
						|
        prop Lt ++
 | 
						|
        notprop Xan
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/\w+\p{P} \w+\p{Po} \w+\s \p{Xan}+\s \s+\p{Xan} \s+\w/Bx,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        prop Xwd +
 | 
						|
        prop P
 | 
						|
        prop Xwd +
 | 
						|
        prop Po
 | 
						|
        prop Xwd ++
 | 
						|
        prop Xsp
 | 
						|
        prop Xan ++
 | 
						|
        prop Xsp
 | 
						|
        prop Xsp ++
 | 
						|
        prop Xan
 | 
						|
        prop Xsp ++
 | 
						|
        prop Xwd
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/\w+\P{P} \W+\p{Po} \w+\S \P{Xan}+\s \s+\P{Xan} \s+\W/Bx,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        prop Xwd +
 | 
						|
        notprop P
 | 
						|
        notprop Xwd +
 | 
						|
        prop Po
 | 
						|
        prop Xwd +
 | 
						|
        notprop Xsp
 | 
						|
        notprop Xan +
 | 
						|
        prop Xsp
 | 
						|
        prop Xsp +
 | 
						|
        notprop Xan
 | 
						|
        prop Xsp +
 | 
						|
        notprop Xwd
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/\w+\p{Po} \w+\p{Pc} \W+\p{Po} \W+\p{Pc} \w+\P{Po} \w+\P{Pc}/Bx,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        prop Xwd +
 | 
						|
        prop Po
 | 
						|
        prop Xwd ++
 | 
						|
        prop Pc
 | 
						|
        notprop Xwd +
 | 
						|
        prop Po
 | 
						|
        notprop Xwd +
 | 
						|
        prop Pc
 | 
						|
        prop Xwd +
 | 
						|
        notprop Po
 | 
						|
        prop Xwd +
 | 
						|
        notprop Pc
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/\p{Nl}+\p{Xan} \P{Nl}+\p{Xan} \p{Nl}+\P{Xan} \P{Nl}+\P{Xan}/Bx,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        prop Nl +
 | 
						|
        prop Xan
 | 
						|
        notprop Nl +
 | 
						|
        prop Xan
 | 
						|
        prop Nl ++
 | 
						|
        notprop Xan
 | 
						|
        notprop Nl +
 | 
						|
        notprop Xan
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/\p{Xan}+\p{Nl} \P{Xan}+\p{Nl} \p{Xan}+\P{Nl} \P{Xan}+\P{Nl}/Bx,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        prop Xan +
 | 
						|
        prop Nl
 | 
						|
        notprop Xan ++
 | 
						|
        prop Nl
 | 
						|
        prop Xan +
 | 
						|
        notprop Nl
 | 
						|
        notprop Xan +
 | 
						|
        notprop Nl
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/\p{Xan}+\p{Nd} \P{Xan}+\p{Nd} \p{Xan}+\P{Nd} \P{Xan}+\P{Nd}/Bx,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        prop Xan +
 | 
						|
        prop Nd
 | 
						|
        notprop Xan ++
 | 
						|
        prop Nd
 | 
						|
        prop Xan +
 | 
						|
        notprop Nd
 | 
						|
        notprop Xan +
 | 
						|
        notprop Nd
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
# End auto-possessification tests  
 | 
						|
 | 
						|
/\w+/B,utf,ucp,auto_callout
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        Callout 255 0 3
 | 
						|
        prop Xwd ++
 | 
						|
        Callout 255 3 0
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
    abcd
 | 
						|
--->abcd
 | 
						|
 +0 ^        \w+
 | 
						|
 +3 ^   ^    
 | 
						|
 0: abcd
 | 
						|
 | 
						|
/[\p{N}]?+/B,no_auto_possess
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [\p{N}]?+
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/[\p{L}ab]{2,3}+/B,no_auto_possess
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [ab\p{L}]{2,3}+
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/\D+\X \d+\X \S+\X \s+\X \W+\X \w+\X \R+\X \H+\X \h+\X \V+\X \v+\X a+\X \n+\X .+\X/Bx
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        \D+
 | 
						|
        extuni
 | 
						|
        \d+
 | 
						|
        extuni
 | 
						|
        \S+
 | 
						|
        extuni
 | 
						|
        \s+
 | 
						|
        extuni
 | 
						|
        \W+
 | 
						|
        extuni
 | 
						|
        \w+
 | 
						|
        extuni
 | 
						|
        \R+
 | 
						|
        extuni
 | 
						|
        \H+
 | 
						|
        extuni
 | 
						|
        \h+
 | 
						|
        extuni
 | 
						|
        \V+
 | 
						|
        extuni
 | 
						|
        \v+
 | 
						|
        extuni
 | 
						|
        a+
 | 
						|
        extuni
 | 
						|
        \x0a+
 | 
						|
        extuni
 | 
						|
        Any+
 | 
						|
        extuni
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/.+\X/Bsx
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        AllAny+
 | 
						|
        extuni
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/\X+$/Bmx
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        extuni+
 | 
						|
     /m $
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/\X+\D \X+\d \X+\S \X+\s \X+\W \X+\w \X+. \X+\R \X+\H \X+\h \X+\V \X+\v \X+\X \X+\Z \X+\z \X+$/Bx
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        extuni+
 | 
						|
        \D
 | 
						|
        extuni+
 | 
						|
        \d
 | 
						|
        extuni+
 | 
						|
        \S
 | 
						|
        extuni+
 | 
						|
        \s
 | 
						|
        extuni+
 | 
						|
        \W
 | 
						|
        extuni+
 | 
						|
        \w
 | 
						|
        extuni+
 | 
						|
        Any
 | 
						|
        extuni+
 | 
						|
        \R
 | 
						|
        extuni+
 | 
						|
        \H
 | 
						|
        extuni+
 | 
						|
        \h
 | 
						|
        extuni+
 | 
						|
        \V
 | 
						|
        extuni+
 | 
						|
        \v
 | 
						|
        extuni+
 | 
						|
        extuni
 | 
						|
        extuni+
 | 
						|
        \Z
 | 
						|
        extuni++
 | 
						|
        \z
 | 
						|
        extuni+
 | 
						|
        $
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/\d+\s{0,5}=\s*\S?=\w{0,4}\W*/B,utf,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        prop Nd ++
 | 
						|
        prop Xsp {0,5}+
 | 
						|
        =
 | 
						|
        prop Xsp *+
 | 
						|
        notprop Xsp ?
 | 
						|
        =
 | 
						|
        prop Xwd {0,4}+
 | 
						|
        notprop Xwd *+
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/[RST]+/Bi,utf,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [R-Tr-t\x{17f}]++
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
    
 | 
						|
/[R-T]+/Bi,utf,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [R-Tr-t\x{17f}]++
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/[Q-U]+/Bi,utf,ucp
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [Q-Uq-u\x{17f}]++
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/^s?c/Iim,utf
 | 
						|
Capturing subpattern count = 0
 | 
						|
Options: caseless multiline utf
 | 
						|
First code unit at start or follows newline
 | 
						|
Last code unit = 'c' (caseless)
 | 
						|
Subject length lower bound = 1
 | 
						|
    scat
 | 
						|
 0: sc
 | 
						|
 | 
						|
/\X?abc/utf,no_start_optimize
 | 
						|
    \xff\x7f\x00\x00\x03\x00\x41\xcc\x80\x41\x{300}\x61\x62\x63\x00\=no_utf_check,offset=06
 | 
						|
 0: A\x{300}abc
 | 
						|
 | 
						|
/\x{100}\x{200}\K\x{300}/utf,startchar
 | 
						|
    \x{100}\x{200}\x{300}
 | 
						|
 0: \x{100}\x{200}\x{300}
 | 
						|
    ^^^^^^^^^^^^^^
 | 
						|
    
 | 
						|
# Test UTF characters in a substitution
 | 
						|
 | 
						|
/ábc/utf,replace=XሴZ
 | 
						|
    123ábc123
 | 
						|
 1: 123X\x{1234}Z123
 | 
						|
 | 
						|
/(?<=abc)(|def)/g,utf,replace=<$0>
 | 
						|
    123abcáyzabcdef789abcሴqr
 | 
						|
 4: 123abc<>\x{e1}yzabc<><def>789abc<>\x{1234}qr
 | 
						|
 | 
						|
/[A-`]/iB,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [A-z\x{212a}\x{17f}]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
    abcdefghijklmno
 | 
						|
 0: a
 | 
						|
 | 
						|
/(?<=\K\x{17f})/g,utf,aftertext
 | 
						|
    \x{17f}\x{17f}\x{17f}\x{17f}\x{17f}
 | 
						|
 0: \x{17f}
 | 
						|
 0+ \x{17f}\x{17f}\x{17f}\x{17f}
 | 
						|
 0: \x{17f}
 | 
						|
 0+ \x{17f}\x{17f}\x{17f}
 | 
						|
 0: \x{17f}
 | 
						|
 0+ \x{17f}\x{17f}
 | 
						|
 0: \x{17f}
 | 
						|
 0+ \x{17f}
 | 
						|
 0: \x{17f}
 | 
						|
 0+ 
 | 
						|
 | 
						|
/(?<=\K\x{17f})/altglobal,utf,aftertext
 | 
						|
    \x{17f}\x{17f}\x{17f}\x{17f}\x{17f}
 | 
						|
 0: \x{17f}
 | 
						|
 0+ \x{17f}\x{17f}\x{17f}\x{17f}
 | 
						|
 0: \x{17f}
 | 
						|
 0+ \x{17f}\x{17f}\x{17f}
 | 
						|
 0: \x{17f}
 | 
						|
 0+ \x{17f}\x{17f}
 | 
						|
 0: \x{17f}
 | 
						|
 0+ \x{17f}
 | 
						|
 0: \x{17f}
 | 
						|
 0+ 
 | 
						|
 | 
						|
"\xa\xf<(.\pZ*\P{Xwd}+^\xa8\3'3yq.::?(?J:()\xd1+!~:3'(8?:)':(?'d'(?'d'^u]!.+.+\\A\Ah(n+?9){7}+\K;(?'X'u'(?'c'(?'z'(?<y>\xb::\xf0'|\xd3(\xae?'w(z\x8?P>l)\x8?P>a)'\H\R\xd1+!!~:3'(?:h$N{26875}\W+?\\=D{2}\x89(?i:Uy0\N({2\xa(\v\x85*){y*\A(()\p{L}+?\P{^Xan}'+?\xff\+pS\?|).{;y*\A(()\p{L}+?\8}\d?1(|)(/1){7}.+[Lp{Me}].\s\xdcC*?(?(<y>))(?<!^)$C((;*?(R))+(\xbf(R))\x8a\X*?\x8a\xb\xd1^9\3*+(\xc1,\k'R'\xb4)\xcc(z\z(?J)(?'X'\x1b(\xb\xd1^9\?'3*+P{^Xan}+?\xff\+(\xc1.]k+\xb'Pm'\xb4)\xcc4f\xa7'\xd1V(?i:U,{2,2})'(?'X'))?-%--\x95$9*\4'|\xd1(\x9c''%\x94$9)#(?'R')3\x7?('P\xed7'\xa8\xb1^u\xeaw\1\0\0\(|(?1){7}.+[\p{Me}].\s\xdcC*^\x14?(?(<y>))(?<!^)$C((;*?(R*?))+(?(R)\x8a\X*?\x8a\xb\xd1^9\3*+|(\xc1,\k'R'\xb4)\xcc! z)\z(?JJ)(?'X';(\xb\xd1^9\?'3*+(\xc1.]k+\xb'Pm'\xb4))':(?'d')(?'RD'(d')|)|$)'|(?<x>\g{d});\g{x}\x11\g{d}\x81\|$((?'X'\'X'(?'W''\x92()'9'\x83*))\xba*\!?^ <){)':;\xcc4'\xd1'(?'X'28))?-%--\x95$9*\4'|\xd1((''e\x94*$9:)*#(?'R')3)\x7?('P\xed')\\x16:;()\x1e\x10*:(?<y>)\xd1+0!~:(?)'d'E:yD!\s(?'R'\x1e;\x10:U))|'\x9g!\xb0*){)\\x16:;()\x1e\x10\x87*:(?<y>)\xd1+!~:(?)'}'\d'E:yD!\s(?'R'\x1e;\x10:U))|'))|)g!\xb0*R+9{29+)#(?'P'})*?pS\{3,}\x85,{0,}l{*UTF)(\xe{7}){3722,{9,}d{2,?|))|{)\(A?&d}}{\xa,}2}){3,}7,l{)22}(,}l:7{2,4}}29\x19+)#?'P'})*v?))\x5"
 | 
						|
Failed: error 122 at offset 1227: unmatched closing parenthesis
 | 
						|
 | 
						|
/$(&.+[\p{Me}].\s\xdcC*?(?(<y>))(?<!^)$C((;*?(R))+(?(R)){0,6}?|){12\x8a\X*?\x8a\x0b\xd1^9\3*+(\xc1,\k'P'\xb4)\xcc(z\z(?JJ)(?'X'8};(\x0b\xd1^9\?'3*+(\xc1.]k+\x0b'Pm'\xb4\xcc4'\xd1'(?'X'))?-%--\x95$9*\4'|\xd1(''%\x95*$9)#(?'R')3\x07?('P\xed')\\x16:;()\x1e\x10*:(?<y>)\xd1+!~:(?)''(d'E:yD!\s(?'R'\x1e;\x10:U))|')g!\xb0*){29+))#(?'P'})*?/
 | 
						|
 | 
						|
"(*UTF)(*UCP)(.UTF).+X(\V+;\^(\D|)!999}(?(?C{7(?C')\H*\S*/^\x5\xa\\xd3\x85n?(;\D*(?m).[^mH+((*UCP)(*U:F)})(?!^)(?'"
 | 
						|
Failed: error 162 at offset 113: subpattern name expected
 | 
						|
 | 
						|
/[\pS#moq]/
 | 
						|
    =
 | 
						|
 0: =
 | 
						|
 | 
						|
/(*:a\x{12345}b\t(d\)c)xxx/utf,alt_verbnames,mark
 | 
						|
    cxxxz
 | 
						|
 0: xxx
 | 
						|
MK: a\x{12345}b\x{09}(d)c
 | 
						|
 | 
						|
/abcd/utf,replace=x\x{824}y\o{3333}z(\Q12\$34$$\x34\E5$$),substitute_extended
 | 
						|
    abcd
 | 
						|
 1: x\x{824}y\x{6db}z(12\$34$$\x345$)
 | 
						|
 | 
						|
/a(\x{e0}\x{101})(\x{c0}\x{102})/utf,replace=a\u$1\U$1\E$1\l$2\L$2\Eab\U\x{e0}\x{101}\L\x{d0}\x{160}\EDone,substitute_extended
 | 
						|
    a\x{e0}\x{101}\x{c0}\x{102}
 | 
						|
 1: a\x{c0}\x{101}\x{c0}\x{100}\x{e0}\x{101}\x{e0}\x{102}\x{e0}\x{103}ab\x{c0}\x{100}\x{f0}\x{161}Done
 | 
						|
 | 
						|
/((?<digit>\d)|(?<letter>\p{L}))/g,substitute_extended,replace=<${digit:+digit; :not digit; }${letter:+letter:not a letter}>
 | 
						|
    ab12cde
 | 
						|
 7: <not digit; letter><not digit; letter><digit; not a letter><digit; not a letter><not digit; letter><not digit; letter><not digit; letter>
 | 
						|
 | 
						|
/(*UCP)(*UTF)[[:>:]]X/B
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        \b
 | 
						|
        AssertB
 | 
						|
        Reverse
 | 
						|
        prop Xwd
 | 
						|
        Ket
 | 
						|
        X
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/abc/utf,replace=xyz
 | 
						|
    abc\=zero_terminate
 | 
						|
 1: xyz
 | 
						|
 | 
						|
/a[[:punct:]b]/ucp,bincode
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        a
 | 
						|
        [b[:punct:]]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/a[[:punct:]b]/utf,ucp,bincode
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        a
 | 
						|
        [b[:punct:]]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/a[b[:punct:]]/utf,ucp,bincode
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        a
 | 
						|
        [b[:punct:]]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/[[:^ascii:]]/utf,ucp,bincode
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [\x80-\xff] (neg)
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/[[:^ascii:]\w]/utf,ucp,bincode
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [\x80-\xff\p{Xwd}\x{100}-\x{10ffff}]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/[\w[:^ascii:]]/utf,ucp,bincode
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [\x80-\xff\p{Xwd}\x{100}-\x{10ffff}]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/[^[:ascii:]\W]/utf,ucp,bincode
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [^\x00-\x7f\P{Xwd}]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
    \x{de}
 | 
						|
 0: \x{de}
 | 
						|
    \x{200}
 | 
						|
 0: \x{200}
 | 
						|
\= Expect no match     
 | 
						|
    \x{300}
 | 
						|
No match
 | 
						|
    \x{37e}
 | 
						|
No match
 | 
						|
 | 
						|
/[[:^ascii:]a]/utf,ucp,bincode
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        [a\x80-\xff] (neg)
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/L(?#(|++<!(2)?/B,utf,no_auto_possess,auto_callout
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        Callout 255 0 14
 | 
						|
        L?
 | 
						|
        Callout 255 14 0
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/L(?#(|++<!(2)?/B,utf,ucp,auto_callout
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        Callout 255 0 14
 | 
						|
        L?+
 | 
						|
        Callout 255 14 0
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/(*UTF)C\x09((?<!'(?x)!*H? #\xcc\x9a[^$]/
 | 
						|
Failed: error 114 at offset 39: missing closing parenthesis
 | 
						|
 | 
						|
/[\D]/utf
 | 
						|
    \x{1d7cf}
 | 
						|
 0: \x{1d7cf}
 | 
						|
 | 
						|
/[\D\P{Nd}]/utf
 | 
						|
    \x{1d7cf}
 | 
						|
 0: \x{1d7cf}
 | 
						|
 | 
						|
/[^\D]/utf
 | 
						|
    a9b
 | 
						|
 0: 9
 | 
						|
\= Expect no match
 | 
						|
    \x{1d7cf}
 | 
						|
No match
 | 
						|
 | 
						|
/[^\D\P{Nd}]/utf
 | 
						|
    a9b
 | 
						|
 0: 9
 | 
						|
    \x{1d7cf}
 | 
						|
 0: \x{1d7cf}
 | 
						|
\= Expect no match
 | 
						|
    \x{10000}
 | 
						|
No match
 | 
						|
    
 | 
						|
# Hex uses pattern length, not zero-terminated. This tests for overrunning
 | 
						|
# the given length of a pattern.
 | 
						|
 | 
						|
/'(*UTF)'/hex 
 | 
						|
 | 
						|
/'#('/hex,extended,utf
 | 
						|
 | 
						|
/a(?<=A\XB)/utf
 | 
						|
Failed: error 125 at offset 1: lookbehind assertion is not fixed length
 | 
						|
 | 
						|
/ab(?<=A\RB)/utf
 | 
						|
Failed: error 125 at offset 2: lookbehind assertion is not fixed length
 | 
						|
 | 
						|
/../utf,auto_callout
 | 
						|
    \n\x{123}\x{123}\x{123}\x{123}
 | 
						|
--->\x{0a}\x{123}\x{123}\x{123}\x{123}
 | 
						|
 +0 ^                                      .
 | 
						|
 +0       ^                                .
 | 
						|
 +1       ^      ^                         .
 | 
						|
 +2       ^             ^                  
 | 
						|
 0: \x{123}\x{123}
 | 
						|
 | 
						|
# This tests processing wide characters in extended mode.
 | 
						|
 | 
						|
/XȀ/x,utf
 | 
						|
 | 
						|
# These three test a bug fix that was not clearing up after a locale setting
 | 
						|
# when the test or a subsequent one matched a wide character.
 | 
						|
 | 
						|
//locale=C
 | 
						|
 | 
						|
/[\P{Yi}]/utf
 | 
						|
\x{2f000}
 | 
						|
 0: \x{2f000}
 | 
						|
 | 
						|
/[\P{Yi}]/utf,locale=C
 | 
						|
\x{2f000}
 | 
						|
 0: \x{2f000}
 | 
						|
 | 
						|
/^(?<!(?=))/B,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        Bra
 | 
						|
        ^
 | 
						|
        AssertB not
 | 
						|
        Assert
 | 
						|
        \x{10385c}
 | 
						|
        Ket
 | 
						|
        Ket
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
# Horizontal and vertical space lists ignore caseless
 | 
						|
 | 
						|
/[\HH]/Bi,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        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{10ffff}]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
/[^\HH]/Bi,utf
 | 
						|
------------------------------------------------------------------
 | 
						|
        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{10ffff}]
 | 
						|
        Ket
 | 
						|
        End
 | 
						|
------------------------------------------------------------------
 | 
						|
 | 
						|
# End of testinput5 
 |