Blob Blame History Raw
/-- These tests for Unicode property support test PCRE's API and show some of
    the compiled code. They are not Perl-compatible. --/

/[\p{L}]/DZ

/[\p{^L}]/DZ

/[\P{L}]/DZ

/[\P{^L}]/DZ

/[abc\p{L}\x{0660}]/8DZ

/[\p{Nd}]/8DZ
    1234

/[\p{Nd}+-]+/8DZ
    1234
    12-34
    12+\x{661}-34  
    ** Failers
    abcd  

/[\x{105}-\x{109}]/8iDZ
    \x{104}
    \x{105}
    \x{109}  
    ** Failers
    \x{100}
    \x{10a} 
    
/[z-\x{100}]/8iDZ 
    Z
    z
    \x{39c}
    \x{178}
    |
    \x{80}
    \x{ff}
    \x{100}
    \x{101} 
    ** Failers
    \x{102}
    Y
    y           

/[z-\x{100}]/8DZi

/(?:[\PPa*]*){8,}/

/[\P{Any}]/BZ

/[\P{Any}\E]/BZ

/(\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}+/8BZ
    


    \x{2028}\x{2028}\x{2028}
    
/\p{Zl}/8BZ

/\p{Lu}{3}+/8BZ

/\pL{2}+/8BZ

/\p{Cc}{2}+/8BZ

/^\p{Cf}/8
    \x{180e}
    \x{061c}
    \x{2066}
    \x{2067}
    \x{2068}
    \x{2069}

/^\p{Cs}/8
    \?\x{dfff}
    ** Failers
    \x{09f} 
  
/^\p{Mn}/8
    \x{1a1b}

/^\p{Pe}/8
    \x{2309}
    \x{230b}

/^\p{Ps}/8
    \x{2308}
    \x{230a}

/^\p{Sc}+/8
    $\x{a2}\x{a3}\x{a4}\x{a5}\x{a6}
    \x{9f2}
    ** Failers
    X
    \x{2c2}
  
/^\p{Zs}/8
    \ \
    \x{a0}
    \x{1680}
    \x{2000}
    \x{2001}     
    ** Failers
    \x{2028}
    \x{200d} 
  
/-- These are here rather than in test 6 because Perl has problems with
    the negative versions of the properties and behaves has changed how
    it behaves for caseless matching. --/
      
/\p{^Lu}/8i
    1234
    ** Failers
    ABC 

/\P{Lu}/8i
    1234
    ** Failers
    ABC 

/\p{Ll}/8i 
    a
    Az
    ** Failers
    ABC   

/\p{Lu}/8i
    A
    a\x{10a0}B 
    ** Failers 
    a
    \x{1d00}  

/\p{Lu}/8i
    A
    aZ
    ** Failers
    abc   

/[\x{c0}\x{391}]/8i
    \x{c0}
    \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}+)/8i
  \x{023a}\x{2c65}\x{0130}
  
/^\x{023a}+([^X])/8i
  \x{023a}\x{2c65}X

/\x{c0}+\x{116}+/8i
    \x{c0}\x{e0}\x{116}\x{117}

/[\x{c0}\x{116}]+/8i
    \x{c0}\x{e0}\x{116}\x{117}

/(\x{de})\1/8i
    \x{de}\x{de}
    \x{de}\x{fe}
    \x{fe}\x{fe}
    \x{fe}\x{de}

/^\x{c0}$/8i
    \x{c0}
    \x{e0} 

/^\x{e0}$/8i
    \x{c0}
    \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}])/8
    \x{c0}
    \x{e0} 

/(?i:[\x{c0}])/8
    \x{c0}
    \x{e0} 

/-- These are PCRE's extra properties to help with Unicodizing \d etc. --/

/^\p{Xan}/8
    ABCD
    1234
    \x{6ca}
    \x{a6c}
    \x{10a7}   
    ** Failers
    _ABC   

/^\p{Xan}+/8
    ABCD1234\x{6ca}\x{a6c}\x{10a7}_
    ** Failers
    _ABC   

/^\p{Xan}+?/8
    \x{6ca}\x{a6c}\x{10a7}_

/^\p{Xan}*/8
    ABCD1234\x{6ca}\x{a6c}\x{10a7}_
    
/^\p{Xan}{2,9}/8
    ABCD1234\x{6ca}\x{a6c}\x{10a7}_
    
/^\p{Xan}{2,9}?/8
    \x{6ca}\x{a6c}\x{10a7}_
    
/^[\p{Xan}]/8
    ABCD1234_
    1234abcd_
    \x{6ca}
    \x{a6c}
    \x{10a7}   
    ** Failers
    _ABC   
 
/^[\p{Xan}]+/8
    ABCD1234\x{6ca}\x{a6c}\x{10a7}_
    ** Failers
    _ABC   

/^>\p{Xsp}/8
    >\x{1680}\x{2028}\x{0b}
    >\x{a0} 
    ** Failers
    \x{0b} 

/^>\p{Xsp}+/8
    > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}

/^>\p{Xsp}+?/8
    >\x{1680}\x{2028}\x{0b}

/^>\p{Xsp}*/8
    > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    
/^>\p{Xsp}{2,9}/8
    > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    
/^>\p{Xsp}{2,9}?/8
    > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    
/^>[\p{Xsp}]/8
    >\x{2028}\x{0b}
 
/^>[\p{Xsp}]+/8
    > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}

/^>\p{Xps}/8
    >\x{1680}\x{2028}\x{0b}
    >\x{a0} 
    ** Failers
    \x{0b} 

/^>\p{Xps}+/8
    > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}

/^>\p{Xps}+?/8
    >\x{1680}\x{2028}\x{0b}

/^>\p{Xps}*/8
    > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    
/^>\p{Xps}{2,9}/8
    > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    
/^>\p{Xps}{2,9}?/8
    > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
    
/^>[\p{Xps}]/8
    >\x{2028}\x{0b}
 
/^>[\p{Xps}]+/8
    > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}

/^\p{Xwd}/8
    ABCD
    1234
    \x{6ca}
    \x{a6c}
    \x{10a7}
    _ABC    
    ** Failers
    [] 

/^\p{Xwd}+/8
    ABCD1234\x{6ca}\x{a6c}\x{10a7}_

/^\p{Xwd}+?/8
    \x{6ca}\x{a6c}\x{10a7}_

/^\p{Xwd}*/8
    ABCD1234\x{6ca}\x{a6c}\x{10a7}_
    
/^\p{Xwd}{2,9}/8
    A_B12\x{6ca}\x{a6c}\x{10a7}
    
/^\p{Xwd}{2,9}?/8
    \x{6ca}\x{a6c}\x{10a7}_
    
/^[\p{Xwd}]/8
    ABCD1234_
    1234abcd_
    \x{6ca}
    \x{a6c}
    \x{10a7}   
    _ABC 
    ** Failers
    []   
 
/^[\p{Xwd}]+/8
    ABCD1234\x{6ca}\x{a6c}\x{10a7}_

/-- A check not in UTF-8 mode --/

/^[\p{Xwd}]+/
    ABCD1234_
    
/-- Some negative checks --/

/^[\P{Xwd}]+/8
    !.+\x{019}\x{35a}AB

/^[\p{^Xwd}]+/8
    !.+\x{019}\x{35a}AB

/[\D]/WBZ8
    1\x{3c8}2

/[\d]/WBZ8
    >\x{6f4}<

/[\S]/WBZ8
    \x{1680}\x{6f4}\x{1680}

/[\s]/WBZ8
    >\x{1680}<

/[\W]/WBZ8
    A\x{1712}B

/[\w]/WBZ8
    >\x{1723}<

/\D/WBZ8
    1\x{3c8}2

/\d/WBZ8
    >\x{6f4}<

/\S/WBZ8
    \x{1680}\x{6f4}\x{1680}

/\s/WBZ8
    >\x{1680}>

/\W/WBZ8
    A\x{1712}B

/\w/WBZ8
    >\x{1723}<

/[[:alpha:]]/WBZ

/[[:lower:]]/WBZ

/[[:upper:]]/WBZ

/[[:alnum:]]/WBZ

/[[:ascii:]]/WBZ

/[[:cntrl:]]/WBZ

/[[:digit:]]/WBZ

/[[:graph:]]/WBZ

/[[:print:]]/WBZ

/[[:punct:]]/WBZ

/[[:space:]]/WBZ

/[[:word:]]/WBZ

/[[:xdigit:]]/WBZ

/-- Unicode properties for \b abd \B --/

/\b...\B/8W
    abc_
    \x{37e}abc\x{376} 
    \x{37e}\x{376}\x{371}\x{393}\x{394} 
    !\x{c0}++\x{c1}\x{c2} 
    !\x{c0}+++++ 

/-- Without PCRE_UCP, non-ASCII always fail, even if < 256  --/

/\b...\B/8
    abc_
    ** Failers 
    \x{37e}abc\x{376} 
    \x{37e}\x{376}\x{371}\x{393}\x{394} 
    !\x{c0}++\x{c1}\x{c2} 
    !\x{c0}+++++ 

/-- With PCRE_UCP, non-UTF8 chars that are < 256 still check properties  --/

/\b...\B/W
    abc_
    !\x{c0}++\x{c1}\x{c2} 
    !\x{c0}+++++ 

/-- Some of these are silly, but they check various combinations --/

/[[:^alpha:][:^cntrl:]]+/8WBZ
    123
    abc 

/[[:^cntrl:][:^alpha:]]+/8WBZ
    123
    abc 

/[[:alpha:]]+/8WBZ
    abc

/[[:^alpha:]\S]+/8WBZ
    123
    abc 

/[^\d]+/8WBZ
    abc123
    abc\x{123}
    \x{660}abc   

/\p{Lu}+9\p{Lu}+B\p{Lu}+b/BZ

/\p{^Lu}+9\p{^Lu}+B\p{^Lu}+b/BZ

/\P{Lu}+9\P{Lu}+B\P{Lu}+b/BZ

/\p{Han}+X\p{Greek}+\x{370}/BZ8

/\p{Xan}+!\p{Xan}+A/BZ

/\p{Xsp}+!\p{Xsp}\t/BZ

/\p{Xps}+!\p{Xps}\t/BZ

/\p{Xwd}+!\p{Xwd}_/BZ

/A+\p{N}A+\dB+\p{N}*B+\d*/WBZ

/-- These behaved oddly in Perl, so they are kept in this test --/

/(\x{23a}\x{23a}\x{23a})?\1/8i
    \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}

/(ȺȺȺ)?\1/8i
    ȺȺȺⱥⱥ

/(\x{23a}\x{23a}\x{23a})?\1/8i
    \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}

/(ȺȺȺ)?\1/8i
    ȺȺȺⱥⱥⱥ

/(\x{23a}\x{23a}\x{23a})\1/8i
    \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}

/(ȺȺȺ)\1/8i
    ȺȺȺⱥⱥ

/(\x{23a}\x{23a}\x{23a})\1/8i
    \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}

/(ȺȺȺ)\1/8i
    ȺȺȺⱥⱥⱥ

/(\x{2c65}\x{2c65})\1/8i
    \x{2c65}\x{2c65}\x{23a}\x{23a}
    
/(ⱥⱥ)\1/8i
    ⱥⱥȺȺ 
    
/(\x{23a}\x{23a}\x{23a})\1Y/8i
    X\x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}YZ

/(\x{2c65}\x{2c65})\1Y/8i
    X\x{2c65}\x{2c65}\x{23a}\x{23a}YZ

/-- --/ 

/-- These scripts weren't yet in Perl when I added Unicode 6.0.0 to PCRE --/

/^[\p{Batak}]/8
    \x{1bc0}
    \x{1bff}
    ** Failers
    \x{1bf4}
    
/^[\p{Brahmi}]/8
    \x{11000}
    \x{1106f}
    ** Failers
    \x{1104e}
    
/^[\p{Mandaic}]/8
    \x{840}
    \x{85e}
    ** Failers
    \x{85c}
    \x{85d}    

/-- --/ 

/(\X*)(.)/s8
    A\x{300}

/^S(\X*)e(\X*)$/8
    Stéréo
    
/^\X/8 
    ́réo

/^a\X41z/<JS>
    aX41z
    *** Failers
    aAz

/(?<=ab\Cde)X/8

/\X/
    a\P
    a\P\P

/\Xa/
    aa\P
    aa\P\P

/\X{2}/
    aa\P
    aa\P\P

/\X+a/
    a\P
    aa\P
    aa\P\P

/\X+?a/
    a\P
    ab\P
    aa\P
    aa\P\P
    aba\P
    
/-- These Unicode 6.1.0 scripts are not known to Perl. --/ 

/\p{Chakma}\d/8W
    \x{11100}\x{1113c}

/\p{Takri}\d/8W
    \x{11680}\x{116c0}

/^\X/8
    A\P
    A\P\P 
    A\x{300}\x{301}\P
    A\x{300}\x{301}\P\P  
    A\x{301}\P
    A\x{301}\P\P  
    
/^\X{2,3}/8
    A\P
    A\P\P 
    AA\P
    AA\P\P  
    A\x{300}\x{301}\P
    A\x{300}\x{301}\P\P  
    A\x{300}\x{301}A\x{300}\x{301}\P
    A\x{300}\x{301}A\x{300}\x{301}\P\P  

/^\X{2}/8
    AA\P
    AA\P\P  
    A\x{300}\x{301}A\x{300}\x{301}\P
    A\x{300}\x{301}A\x{300}\x{301}\P\P  
    
/^\X+/8
    AA\P
    AA\P\P  

/^\X+?Z/8
    AA\P
    AA\P\P 

/A\x{3a3}B/8iDZ

/\x{3a3}B/8iDZ

/[\x{3a3}]/8iBZ

/[^\x{3a3}]/8iBZ

/[\x{3a3}]+/8iBZ

/[^\x{3a3}]+/8iBZ

/a*\x{3a3}/8iBZ

/\x{3a3}+a/8iBZ

/\x{3a3}*\x{3c2}/8iBZ

/\x{3a3}{3}/8i+
    \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2}

/\x{3a3}{2,4}/8i+
    \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2}

/\x{3a3}{2,4}?/8i+
    \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2}

/\x{3a3}+./8i+
    \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2}

/\x{3a3}++./8i+
    ** Failers
    \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2}

/\x{3a3}*\x{3c2}/8iBZ

/[^\x{3a3}]*\x{3c2}/8iBZ

/[^a]*\x{3c2}/8iBZ

/ist/8iBZ
    ikt

/is+t/8i
    iSs\x{17f}t
    ikt

/is+?t/8i
    ikt

/is?t/8i
    ikt

/is{2}t/8i
    iskt
    
/-- This property is a PCRE special --/

/^\p{Xuc}/8
    $abc
    @abc
    `abc
    \x{1234}abc
    ** Failers
    abc     

/^\p{Xuc}+/8
    $@`\x{a0}\x{1234}\x{e000}**
    ** Failers
    \x{9f}

/^\p{Xuc}+?/8
    $@`\x{a0}\x{1234}\x{e000}**
    ** Failers
    \x{9f}

/^\p{Xuc}+?\*/8
    $@`\x{a0}\x{1234}\x{e000}**
    ** Failers
    \x{9f}

/^\p{Xuc}++/8
    $@`\x{a0}\x{1234}\x{e000}**
    ** Failers
    \x{9f}

/^\p{Xuc}{3,5}/8
    $@`\x{a0}\x{1234}\x{e000}**
    ** Failers
    \x{9f}

/^\p{Xuc}{3,5}?/8
    $@`\x{a0}\x{1234}\x{e000}**
    ** Failers
    \x{9f}

/^[\p{Xuc}]/8
    $@`\x{a0}\x{1234}\x{e000}**
    ** Failers
    \x{9f}

/^[\p{Xuc}]+/8
    $@`\x{a0}\x{1234}\x{e000}**
    ** Failers
    \x{9f}

/^\P{Xuc}/8
    abc
    ** Failers
    $abc
    @abc
    `abc
    \x{1234}abc

/^[\P{Xuc}]/8
    abc
    ** Failers
    $abc
    @abc
    `abc
    \x{1234}abc
    
/-- Some auto-possessification tests --/

/\pN+\z/BZ

/\PN+\z/BZ

/\pN+/BZ

/\PN+/BZ

/\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}/BWZx  

/\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}/BWZx  

/\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}/BWZx  

/\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}/BWZx  

/\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}/BWZx  

/\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}/BWZx  

/\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}/BWZx  

/\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}/BWZx  

/\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}/BWZx  

/\p{N}+\p{Ll} \p{N}+\p{Nd} \p{N}+\P{Nd}/BWZx

/\p{Xan}+\p{L} \p{Xan}+\p{N} \p{Xan}+\p{C} \p{Xan}+\P{L} \P{Xan}+\p{N} \p{Xan}+\P{C}/BWZx

/\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}/BWZx

/\p{Xan}+\p{Lu} \p{Xan}+\p{Nd} \p{Xan}+\p{Cc} \p{Xan}+\P{Ll} \P{Xan}+\p{No} \p{Xan}+\P{Cf}/BWZx

/\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}/BWZx

/\w+\p{P} \w+\p{Po} \w+\s \p{Xan}+\s \s+\p{Xan} \s+\w/BWZx

/\w+\P{P} \W+\p{Po} \w+\S \P{Xan}+\s \s+\P{Xan} \s+\W/BWZx

/\w+\p{Po} \w+\p{Pc} \W+\p{Po} \W+\p{Pc} \w+\P{Po} \w+\P{Pc}/BWZx

/\p{Nl}+\p{Xan} \P{Nl}+\p{Xan} \p{Nl}+\P{Xan} \P{Nl}+\P{Xan}/BWZx

/\p{Xan}+\p{Nl} \P{Xan}+\p{Nl} \p{Xan}+\P{Nl} \P{Xan}+\P{Nl}/BWZx

/\p{Xan}+\p{Nd} \P{Xan}+\p{Nd} \p{Xan}+\P{Nd} \P{Xan}+\P{Nd}/BWZx

/-- End auto-possessification tests --/ 

/\w+/8CWBZ
    abcd

/[\p{N}]?+/BZO

/[\p{L}ab]{2,3}+/BZO

/\D+\X \d+\X \S+\X \s+\X \W+\X \w+\X \C+\X \R+\X \H+\X \h+\X \V+\X \v+\X a+\X \n+\X .+\X/BZx

/.+\X/BZxs

/\X+$/BZxm

/\X+\D \X+\d \X+\S \X+\s \X+\W \X+\w \X+. \X+\C \X+\R \X+\H \X+\h \X+\V \X+\v \X+\X \X+\Z \X+\z \X+$/BZx

/\d+\s{0,5}=\s*\S?=\w{0,4}\W*/8WBZ

/[RST]+/8iWBZ
    
/[R-T]+/8iWBZ 

/[Q-U]+/8iWBZ 

/^s?c/mi8I
    scat

/[\W\p{Any}]/BZ
    abc
    123 

/[\W\pL]/BZ
    abc
    ** Failers 
    123     

/a[[:punct:]b]/WBZ

/a[[:punct:]b]/8WBZ

/a[b[:punct:]]/8WBZ

/-- End of testinput7 --/