
    %hXc                        S SK Jr  S SKrS SKrS SKrS SKrS SKrS SKr " S S\5      r	 " S S\
5      r " S S\R                  5      rS	 r\S
:X  a  \" 5         gg)    )proxyNc                   (   ^  \ rS rSrU 4S jrSrU =r$ )StrSubclass
   c                 4   > [        [        TU ]	  U5      5      $ N)r   super__getitem__selfindex	__class__s     H/var/www/auris/envauris/lib/python3.13/site-packages/regex/test_regex.pyr
   StrSubclass.__getitem__   s    57.u566     __name__
__module____qualname____firstlineno__r
   __static_attributes____classcell__r   s   @r   r   r   
   s    7 7r   r   c                   (   ^  \ rS rSrU 4S jrSrU =r$ )BytesSubclass   c                 4   > [        [        TU ]	  U5      5      $ r   )r   r	   r
   r   s     r   r
   BytesSubclass.__getitem__   s    UW0788r   r   r   r   s   @r   r   r      s    9 9r   r   c                      \ rS rSrSrSrSrSrSrSr	Sr
S	rS	rS
rSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSS jrS r S r!S  r"S! r#S" r$S# r%S$ r&S% r'S& r(S' r)S( r*S) r+S* r,S+ r-S, r.S- r/S. r0S/ r1S0 r2S1 r3S2 r4S3 r5S4 r6S5 r7S6 r8S7 r9S8 r:S9 r;S: r<S; r=S< r>S= r?S> r@S? rAS@ rBSA rCSB rDSC rESD rFSE rGSF rHSG rISH rJSI rKSJ rLSK rMSL rNSM rOSN rPSO rQSP rRSQ rSSR rTSS rUST rVSU rWSV rXSW rYSX rZSY r[SZ r\S[ r]S\ r^S] r_S^ r`S_ raS` rbSa rcSb rdSc reSd rfSe rgSf rhSg riSh rjSi rkSj rlSk rmSl rnSm roSn rpSo rqSp rrSq rsSr rtSs ruSt rvSu rwSv rxSw rySx rzSy r{Sz r|S{ r}S| r~S} rS~ rS rS rS rS rS rSrg)
RegexTests   z<class '_regex.Pattern'>z5cannot process flags argument with a compiled patternzinvalid group referencez	missing >zbad character in group namezmissing group namez	missing <zunknown groupzbad escape \(end of pattern\)zbad escape \\zunterminated character setz2cannot use a string pattern on a bytes-like objectz2cannot use a bytes pattern on a string-like objectz"expected str instance, bytes foundz'expected a bytes-like object, str foundz,cannot use UNICODE flag with a bytes patternz9ASCII, LOCALE and UNICODE flags are mutually incompatiblez
missing \)zunbalanced parenthesiszbad character rangeznothing to repeatzmultiple repeatzcannot refer to an open groupzduplicate groupz'bad inline flags: cannot turn flags offzundefined character nameNc                 N   ^ ^^ T R                  XT5        UUU 4S jmT" X5        g )Nc                    > [        U[        [        45      (       a  [        X5       H  u  p#T" X#5        M     g TR	                  [        U 5      [        U5      T5        g r   )
isinstancetuplelistzipassertIstype)actualexpectxymsgrecurser   s       r   r0   ,RegexTests.assertTypedEqual.<locals>.recurse2   sF    &5$-00/DAAM 0 d6lDL#>r   )assertEqual)r   r+   r,   r/   r0   s   `  `@r   assertTypedEqualRegexTests.assertTypedEqual/   s"    -	? 	r   c                     Sn[         R                  " S5      n[        U5      nUR                  S5      UR                  S5      :w  a  U R	                  5         g g )NQabbbcRzab+c)regexcompiler   findallfail)r   sr-   r.   s       r   test_weakrefRegexTests.test_weakref;   sF    MM&!!H99Y199Y#77IIK 8r   c                    U R                  [        R                  " SS5      R                  S5      S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R                  S5      S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " S	S
5      S 5        U R                  [        R                  " SS5      R                  S5      S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R                  S5      S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      S 5        g )Na*xxxr   r   r   zx*axxx+      r-   aaaxxxar   rF   a+)r2   r7   searchspanmatchr   s    r   test_search_star_plus RegexTests.test_search_star_plusB   s`   dE277:FCdE27796BdE277:FCdE27796Bc5148T5166q96BT51668&AT6277:FCT627796BT5148r   c                 :    [        US   5      n[        US-   5      $ )Nr   rE   )intstr)r   matchobj	int_values      r   bump_numRegexTests.bump_numN   s    $	9q=!!r   c                 Z   U R                  [        R                  " SSS5      S5        U R                  [        R                  " SU R                  S5      S5        U R                  [        R                  " SU R                  SS5      S	5        U R                  [        R                  " S
S S5      S5        U R                  [        R                  " S
SS5      S5        U R                  [        R                  " SSS5      S5        U R                  [        R                  " SSS5      S5        U R                  [        R                  " SSS5      S5        U R                  [        R                  " SSS5      S5        U R                  [        R                  " SSS5      S5        U R                  [        R                  " SSS5      S5        U R                  [        R                  " SSS5      [	        S5      [	        S5      -   [	        S5      -   [	        S5      -   [	        S5      -   [	        S5      -   5        U R                  [        R                  " S S!S"5      S#5        U R                  [        R                  " SS$S5      S5        U R                  [        R                  " SS%S5      S5        U R                  [        R                  " SS&S5      S5        U R                  [        R                  " SS'S5      S(5        U R                  [        R                  " S)S*S)5      S+5        g ),N(?i)b+r-   	bbbb BBBBx x\d+z08.2 -2 23x99yz9.3 -3 24x100yrF   z9.3 -3 23x99y.c                     g)N\nr   ms    r   <lambda>1RegexTests.test_basic_regex_sub.<locals>.<lambda>Y   s    %r   r_   
(?P<a>x)z
\g<a>\g<a>xxxxxxz
\g<a>\g<1>
(?P<unk>x)z\g<unk>\g<unk>z
\g<1>\g<1>az\t\n\v\r\f\a\bz	
	
	   r               z^\s*XtestXtestz\x0Az\u000Az
\U0000000Az\N{LATIN CAPITAL LETTER A}A   xs   \x0A   
)r2   r7   subrV   chrrN   s    r   test_basic_regex_subRegexTests.test_basic_regex_subR   sp   8S+>F64==:JK
	64==:JAN
	 	3=uE3s3T::}dCVL:}dCVL<1BDI
	<EvN3(93?AQR3<nM3<c!fs2w>NG?"g? #B?(*-a&?1 	2 	7C8'B4#6=4C8$?4<dC4)F
	 	5(D95Ar   c                 T    U R                  [        R                  " SSS5      S5        g )Nrh   z\g<1>\g<1>\brf   zxxxxr2   r7   rv   rN   s    r   test_bug_449964RegexTests.test_bug_449964q   s"    =/4H
	r   c                 D   U R                  [        R                  " SSS5      S5        U R                  [        R                  " SSS5      S5        U R                  [        R                  " SSS5      S5        U R                  [        R                  " SSS5      S5        g )Nz\r\nr_   z
abc
def
zabc
def

rd   r{   rN   s    r   test_bug_449000RegexTests.test_bug_449000v   s    7E3CD
	652BC
	7D2BC
	641AB
	r   c                 Z  ^ [         R                  " S5      mU R                  [        U R                  U4S j5        U R                  [        U R                  U4S j5        U R                  [        U R                  U4S j5        U R                  [        U R                  U4S j5        g )Nr]   c                  P   > [         R                  " T S[         R                  5      $ Nrs   )r7   rM   Ipatterns   r   rb   *RegexTests.test_bug_1661.<locals>.<lambda>   s    %++gsEGG4r   c                  P   > [         R                  " T S[         R                  5      $ r   )r7   rK   r   r   s   r   rb   r      s    %,,wUWW5r   c                  P   > [         R                  " T S[         R                  5      $ r   )r7   r9   r   r   s   r   rb   r      s    %--egg6r   c                  N   > [         R                  " T [         R                  5      $ r   )r7   r8   r   r   s   r   rb   r      s    %--1r   )r7   r8   assertRaisesRegex
ValueErrorFLAGS_WITH_COMPILED_PATr   r   s    @r   test_bug_1661RegexTests.test_bug_1661   s}    --$z4+G+G
4	6z4+G+G
5	7z4+G+G
6	8z4+G+G
1	3r   c           	          U R                  [        [        [        R                  " S5      5      5      U R
                  5        g )Nz(?P<quote>)(?(quote)))r2   reprr*   r7   r8   PATTERN_CLASSrN   s    r   test_bug_3629RegexTests.test_bug_3629   s/    d5==1H#IJK


	r   c                 
   U R                  [        R                  " SSS5      S5        U R                  [        R                  " SSS5      S5        U R                  [        R                  " SSS5      S5        U R                  [        R                  " SSS5      S5        U R                  [        R                  " SS	S5      S
5        U R                  [        R                  " SSS5      S5        U R                  [        R                  " SSS5      S5        U R                  [        R                  " SSS5      S5        U R                  [        R                  " SSS5      S5        U R                  [        R                  " SSS5      S5        U R                  [        R                  " SSS5      S5        U R                  [        R                  " SSS5      S5        U R                  [        R                  " SSS5      S
5        U R                  [        R                  " SSS5      S5        U R                  [        R                  " SSS5      S5        U R                  [        R                  " SSS5      S5        U R                  [        R                  " SSS5      S5        U R                  [        R                  " SSS5      S 5        U R                  [        R                  U R
                  S! 5        U R                  [        R                  U R
                  S" 5        U R                  [        R                  U R
                  S# 5        U R                  [        R                  U R
                  S$ 5        U R                  [        R                  U R
                  S% 5        U R                  [        R                  U R
                  S& 5        U R                  [        R                  U R
                  S' 5        U R                  [        R                  U R
                  S( 5        U R                  [        R                  U R
                  S) 5        U R                  [        R                  U R
                  S* 5        U R                  [        R                  U R
                  S+ 5        U R                  [        R                  U R
                  S, 5        U R                  [        R                  " S-S.S5      S5        U R                  [        R                  " S/S0S15      S25        U R                  [        R                  " S/S3S15      S45        g )5Nr-   \0 z\000z\001z\008z 8z\009z 9z\111r   z\117Oz\1111I1z\00z\07z\08\09z\0az az\400u   Āz\777u   ǿrt   s   \400    s   \777   c                  2    [         R                  " SSS5      $ )Nr-   \1r7   rv   r   r   r   rb   =RegexTests.test_sub_template_numeric_escape.<locals>.<lambda>       
))C
$r   c                  2    [         R                  " SSS5      $ )Nr-   z\8r   r   r   r   rb   r      r   r   c                  2    [         R                  " SSS5      $ )Nr-   z\9r   r   r   r   rb   r      r   r   c                  2    [         R                  " SSS5      $ )Nr-   \11r   r   r   r   rb   r          
))C
%r   c                  2    [         R                  " SSS5      $ )Nr-   z\18r   r   r   r   rb   r      r   r   c                  2    [         R                  " SSS5      $ )Nr-   z\1ar   r   r   r   rb   r      r   r   c                  2    [         R                  " SSS5      $ )Nr-   z\90r   r   r   r   rb   r      r   r   c                  2    [         R                  " SSS5      $ )Nr-   z\99r   r   r   r   rb   r      r   r   c                  2    [         R                  " SSS5      $ )Nr-   \118r   r   r   r   rb   r          
))C#
&r   c                  2    [         R                  " SSS5      $ )Nr-   \11ar   r   r   r   rb   r      r   r   c                  2    [         R                  " SSS5      $ )Nr-   z\181r   r   r   r   rb   r      r   r   c                  2    [         R                  " SSS5      $ )Nr-   z\800r   r   r   r   rb   r      r   r   z(((((((((((x)))))))))))r   z((((((((((y))))))))))(.)r   xyzxz8r   xza)r2   r7   rv   r   errorINVALID_GROUP_REFrN   s    r    test_sub_template_numeric_escape+RegexTests.test_sub_template_numeric_escape   s	   3s3T:35v>35v>35zB35zB35v>35v>3#6@3#6E34f=34f=34jA34jA34jA35x@35x@448'B448'Bu{{D,B,B E% 	&u{{D,B,B E% 	&u{{D,B,B E% 	&u{{D,B,B E& 	'u{{D,B,B E& 	'u{{D,B,B E& 	'u{{D,B,B E& 	'u{{D,B,B E& 	'u{{D,B,B E' 	(u{{D,B,B E' 	(u{{D,B,B E' 	(u{{D,B,B E' 	( 	#<fcJ
	#=wN
	#=wN
	r   c                     U R                  [        R                  " SSS5      S5        U R                  [        R                  " SSSS5      S5        g )Nri   baaaaabbbbbrE   baaaar{   rN   s    r   test_qualified_re_sub RegexTests.test_qualified_re_sub   s>    3W5w?3Wa8'Br   c                 T    U R                  [        R                  " SSS5      S5        g )Nz(\S)\s+(\S)z\1 \2zhello  therezhello therer{   rN   s    r   test_bug_114660RegexTests.test_bug_114660   s"    >8^L
	r   c                 n   [         R                  S:  a)  U R                  [        R                  " SSS5      S5        O(U R                  [        R                  " SSS5      S5        U R                  [        R                  " SSS5      S5        U R                  [        R                  " SSS5      S	5        g )
NrF   ro   r   z(?V0)x*-abxdz-a-b--d-z-a-b-d-z(?V1)x*rC   zab-dsysversion_infor2   r7   rv   rN   s    r   test_bug_462270RegexTests.test_bug_462270   s    y(UYYy#v>
KUYYy#v>	J9c6:JG4f5v>r   c                     SnU R                  [        R                  " SU-   S-   S5      R                  U5      S5        g )N   ÿz(?P<z>a)abcri   )r2   r7   rK   group)r   
group_names     r   test_bug_14462RegexTests.test_bug_14462   s;    
g
&:U&B
z"C	)r   c                    U R                  [        R                  U R                  S 5        U R                  [        R                  U R                  S 5        U R                  [        R                  U R
                  S 5        U R                  [        R                  U R                  S 5        U R                  [        R                  U R                  S 5        U R                  [        U R                  S 5        U R                  [        R                  " SSS	5      S
5        U R                  [        R                  " SSS	5      S
5        U R                  [        R                  U R                  S 5        g )Nc                  2    [         R                  " SSS5      $ )Nre   z\g<arf   r   r   r   r   rb   /RegexTests.test_symbolic_refs.<locals>.<lambda>   s    
))J
.r   c                  2    [         R                  " SSS5      $ )Nre   z\g<rf   r   r   r   r   rb   r      s    
))J
-r   c                  2    [         R                  " SSS5      $ )Nre   \grf   r   r   r   r   rb   r      s    
))Jt
,r   c                  2    [         R                  " SSS5      $ )Nre   z\g<a a>rf   r   r   r   r   rb   r          
))J
D
1r   c                  2    [         R                  " SSS5      $ )Nre   z\g<1a1>rf   r   r   r   r   rb   r      r   r   c                  2    [         R                  " SSS5      $ )Nre   z\g<ab>rf   r   r   r   r   rb   r          
))J	4
0r   z(?P<a>x)|(?P<b>y)z\g<b>rf    z\2c                  2    [         R                  " SSS5      $ )Nre   z\g<-1>rf   r   r   r   r   rb   r      r   r   )r   r7   r   
MISSING_GTMISSING_GROUP_NAME
MISSING_LTBAD_GROUP_NAME
IndexErrorUNKNOWN_GROUP_Ir2   rv   rN   s    r   test_symbolic_refsRegexTests.test_symbolic_refs   s&   u{{DOO >/ 	0u{{D,C,C F. 	/u{{DOO >- 	.u{{D,?,? B2 	3u{{D,?,? B2 	3z4+?+? B1 	2
 	#6$GL#6tDbI 	u{{D,?,? B1 	2r   c                    U R                  [        R                  " SSS5      S5        U R                  [        R                  " SSS5      S5        U R                  [        R                  " SSS5      S5        U R                  [        R                  " S	SS5      S
5        U R                  [        R                  " S	SSS5      S5        g )NrY   r-   rZ   )r[      zb+)zx BBBBrE   r   )r   r   zb*)xxxyxzx   r   )xxxyzr   )r2   r7   subnrN   s    r   test_re_subnRegexTests.test_re_subn   s    Hc;?LD#{;]KD#u5zBD#u5~FD#ua8,Gr   c                 4   U R                  [        R                  " SS5      / SQ5        [        R                  S:  a  U R                  [        R                  " SS5      / SQ5        U R                  [        R                  " SS5      / SQ5        U R                  [        R                  " S	S5      / SQ5        U R                  [        R                  " S
S5      / SQ5        OU R                  [        R                  " SS5      / SQ5        U R                  [        R                  " SS5      / SQ5        U R                  [        R                  " S	S5      / SQ5        U R                  [        R                  " S
S5      / SQ5        U R                  [        R                  " SS5      / SQ5        U R                  [        R                  " SS5      / SQ5        U R                  [        R                  " SS5      / SQ5        U R                  [        R                  " SS5      / SQ5        U R                  [        R
                  " SS5       Vs/ s H  oPM     sn/ SQ5        U R                  [        R                  " SS5      / SQ5        U R                  [        R
                  " SS5       Vs/ s H  oPM     sn/ SQ5        U R                  [        R                  " SS5      / SQ5        U R                  [        R
                  " SS5       Vs/ s H  oPM     sn/ SQ5        U R                  [        R                  " SS5      / SQ5        U R                  [        R
                  " SS5       Vs/ s H  oPM     sn/ SQ5        U R                  [        R                  " SS5      / SQ5        U R                  [        R                  " S S5      / S!Q5        U R                  [        R                  " S"S5      / S#Q5        g s  snf s  snf s  snf s  snf )$N::a:b::cr   ri   r   r   cr   :*r   r   ri   r   r   r   r   r   (:*)r   r   r   r   ri   r   r   r   r   ::r   r   r   r   r   z(?::*)z(:)*)r   r   r   Nri   r   r   Nr   r   r   Nr   Nr   r   ri   r   r   r   r   ri   r   r   r   r   )r   r   ri   r   r   r   r   z([b:]+))r   r   ri   z:b::r   z(b)|(:+))r   Nr   ri   Nr   r   r   Nr   Nr   r   z(?:b)|(?::+))r   ri   r   r   r   r-   xaxbxcz(?r)x)r   r   ri   r   z(x)|(y))
r   r-   Nri   r-   Nr   r-   Nr   z(?r)(x)|(y))
r   r-   Nr   r-   Nri   r-   Nr   (?V1)\bza b c)r   ri    r   r  r   r   z(?V1)\m)r   a zb r   z(?V1)\M)ri    bz cr   )r2   r7   splitr   r   	splititerr   ra   s     r   test_re_splitRegexTests.test_re_split   sP   S)46MNy(U[[y9 <  !U[[; >@ AU[[9= @$ %U[[; >K L U[[y9;NOU[[; ># $U[[9= @ U[[; >" #Y	: = 	Z; >> 	?^Y? B 	 	S(35HIU__S(%CD%C!%CD G 	 	Wh79LMU__Wh%GH%G!%GH K 	 	Y9 <* 	+U__Y%IJ%I!%IJ
>	@ 	]H= @. 	/U__]H%MN%M!%MN
>	@ 	Z9 < 	Z9 < 	Z9 < 	+ E I
 K
 Os   P1PP5Pc                    U R                  [        R                  " SSS5      / SQ5        U R                  [        R                  " SSS5      / SQ5        U R                  [        R                  " SSS5      / SQ5        [        R                  S	:  a+  U R                  [        R                  " S
SS5      / SQ5        g U R                  [        R                  " S
SS5      / SQ5        g )Nr   r   r   )r   ri   b::cza:b:c:d)ri   r   zc:dz(:))r   r   ri   r   r  r   r   )r   r   r   r   za:b::c)r2   r7   r  r   r   rN   s    r   test_qualified_re_split"RegexTests.test_qualified_re_split3  s    S)Q79JKS)Q79JKUIq9 < 	 y(U[[A> A  U[[A> A r   c                    U R                  [        R                  " SS5      / 5        U R                  [        R                  " SS5      / SQ5        U R                  [        R                  " SS5      / SQ5        U R                  [        R                  " SS5      / SQ5        U R                  [        R                  " SS	5      S
/5        U R                  [        R                  " SS	5      S
/5        U R                  [        R                  " SS5      S/5        U R                  [        R                  " SS5      S/5        U R                  [        R                  " SS5      S/5        U R                  [        R                  " SS5      S/5        U R                  [        R                  " SS5      S/5        U R                  [        R                  " SS5      S/5        g )N:+r   
a:b::c:::dr   r   z:::(:+)(:)(:*))r   r   )r   r   )r   r   z\((?P<test>.{0,5}?TEST)\)z	(MY TEST)zMY TESTz\((?P<test>.{0,3}?TEST)\)z\((?P<test>.{0,3}?T)\)z(MY T)zMY Tz[^a]{2}[A-Z]z
  Sz  Sz[^a]{2,3}[A-Z]z
   Sz   SzX(Y[^Y]+?){1,2}( |Q)+DEFzXYABCYPPQ
Q DEF)zYPPQ
r  z(\nTest(\n+.+?){0,2}?)?\n+Endz
Test
xyz
xyz
End)z
Test
xyz
xyzz
xyzr2   r7   r9   rN   s    r   test_re_findallRegexTests.test_re_findall@  s   tU3R8t\:<NOv|< ? 	y,? B# 	$ 	'C
"	%'C
"	%'@(K(	 	@5'J'8'BWIN'8(CfXN'B
 /0	2 	'G
!#%B$C	Er   c                 V    U R                  [        R                  " SS5      / SQ5        g )Nz(a|(b))aba)ri   r   )r   r   r  r  rN   s    r   test_bug_117612RegexTests.test_bug_117612Y  s"    z59 < 	r   c                    U R                  [        R                  " SS5      S S  S5        U R                  [        R                  " SS5      S S  S5        U R                  [        R                  " SS5      S   S5        U R                  [        R                  " SS5      S   S5        U R                  [        R                  " SS5      R                  SS5      S5        [        R                  " S5      nU R                  UR                  S5      S S  S5        U R                  UR                  S	5      S S  S
5        U R                  UR                  S5      S S  S5        U R                  UR                  S5      S S  S5        U R                  UR                  S5      S S  S5        [        R                  " SS5      nU R                  UR                  5       S5        U R                  UR                  S5      S5        U R                  UR                  S5      S5        U R                  UR                  SS5      S5        [        R                  " S5      nU R                  UR                  S5      R                  SSS5      S5        U R                  UR                  S	5      R                  SSS5      S5        U R                  UR                  S5      R                  SSS5      S5        g )Nri   ri   (a)ri   ri   r   rE   z((a)|(b))(c)?)ri   ri   ri   NNr   )r   r   Nr   Nac)r!  ri   ri   Nr   bc)r"  r   Nr   r   z!(?:(?P<a1>a)|(?P<b2>b))(?P<c3>c)?r   rF   )ri   NNa1b2c3)Nr   Nri   Nr   )r2   r7   rM   r   r8   r   patra   s      r   test_re_matchRegexTests.test_re_match]  sL   S#.q16:UC03Z@VS1!4c:VS1!4c:VS1771=zJmmO,3*,GH3*,GH4+-HI4+-HI4+-HI KKs#C(S)S)A
3mm?@3--aA68IJ3--dD$? B 	4..q$:<LMr   c                    U R                  [        R                  " SS5      S S  S5        U R                  [        R                  " SS5      S S  S5        U R                  [        R                  " SS5      S 5        U R                  [        R                  " SS5      S 5        U R                  [        R                  " SS	5      S S  S
5        U R                  [        R                  " SS5      S S  S5        U R                  [        R                  " SS5      S S  S5        U R                  [        R                  " SS5      S S  S5        [        R                  " S5      nU R                  UR                  S5      S S  S5        U R                  UR                  S5      S S  S5        U R                  UR                  S5      S 5        U R                  UR                  S5      S 5        g )Nz^(\()?([^()]+)(?(1)\))$r  )r  (ri   ri   ri   Nri   za)z(az^(?:(a)|c)((?(1)b|d))$ab)r.  ri   r   cd)r/  Ndz^(?:(a)|c)((?(1)|d))$)ri   ri   r   z(?P<g1>a)(?P<g2>b)?((?(g2)c|d))r   )r   ri   r   r   ad)r1  ri   Nr0  abdr!  )r2   r7   rM   r8   r   ps     r   test_re_groupref_exists"RegexTests.test_re_groupref_existsx  s   %?GJ
	%?EaH K 	%?FM%?FM%=tDQG J 	%=tDQG J 	%<dCAF I 	%<cB1E H 	 MM;<*,BCq)+AB.-r   c                 @   U R                  [        R                  " SS5      S S  S5        U R                  [        R                  " SS5      S S  S5        U R                  [        R                  " SS5      S 5        U R                  [        R                  " SS5      S 5        U R                  [        R                  " S	S
5      S S  S5        U R                  [        R                  " SS5      S S  S5        U R                  [        R                  " SS5      S/5        g )Nz^(\|)?([^()]+)\1$|a|)r8  |ri   z^(\|)?([^()]+)\1?$ri   r-  za|z|az^(?:(a)|c)(\1)$aa)r:  ri   ri   z^(?:(a)|c)(\1)?$r   )r   NNzE(?i)(.{1,40}?),(.{1,40}?)(?:;)+(.{1,80}).{1,40}?\3(\ |;)+(.{1,80}?)\1z&TEST, BEST; LEST ; Lest 123 Test, Best)TESTz BESTz LESTr  z123 )r2   r7   rM   r9   rN   s    r   test_re_grouprefRegexTests.test_re_groupref  s   %95A!D G 	%:C@C F 	%94@$G%94@$G%7>qA D 	%8#>qA D 	 	'o
247  6!	"r   c                 t    U R                  [        R                  " SS5      R                  5       SSS.5        g )N#(?P<first>first) (?P<second>second)first secondfirstsecondrA  rB  )r2   r7   rM   	groupdictrN   s    r   test_groupdictRegexTests.test_groupdict  s0    %J
#)+H'M	Or   c                 p    U R                  [        R                  " SS5      R                  S5      S5        g )Nr?  r@  z\2 \1 \g<second> \g<first>zsecond first second first)r2   r7   rM   expandrN   s    r   test_expandRegexTests.test_expand  s/    %J
 &!>?
%	'r   c                 
   U R                  [        R                  " SS5      S 5        U R                  [        R                  " SS5      S 5        U R                  [        R                  " SS5      S 5        U R                  [        R                  " SS5      S 5        U R                  [        R                  " SS5      S   S5        U R                  [        R                  " S	S5      S   S5        U R                  [        R                  " S
S5      S   S5        U R                  [        R                  " SS5      S   S5        U R                  [        R                  " SS5      S   S5        U R                  [        R                  " SS5      S   S5        U R                  [        R                  " SS5      S   S5        U R                  [        R                  " SS5      S   S5        U R                  [        R                  " SS5      S 5        U R                  [        R                  " SS5      S 5        U R                  [        R                  " SS5      S 5        U R                  [        R                  " SS5      S 5        U R                  [        R                  " SS5      S   S5        U R                  [        R                  " SS5      S   S5        U R                  [        R                  " SS5      S   S5        U R                  [        R                  " SS5      S   S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " S S5      5      S5        U R                  [        [        R                  " S!S5      5      S5        U R                  [        [        R                  " S"S5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        R                  " S#S5      S 5        U R                  [        [        R                  " S#S$5      5      S5        g )%Nz	^(\w){1}$r   z
^(\w){1}?$z^(\w){1,2}$z^(\w){1,2}?$z	^(\w){3}$rE   r   z^(\w){1,3}$z^(\w){1,4}$z^(\w){3,4}?$z
^(\w){3}?$z^(\w){1,3}?$z^(\w){1,4}?$z^x{1}$r@   z^x{1}?$z^x{1,2}$z	^x{1,2}?$z^x{1}r   r-   z^x{1}?z^x{0,1}z^x{0,1}?r   z^x{3}$Tz^x{1,3}$z^x{1,4}$z	^x{3,4}?$z^x{3}?$z	^x{1,3}?$z	^x{1,4}?$z^x{}$zx{})r2   r7   rM   boolrN   s    r   test_repeat_minmaxRegexTests.test_repeat_minmax  s   \594@]E:DA^U;TB_e<dC\59!<cB^U;A>D^U;A>D_e<Q?E]E:1=sC_e<Q?E_e<Q?E_e<Q?EXu5t<Y6=Z7>[%8$?We4Q7=Xu5a8#>Y6q93?Z7:B?ekk(E:;TBekk*e<=tDekk*e<=tDekk+u=>Eekk)U;<dCekk+u=>Eekk+u=>Eekk+u=>EWe4d;ekk'59:DAr   c           
      N   U R                  [        R                  " S5      R                  S5        U R                  [        R                  " S5      R                  [        R
                  [        R                  -  [        R                  -  5        U R                  [        R                  " S5      R                  [        R                  [        R
                  -  [        R                  -  5        U R                  [        R                  " S5      R                  S5        U R                  [        R                  " S5      R                  0 5        U R                  [        R                  " S5      R                  SSS.5        U R                  [        R                  " SS5      R                  S	5        U R                  [        R                  " SS5      R                  S5        U R                  [        R                  " S
S5      R                  S	5        U R                  [        R                  " S
S5      R                  S5        U R                  [        R                  " S
S5      R                  5       S5        U R                  [        R                  " S
S5      R                  S5      S5        U R                  [        R                  " SS5      R                   S5        U R                  [        R                  " SS5      R"                  S5        U R                  [%        ['        [        R                  " SS5      R(                  5      5      U R*                  5        [        R                  " S5      nS	UR                  S'   U R                  UR                  S   S5        g )Nz
(?i)(a)(b)s
   (?i)(a)(b)r   z(?i)(?P<first>a)(?P<other>b)rE   )rA  otherr  ri   r   zb(c)abcdef   rD   r   rF   r   rE   rU  zabc(?P<n>def)n)r2   r7   r8   r   flagsr   UDEFAULT_VERSIONrs   groups
groupindexrM   posendposrK   rL   stringregsr   r*   rer   r3  s     r   test_getattrRegexTests.test_getattr  s~   |4<<lK|4::EGGegg<M


=  	!}5;;UWWuww=N!!>" 	#|4;;Q?|4??D'EFQQ
"	$ 	UC044a8UC077;fh7;;Q?fh7>>Bfh7<<>Gfh7<<Q?HUC077=UC0557GHd5;;uc#:#=#=>?


	 MM*+Sc*A.r   c                    U R                  [        R                  " SS5      S   S5        U R                  [        R                  " SS5      S   S5        U R                  [        R                  " SS[        R                  5      S   S	5        U R                  [        R                  " S
S[        R                  5      S   S	5        U R                  [        R                  " SS[        R                  5      S   S5        U R                  [        R                  " SS[        R                  5      S   S5        U R                  [        R                  " SS[        R
                  5      S   S5        U R                  [        R                  " SS[        R
                  5      S   S5        U R                  [        R                  " SS[        R
                  5      S 5        U R                  [        R                  " SS5      S   S	5        U R                  [        R                  " S
S5      S   S	5        U R                  [        R                  " SS[        R
                  5      S   S5        U R                  [        R                  " SS[        R
                  5      S   S5        U R                  [        R                  " SS[        R
                  5      S 5        U R                  [        R                  " SS5      S   S5        U R                  [        R                  " SS[        R                  5      S   S5        U R                  [        R                  " SS[        R                  5      S   S5        g )Nz\b(b.)\bzabcd abc bcd bxrE   bxz\B(b.)\Bzabc bcd bc abxds   \b(b.)\bs   abcd abc bcd bxs   bxs   \B(b.)\Bs   abc bcd bc abxd^abc$z
abc
r   r   z	^\Aabc\Z$s   ^abc$s   
abc
   abcs	   ^\Aabc\Z$z\d\D\w\W\s\Sz1aa! as   \d\D\w\W\s\Ss   1aa! a)r2   r7   rK   LOCALEUNICODEMrN   s    r   test_special_escapesRegexTests.test_special_escapes  s   k3DEaH$Ok3DEaH$Ol4F
,,!	#l4F
,,!	#k3D
--!	#k3D
--!	# 	h	577CAFNlE577CAFNlIuwwGNl4FGJ
	l4FGJ
	iUWWEaH
	mVUWWEaH
	mZI
	 	ox@CXN&6	
,,%	'ox
--%	'r   c           
      \   U R                  [        R                  " SS5      S   S5        U R                  [        R                  " SS[        R                  5      S   S5        U R                  SR	                  [        R
                  " SS[        R                  S95      S5        U R                  SR	                  [        R
                  " SS[        R                  S95      S5        U R                  SR	                  [        R
                  " S	S[        R                  S95      S5        g )
Nz([\u2222\u2223])u   ∢rE   r   r]   u   eèéêëēěėrW  z%[e\xe8\xe9\xea\xeb\u0113\u011b\u0117]z*e|\xe8|\xe9|\xea|\xeb|\u0113|\u011b|\u0117)r2   r7   rM   rh  joinr9   rN   s    r   test_bigcharsetRegexTests.test_bigcharset  s    %8(CAF
	%8(
--%	's
/u}}"F G
/	1 	/W
/u}}"F G
/	1 	/\
/u}}"F G
/	1r   c                     U R                  [        R                  " SS[        R                  5      S   S5        U R                  [        R                  " SS[        R                  5      S   S5        g )Na.ba
br   a.*bza

b)r2   r7   rM   DOTALLrN   s    r   test_anyallRegexTests.test_anyall  sQ    UFELLA!DfMVXu||DQG
	r   c                    U R                  [        R                  " SS5      S   S5        U R                  [        R                  " SS5      S   S5        U R                  [        R                  " SS5      S   S5        U R                  [        R                  " SS5      S   S5        U R                  [        R                  " S	S
5      S   S5        U R                  [        R                  " SS5      S   S5        U R                  [        R                  " SS
5      S   S5        U R                  [        R                  " SS
5      S   S5        U R                  [        R                  " SS5      S   S5        U R                  [        R                  " SS5      S   S5        U R                  [        R                  " SS5      S   S5        g )Nz(a(?=\s[^a]))a brE   ri   z(a(?=\s[^a]*))z(a(?=\s[abc]))z(a(?=\s[abc]*))za bcz(a)(?=\s\1)a az(a)(?=\s\1*)a aaz(a)(?=\s(abc|a))z(a(?!\s[^a]))z(a(?!\s[abc]))za dz(a)(?!\s\1)z(a)(?!\s(abc|a))r2   r7   rM   rN   s    r   test_non_consumingRegexTests.test_non_consuming   sj   %5u=a@#F%6>qA3G%6>qA3G%7@CSI^U;A>D_f=a@#F%8%@CSI%5u=a@#F%6>qA3G^U;A>D%8%@CSIr   c                 Z   U R                  [        R                  " SS[        R                  5      S   S5        U R                  [        R                  " SS[        R                  5      S   S5        U R                  [        R                  " SS[        R                  5      S   S5        U R                  [        R                  " S	S
[        R                  5      S   S
5        U R                  [        R                  " SS[        R                  5      S   S5        U R                  [        R                  " SS[        R                  5      S   S5        U R                  [        R                  " SS[        R                  5      S   S5        U R                  [        R                  " SS[        R                  5      S   S5        U R                  [        R                  " SS[        R                  5      S   S5        U R                  [        R                  " SS5      R	                  5       S5        U R                  [        R                  " SS5      R	                  5       S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        g )Nr   ABCr   rf  s   ABCz
(a\s[^a]*)za bbrE   z
(a\s[abc])ry  z(a\s[abc]*)z	((a)\s\2)rz  z
((a)\s\2*)r{  z((a)\s(abc|a))z((a)\s(abc|a)*)z[Z-a]_rU  z	(?i)[Z-a]z(?i)naonAoTz
(?i)n\xE3ou   nÃou   NÃOz(?i)su   ſ)r2   r7   rM   r   rL   rL  rN   s    r   test_ignore_caseRegexTests.test_ignore_case.  s3   UE577;A>FVVUWW=a@&I]FEGGDQG
	]E577CAFN^VUWWEaH
	\5%''B1EuM]FEGGDQG
	%6uwwGJ
	%7I!L
	 	Xs388:FC\37<<>Gekk*e<=tDekk-BCTJekk-BCTJekk(H=>Er   c                 8   U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " S	S
5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " S	S5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        SnU H=  nU H4  n[        R                  " SU-   U5      (       a  M$  U R                  5         M6     M?     U R                  [        [        R                  " SS 5      5      S!5        U R                  [        [        R                  " SS"5      5      S!5        U R                  [        [        R                  " S#S 5      5      S!5        U R                  [        [        R                  " S#S"5      5      S!5        U R                  [        [        R                  " S$S 5      5      S!5        U R                  [        [        R                  " S%S 5      5      S!5        U R                  [        [        R                  " SS 5      5      S!5        U R                  [        [        R                  " S#S 5      5      S!5        U R                  [        [        R                  " S$S 5      5      S!5        U R                  [        [        R                  " S%S 5      5      S!5        U R                  [        [        R                  " S&S5      5      S!5        U R                  [        [        R                  " S&S5      5      S!5        U R                  [        R                  " S'S(5      S)S*/5        U R                  [        R                  " S+S(5      S)S*/5        U R                  [        R                  " S,S-5      R                  5       S.5        U R                  [        R                  " S/S-5      R                  5       S.5        U R                  [        R                  " S0S-5      R                  5       S.5        U R                  [        R                  " S1S2S/S39R                  5       S45        U R                  [        R                  " S1S5S6/S39R                  5       S75        g )8Nz(?fi)ssSSr   r   z(?fi)SSss   ßrU  z#(?fi)\N{LATIN SMALL LETTER SHARP S}z (?fi)\N{LATIN SMALL LIGATURE ST}STz(?fi)STu   ﬆu   ﬅz(?fi)SSTu   ßtu   sﬅu   sﬆSSTrD   z(?fi)FFIu   ﬃu   ﬀiu   fﬁz!(?fi)\N{LATIN SMALL LIGATURE FFI}FFIrI   z!(?fi)\N{LATIN SMALL LIGATURE FF}iz!(?fi)f\N{LATIN SMALL LIGATURE FI}u   Σσςz(?fi)z(?iV1)ffu   ﬀﬁTu   ﬁﬀz(?iV1)fiz
(?iV1)fffiz(?iV1)f\uFB03z(?iV1)f\uFB01z/(?iV0)\m(?:word){e<=3}\M(?<!\m(?:word){e<=1}\M)z.word word2 word word3 word word234 word23 wordword234word23z/(?iV1)\m(?:word){e<=3}\M(?<!\m(?:word){e<=1}\M)z$(?fi)a\N{LATIN SMALL LIGATURE FFI}nez
  affine  )r      z*(?fi)a(?:\N{LATIN SMALL LIGATURE FFI}|x)nez+(?fi)a(?:\N{LATIN SMALL LIGATURE FFI}|xy)nez(?fi)a\L<options>neaffineoptionsr   rR  u   aﬃneffir   r   )r2   r7   rK   rL   rM   r:   rL  r9   )r   sigmach1ch2s       r   test_case_foldingRegexTests.test_case_foldingH  s   j$7<<>Gj$7<<>Gj
*,,0DFF	<&L
	  	&I
	 j
'))-	9j
-//3tvv	? 	k
+--1TVV	=k
.004	@k
(**.$&&	:&I
	!k
(**.$&&	: 	k
(**.$&&	:k
(**.$&&	:k
(**.$&&	:&J
	!&J
	!&J
	! %C{{8c>377IIK  
 	ell;GH
	ell;GH
	ell;GH
	ell;GH
	ell=.IJ
	ell+;
  	"ell;GH
	ell;GH
	ell=.IJ
	ell+;
  	"ell+;YGH
	ell+;YGH
	 	'Y
:<>G
>	 	'Y
:<>G
>	 	&M
	(&S	)&T	)&<h12448DFF	D&<
+eW>>Bdff	Nr   c                 X    U R                  [        R                  " SS5      S   S5        g )Nz(\s)r  rE   r|  rN   s    r   test_categoryRegexTests.test_category  s"    Wc215s;r   c                     U R                  [        R                  " SS5      S   S5        U R                  [        R                  " SS5      S   S5        g )Nz\s([^a])r  rE   r   z	\s([^a]*)z bbbbr2   r7   rK   rN   s    r   test_not_literalRegexTests.test_not_literal  sB    k48;SAlE:1=tDr   c                     U R                  [        R                  " SS5      S   S5        U R                  [        R                  " SS5      S   S5        g )Nz\s(b)r  rE   r   za\sr  r   r  rN   s    r   test_search_coverageRegexTests.test_search_coverage  sB    h5a8#>fd3A6=r   c                    SnU R                  [        R                  " U5      U5        [        SS5       H  nU[	        U5      -  nU R                  [        [        R                  " [        R                  " [	        U5      5      [	        U5      5      5      S5        U R                  [        R                  " [        R                  " [	        U5      5      [	        U5      5      R                  5       S5        M     [        R                  " [        R                  " U5      5      nU R                  UR                  U5      R                  5       S5        g )Nr   r      TrU  r   r  )	r2   r7   escaperangerw   rL  rM   rL   r8   )r   r4  ir(  s       r   test_re_escapeRegexTests.test_re_escape  s    a!,q#AQKAT%++ell3q6.BCF"KLU[[c!f)=s1vFKKM	  mmELLO,1**,h7r   c           
      f   SnU R                  [        R                  " U5      U5        [        SS5       H  n[	        U/5      nX-  nU R                  [        [        R                  " [        R                  " U5      U5      5      S5        U R                  [        R                  " [        R                  " U5      U5      R                  5       S5        M     [        R                  " [        R                  " U5      5      nU R                  UR                  U5      R                  5       S5        g )Nr   r   r  TrU  r  )	r2   r7   r  r  bytesrL  rM   rL   r8   )r   r4  r  r   r(  s        r   test_re_escape_byteRegexTests.test_re_escape_byte  s    a!,q#Aqc
AFAT%++ell1oq"ABDIU[[a!<AACVL	  mmELLO,1**,h7r   c                    [         R                  [         R                  :w  a  U R                  5         [         R                  [         R
                  :w  a  U R                  5         [         R                  [         R                  :w  a  U R                  5         [         R                  [         R                  :w  a  U R                  5         [         R                  [         R                  :w  a  U R                  5         g g r   )r7   r   
IGNORECASEr:   Lrg  ri  	MULTILINESru  rp   VERBOSErN   s    r   test_constantsRegexTests.test_constants  s    77e&&&IIK77ell"IIK77eoo%IIK77ell"IIK77emm#IIK $r   c                 2   [         R                  [         R                  [         R                  [         R                  [         R
                  4 HF  nU R                  [        [        [         R                  " SU5      5      5      U R                  5        MH     g )Nz	^pattern$)r7   r   ri  rp   r  r  r2   r   r*   r8   r   )r   flags     r   
test_flagsRegexTests.test_flags  sZ    WWegguwwADT$u}}[$'G"HI  " Br   c                 Z   S GHx  nU R                  [        [        R                  " SU-  [	        U5      5      5      S5        U R                  [        [        R                  " SU-  [	        U5      S-   5      5      S5        U R                  [        [        R                  " SU-  [	        U5      S-   5      5      S5        U R                  [        [        R                  " SU-  [	        U5      5      5      S5        U R                  [        [        R                  " S	U-  [	        U5      S-   5      5      S5        U R                  [        [        R                  " S
U-  [	        U5      S-   5      5      S5        GM{     U R                  [        R                  U R                  S 5        g )Nr   r         @            z\%03oTz\%03o00z\%03o88z\x%02xz\x%02x0z\x%02xzzc                  0    [         R                  " SS5      $ )Nz\911r   r7   rM   r   r   r   rb   8RegexTests.test_sre_character_literals.<locals>.<lambda>  s    
++gr
"r   )r2   rL  r7   rM   rw   r   r   r   r   r  s     r   test_sre_character_literals&RegexTests.test_sre_character_literals  s<   2AT%++hlCF"CDdKT%++i!mSVc\"JKT%++i!mSVc\"JKT%++i!mSV"DEtLT%++j1nc!fsl"KLT%++j1nc!fsl"KL 3 	u{{D,B,B E# 	$r   c                 B   S GHl  nU R                  [        [        R                  " SU-  [	        U5      5      5      S5        U R                  [        [        R                  " SU-  [	        U5      5      5      S5        U R                  [        [        R                  " SU-  [	        U5      5      5      S5        U R                  [        [        R                  " SU-  [	        U5      5      5      S5        U R                  [        [        R                  " SU-  [	        U5      5      5      S5        U R                  [        [        R                  " SU-  [	        U5      5      5      S5        GMo     U R                  [        R                  U R                  S	 5        g )
Nr  z[\%03o]Tz[\%03o0]z[\%03o8]z[\x%02x]z	[\x%02x0]z	[\x%02xz]c                  0    [         R                  " SS5      $ )Nz[\911]r   r  r   r   r   rb   >RegexTests.test_sre_character_class_literals.<locals>.<lambda>  s    
++i
$r   )r2   rL  r7   rM   rw   r   r   BAD_OCTAL_ESCAPEr  s     r   !test_sre_character_class_literals,RegexTests.test_sre_character_class_literals  s"   2AT%++j1nc!f"EFMT%++kAos1v"FGNT%++kAos1v"FGNT%++kAos1v"FGNT%++lQ.>A"GH$OT%++lQ.>A"GH$O 3 	u{{D,A,A D% 	&r   c                 H   U R                  [        R                  " SS5      R                  S5      S5        U R                  [        R                  " SS5      R	                  S5      S5        U R                  [        R                  " SS5      R                  S5      S5        g )Nz(a)|(b)r   rE   r  r  )r2   r7   rM   startendrL   rN   s    r   test_bug_113254RegexTests.test_bug_113254  st    Z5;;A>CZ599!<bAZ5::1=xHr   c                    U R                  [        R                  " SS5      R                  S 5        U R                  [        R                  " SS5      R                  S5        U R                  [        R                  " SS5      R                  S5        U R                  [        R                  " SS5      R                  S5        U R                  [        R                  " SS5      R                  S5        g )	Nz(a)?ari   z(a)(b)?br.  rE   z(?P<a>a)(?P<b>b)?bz(?P<a>a(b))((a)))r2   r7   rM   	lastindex	lastgrouprN   s    r   test_bug_527371RegexTests.test_bug_527371  s    Xc2<<dC[6@@!D%:4@JJ
	]D9CCSIWc2<<a@r   c                 \    U R                  [        R                  U R                  S 5        g )Nc                  .    [         R                  " S5      $ )Nzfoo[a-r7   r8   r   r   r   rb   ,RegexTests.test_bug_545855.<locals>.<lambda>      
--
!r   )r   r7   r   BAD_SETrN   s    r   test_bug_545855RegexTests.test_bug_545855  s#     	u{{DLL ;" 	#r   c                    U R                  [        R                  " SSS-  S-   5      R                  S5      S5        U R                  [        R                  " SSS-  S	-   SS-  -   S
-   5      R                  S5      S5        U R                  [        R                  " SSS-  S-   5      R                  S5      S5        U R                  [        R                  " SSS-  S-   5      R                  S5      S5        g )Nz.*?ci'  r.  r/  r   i!N  z.*?cdi  r   cdei#N  i N  r   deia  z(a|b)*?c)r2   r7   rM   r  rK   rN   s    r   test_bug_418626RegexTests.test_bug_418626  s     	VUT\D-@AEEaH
	WdTkC.?$+.M
/ Q	 Weemd.BCGGJ
	 	j%$,2EFJJ1M
	r   c                     S[         R                  " S5      -   S-   nU R                  [         R                  " U5      =(       a    SS5        g )N[u   ‹]rE   )r7   r  r2   r8   )r   r(  s     r   test_bug_612074RegexTests.test_bug_612074  s8    ELL**S0s+115r   c                    U R                  [        R                  " SSS-  5      S   S5        U R                  [        R                  " SSS-  S-   5      S   S5        U R                  [        R                  " SSS-  S-   5      S   S5        g )Nz(x)*iP  r-   rE   z(x)*yr.   z(x)*?yr|  rN   s    r   test_stack_overflowRegexTests.test_stack_overflow  sz     	VUS[9!<cBWeckC.?@CSIXus{S/@A!DcJr   c           	      N   S nS nS nS n[         R                  " SU4SU4SU4SU4S	/5      nU R                  [        [	        UR
                  R                  S
5      R                  5      5      U R                  5        U R                  UR                  S5      / SQS
45        g )Nc                     U$ r   r   scannertokens     r   s_ident(RegexTests.test_scanner.<locals>.s_ident   s    E\r   c                     SU-  $ )Nzop%sr   r  s     r   
s_operator+RegexTests.test_scanner.<locals>.s_operator!  s    v~(=r   c                     [        U5      $ r   )floatr  s     r   s_float(RegexTests.test_scanner.<locals>.s_float"  s    E%L%8r   c                     [        U5      $ r   )rR   r  s     r   s_int&RegexTests.test_scanner.<locals>.s_int#  s    #e*#4r   z[a-zA-Z_]\w*z\d+\.\d*r\   z=|\+|-|\*|/)z\s+Nr   zsum = 3*foo + 312.50 + bar)	sumzop=rF   zop*fooop+g     s@r
  bar)	r7   Scannerr2   r   r*   r  r   r   scan)r   r  r  r  r  r  s         r   test_scannerRegexTests.test_scanner  s    1=84--/7!;k
>UOnj%A D!  	d7??#:#:2#>#F#FGH


	 	&BC G>?AFC 	Dr   c                     S H]  nU R                  [        R                  " SU-  S5      S S  S5        U R                  [        R                  " SU-  S5      S S  S5        M_     g )N)r   ?*z
((.%s):)?zr  )r  NNa:z)r  za:ri   r|  )r   ops     r   test_bug_448951RegexTests.test_bug_448951/  sd     BU[[);SA!D G U[[);UCAF I  r   c                    U R                  [        R                  " SS5      S S  S5        U R                  [        R                  " SS5      S S  S5        U R                  [        R                  " SS5      S S  S5        U R                  [        R                  " SS5      S S  S5        U R                  [        R                  " S	S5      S S  S
5        U R                  [        R                  " SS5      S S  S5        U R                  [        R                  " SS5      S S  S5        U R                  [        R                  " SS5      S S  S5        g )Nz	^((a)|b)*r   )r.  r   ri   z^(([ab])|c)*)r   r   r   z^((d)|[ab])*)r.  r   Nz^((a)c|[ab])*z^((a)|b)*?c)r   r   ri   z^(([ab])|c)*?dabcd)r  r   r   z^((d)|[ab])*?c)r   r   Nz^((a)c|[ab])*?cr|  rN   s    r   test_bug_725106RegexTests.test_bug_7251068  s0   [%8;=MN^U;A> A 	^U;A> A 	_e<Q? B 	]E:1= @ 	%5v>qA D 	%5u=a@ C 	%6>qA D 	r   c                     U R                  [        R                  " SS5      S S  S5        U R                  [        R                  " SS5      S S  S5        g )Nz(a)(?:(?=(b)*)c)*abbri   ri   Nz(a)((?!(b)*))*)ri   ri   NNr|  rN   s    r   test_bug_725149RegexTests.test_bug_725149J  sP    %8%@C F 	%5u=a@ C 	r   c                      " S S[         5      n[        R                  " U" S5      5      nU R                  UR	                  S5      S 5        g )Nc                       \ rS rSrSrg).RegexTests.test_bug_764548.<locals>.my_unicodeiS  r   N)r   r   r   r   r   r   r   r   
my_unicoder"  S  s    tr   r#  r   r   )rS   r7   r8   r2   rM   )r   r#  r(  s      r   test_bug_764548RegexTests.test_bug_764548Q  s6    ##mmJu-.5)40r   c                     [         R                  " SS5      nU R                  U Vs/ s H  o"S   PM	     sn/ SQ5        g s  snf )Nr  r  r   r  )r7   finditerr2   )r   ititems      r   test_finditerRegexTests.test_finditerW  s7    ^^E<0b1bdq'b13EF1s   A c                     [         R                  " S5      [         R                  " S5      L a  U R                  5         g g )N
bug_926075s
   bug_926075)r7   r8   r:   rN   s    r   test_bug_926075RegexTests.test_bug_926075[  s+    ==&%--*FFIIK Gr   c                 v    SnU R                  [        R                  " U5      R                  S5      / SQ5        g )Nu   [.。．｡]za.b.cri   r   r   )r2   r7   r8   r  r   s     r   test_bug_931848RegexTests.test_bug_931848_  s1    .w/55g> A 	r   c                   ^ [         R                  " SS5      mU R                  [        T5      R	                  5       S5        U R                  [        U4S j5        [         R                  " S5      R                  S5      nU R                  UR                  5       R	                  5       S5        U R                  UR                  5       S 5        g )N\sry  rE   r   c                     > [        T 5      $ r   nextr(  s   r   rb   ,RegexTests.test_bug_581080.<locals>.<lambda>g  	    br   )
r7   r'  r2   r9  rL   assertRaisesStopIterationr8   r  rK   )r   r  r(  s     @r   test_bug_581080RegexTests.test_bug_581080d  s    ^^E5)b&1-)9:--&..u5)..0&9)40r   c                   ^ [         R                  " SS5      mU R                  [        T5      R	                  5       S5        U R                  [        T5      R	                  5       S5        U R                  [        U4S j5        g )Nz.*asdfr  r   r   c                     > [        T 5      $ r   r8  r:  s   r   rb   ,RegexTests.test_bug_817234.<locals>.<lambda>q  r<  r   )r7   r'  r2   r9  rL   r=  r>  )r   r(  s    @r   test_bug_817234RegexTests.test_bug_817234m  sX    ^^E6*b&1b&1-)9:r   c                    SS K nS H  nUR                  U5      nU R                  [        R                  " S5      R	                  U5      S 5        U R                  [        R                  " S5      R	                  U5      SS  S5        M     g )Nr   bBuhHiIlLfds   blar   rE   r   )arrayr2   r7   r8   rM   )r   rJ  typecoderi   s       r   test_empty_arrayRegexTests.test_empty_arrays  sl    %HH%AU]]6288;TBU]]3/55a8>C &r   c                    [        S5      n[        S5      n[        R                  " U[        R                  [        R                  -  5      nU R                  [        UR                  U5      5      S5        [        R                  " U[        R                  [        R                  -  5      nU R                  [        UR                  U5      5      S5        [        R                  " SU-   [        R                  5      nU R                  [        UR                  U5      5      S5        [        R                  " SU-   [        R                  5      nU R                  [        UR                  U5      5      S5        [        R                  " SU-   5      nU R                  [        UR                  U5      5      S5        [        R                  " SU-   5      nU R                  [        UR                  U5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        R                  " SS5      S 5        g )	Ni  i  Tz(?i)z(?iu)(?i)ars   za(?i))rw   r7   r8   r   rX  r2   rL  rM   )r   
upper_char
lower_charr4  s       r   test_inline_flagsRegexTests.test_inline_flags{  s   [
[
MM*egg&78aggj12D9MM*egg&78aggj12D9MM&:-uww7aggj12D9MM&:-uww7aggj12D9MM'J./aggj12D9MM'J./aggj12D9 	ekk(C894@Xs3T:r   c                    [         R                  " S5      nU R                  UR                  SS5      S5        U R                  UR                  SS5      S5        U R                  UR                  SS5      S5        [         R                  " S[         R                  5      nU R                  UR                  SS5      S	5        U R                  UR                  SS5      S
5        U R                  UR                  SS5      S5        g )N$#za
b
za
b#
#za
b
cza
b
c#rd   z#
#za#
b#
#za#
b#
c#)r7   r8   r2   rv   r  r   s     r   test_dollar_matches_twice$RegexTests.test_dollar_matches_twice  s    --$S(3Z@S)4jAS$/8--U__5S(4kBS)4lCS$/8r   c                 H  ^^ [         R                  " S5      m[         R                  " S5      mU R                  [        U R                  U4S j5        U R                  [        U R
                  U4S j5        U R                  [        U R                  U4S j5        U R                  [        U R                  U4S j5        U R                  [        U R                  U4S j5        U R                  [        U R
                  U4S j5        U R                  [        U R                  U4S	 j5        U R                  [        U R
                  U4S
 j5        U R                  [        U R                  S 5        U R                  [        U R                  S 5        U R                  [        U R                  S 5        U R                  [        U R                  S 5        U R                  [        U R                  S 5        U R                  [        U R                  S 5        g )Nr]      .c                  &   > T R                  S5      $ )N   brM   r(  s   r   rb   2RegexTests.test_bytes_str_mixing.<locals>.<lambda>  s    
))D/r   c                  &   > T R                  S5      $ )Nr   r]  bpats   r   rb   r_    s    
**S/r   c                  (   > T R                  SS5      $ Nr\  r   rv   r^  s   r   rb   r_    s    
''$
r   c                  (   > T R                  SS5      $ Nr      cre  r^  s   r   rb   r_    s    
''#t
r   c                  (   > T R                  SS5      $ )Nr\  rh  re  r^  s   r   rb   r_    s    
''$
r   c                  (   > T R                  SS5      $ rd  re  ra  s   r   rb   r_    s    
((4
r   c                  (   > T R                  SS5      $ rg  re  ra  s   r   rb   r_    s    
((3
r   c                  (   > T R                  SS5      $ Nr   r   re  ra  s   r   rb   r_    s    
((3
r   c                  L    [         R                  " S[         R                  5      $ )N   \wr7   r8   rh  r   r   r   rb   r_    s    
--
.r   c                  .    [         R                  " S5      $ )Ns   (?u)\wr  r   r   r   rb   r_        
--

#r   c                  n    [         R                  " S[         R                  [         R                  -  5      $ )N\w)r7   r8   rh  ASCIIr   r   r   rb   r_    s    
--u}}u{{:
;r   c                  L    [         R                  " S[         R                  5      $ )Nz(?u)\w)r7   r8   ru  r   r   r   rb   r_    s    
--	5;;
/r   c                  L    [         R                  " S[         R                  5      $ )N(?a)\wrp  r   r   r   rb   r_    s    
--	5==
1r   c                  .    [         R                  " S5      $ Nz(?au)\wr  r   r   r   rb   r_    rr  r   )r7   r8   r   	TypeErrorSTR_PAT_ON_BYTESBYTES_PAT_ON_STRSTR_PAT_BYTES_TEMPLBYTES_PAT_STR_TEMPLr   BYTES_PAT_UNI_FLAGMIXED_FLAGS)r   rb  r(  s    @@r   test_bytes_str_mixing RegexTests.test_bytes_str_mixing  s   mmC }}T"y$*?*? B 	y$*?*? B 	y$*B*B E 	y$*?*? B 	y$*?*? B 	y$*?*? B 	y$*B*B E 	y$*?*? B 	 	z4+B+B E/ 	0z4+B+B E$ 	%z4+;+; >< 	=z4+;+; >0 	1z4+;+; >2 	3z4+;+; >$ 	%r   c                    S[         R                  4 H  n[         R                  " SU[         R                  -  5      nU R	                  [        UR                  S5      5      S5        [         R                  " SU5      nU R	                  [        UR                  S5      5      S5        M     [         R                  " S[         R                  [         R                  -  5      nU R	                  UR                  S5      S 5        [         R                  " S[         R                  5      nU R	                  UR                  S5      S 5        [         R                  " S[         R                  5      nU R	                  UR                  S5      S 5        [         R                  " S5      nU R	                  UR                  S5      S 5        S[         R                  4 H  n[         R                  " SU[         R                  -  5      nU R	                  UR                  S	5      S 5        [         R                  " S
5      nU R	                  UR                  S	5      S 5        M     U R                  [        U R                  S 5        g )Nr      À   àTrt  u   (?a)Àrx        ro  c                  .    [         R                  " S5      $ rz  r  r   r   r   rb   8RegexTests.test_ascii_and_unicode_flag.<locals>.<lambda>  rr  r   )r7   rh  r8   r  r2   rL  rM   ru  r   r   r  )r   rW  r(  s      r   test_ascii_and_unicode_flag&RegexTests.test_ascii_and_unicode_flag  s   'E--0@0@(@ACT#))F"34d;--u-CT#))F"34d;	 ( mmFEKK%2B2B$BC6*D1mmJ(8(896*D1mmE5;;/6*D1mmI&6*D1 %E--1A1A)ABCSYYw/6--'CSYYw/6	 & 	z4+;+; >$ 	%r   c           	         [         R                  " SS5      nU(       d  U R                  S5        OHU(       a0  US   UR                  S5      :w  d  US   UR                  S5      :w  a  U R                  S5        U(       d  U R                  S5        g US S  S:w  a-  U R                  SR	                  [        US S  5      5      5        g g )	N(?<a>\w)xyz(Failed: expected match but returned Noner   rE   Failed)r-   r-   z0Failed: expected "('x', 'x')" but got {} instead)r7   rM   r:   r   formatasciir  s     r   test_subscripting_match"RegexTests.test_subscripting_match  s    KKT*II@Aadaggaj(AaDAGGAJ,>IIhII@AqTZIIJQQRWXYZ[X\R]^_  r   c                     [         R                  " SS5      n[         R                  " SS5      nU(       a  U(       a  US S  US S  :X  d  U R                  S5        g g )Nz	(?P<a>\w)r-   r  r  )r7   rM   r:   )r   m0m1s      r   test_new_named_groups RegexTests.test_new_named_groups  sF    [[s+[[c*rber!unIIh -r   c           
         U R                  [        R                  " SS5      S 5        U R                  [        R                  " SS5      S 5        U R                  [        R                  " SS5      S 5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS	5      5      S5        U R                  [        [        R                  " S
S5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        R                  " SS5      S 5        U R                  [        R                  " S
S5      S 5        U R                  [        R                  " SS5      S 5        U R                  [        R                  " SS	5      S 5        U R                  [        R                  " SS5      S 5        U R                  [        R                  " SS5      S 5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " S S5      5      S5        U R                  [        [        R                  " S!S5      5      S5        U R                  [        [        R                  " S"S5      5      S5        U R                  [        [        R                  " S#S5      5      S5        U R                  [        [        R                  " S$S5      5      S5        U R                  [        [        R                  " S%S5      5      S5        U R                  [        [        R                  " S&S5      5      S5        U R                  [        [        R                  " S'S5      5      S5        U R                  [        [        R                  " S(S5      5      S5        U R                  [        [        R                  " S)S5      5      S5        U R                  [        [        R                  " S*S5      5      S5        U R                  [        [        R                  " S+S5      5      S5        U R                  [        [        R                  " S,S5      5      S5        U R                  [        [        R                  " S-S5      5      S5        U R                  [        [        R                  " S.S/5      5      S5        U R                  [        [        R                  " S0S15      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        R                  " S.S25      S 5        U R                  [        R                  " S0S25      S 5        U R                  [        R                  " SS25      S 5        U R                  [        R                  " S3S/5      S 5        U R                  [        R                  " S4S15      S 5        U R                  [        R                  " S5S5      S 5        U R                  [        [        R                  " S3S25      5      S5        U R                  [        [        R                  " S4S25      5      S5        U R                  [        [        R                  " S5S25      5      S5        U R                  [        [        R                  " S6S5      5      S5        U R                  [        [        R                  " S6S75      5      S5        U R                  [        [        R                  " S8S5      5      S5        U R                  [        [        R                  " S9S75      5      S5        U R                  [        [        R                  " S:S75      5      S5        U R                  [        [        R                  " S:S5      5      S5        U R                  [        [        R                  " SS/5      5      S5        U R                  [        [        R                  " SS75      5      S5        U R                  [        [        R                  " SS;5      5      S5        U R                  [        R                  " S<S5      R	                  5       S=5        U R                  [        R                  " S<S>5      R	                  5       S?5        U R                  [        R
                  " S<S@5      / SAQ5        U R                  [        R
                  " SBS@5      SCSD/5        U R                  [        R
                  " S<SE5      / SFQ5        U R                  [        [        R                  " S9S75      5      S5        SGnSHn[        SIR                  5       5      n/ SUSJ4PSKUSJ4PS5USL4PSMUSL4PS.USN4PSOUSN4PS3USP4PSQUSP4PSRUSS4PSTUSU4PSVUSW4PSXUSY4PSZUS[4PS\US]4PS^PS_PS`PSaPSUSb4PScUSb4PSUSd4PSeUSd4PSUSf4PSgUSf4PSUSh4PSiUSh4PSjUSk4PSlUSm4PSnUSo4PSpUSq4PSrUSs4PStUSu4PSUSb4PSvUSb4PSwUSd4PSxUSd4PSyUSf4PSzUSf4PS{USh4PS|USh4PS}USk4PS~USm4PSUSo4PSUSq4PSUSs4PSUSu4PnU HU  u  pVn US S R                  [        R
                  " XV5      5      U:w  a"  U R                  SR                  U5      5        MU  MW     U R                  [        [        R                  " SS/5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        g ! [         a6  nU R                  SR                  U[        U5      5      5         S nAGM%  S nAff = f)Ns   (?ai)r  s	   (?ai)\xC0s   (?a)\wrt  r  Ts   (?L)\d   0s   (?L)\s    s   (?L)\w   a   ?s   (?L)\Ds   (?L)\Ss   (?L)\Wz\p{Cyrillic}u   Аz(?i)\p{Cyrillic}z\p{IsCyrillic}z\p{Script=Cyrillic}z\p{InCyrillic}z\p{Block=Cyrillic}z[[:Cyrillic:]]z[[:IsCyrillic:]]z[[:Script=Cyrillic:]]z[[:InCyrillic:]]z[[:Block=Cyrillic:]]z\P{Cyrillic}rs   z\P{IsCyrillic}z\P{Script=Cyrillic}z\P{InCyrillic}z\P{Block=Cyrillic}z\p{^Cyrillic}z\p{^IsCyrillic}z\p{^Script=Cyrillic}z\p{^InCyrillic}z\p{^Block=Cyrillic}z[[:^Cyrillic:]]z[[:^IsCyrillic:]]z[[:^Script=Cyrillic:]]z[[:^InCyrillic:]]z[[:^Block=Cyrillic:]]z\dr  r5  r  r  z\Dz\Sz\Wz\p{L}ri   z\p{Lu}\p{Ll}rO  r  \XrU     àr     aààeééri   r  r  e   éu   é\X{3}   aàà   eéé   
́Ár   u   ́u   Áu   -09AZaz_Γγs   -09AZaz_z#Ll Lm Lo Lt Lu Mc Me Mn Nd Nl No Pcu   09AZaz_Γγz
[[:word:]]r   z[[:^word:]]09z[[:digit:]]u
   -AZaz_Γγz[[:^digit:]]z[[:alpha:]]u   AZazΓγz[[:^alpha:]]z-09_z[[:alnum:]]u
   09AZazΓγz[[:^alnum:]]z-_z[[:xdigit:]]09Aaz[[:^xdigit:]]u   -Zz_Γγ)z\p{InBasicLatin}   aári   )z\P{InBasicLatin}r     á)z(?i)\p{InBasicLatin}r  ri   )z(?i)\P{InBasicLatin}r  r  s   09AZaz_s   (?L)[[:word:]]   -s   (?L)[[:^word:]]s   09s   (?L)[[:digit:]]s   -AZaz_s   (?L)[[:^digit:]]s   (?L)[[:alpha:]]s   AZazs   (?L)[[:^alpha:]]s   -09_s   (?L)[[:alnum:]]s   09AZazs   (?L)[[:^alnum:]]s   -_s   (?L)[[:xdigit:]]s   09Aas   (?L)[[:^xdigit:]]s   -Zz_s   (?a)[[:word:]]s   (?a)\Ws   (?a)[[:^word:]]s   (?a)\ds   (?a)[[:digit:]]s   (?a)\Ds   (?a)[[:^digit:]]s   (?a)[[:alpha:]]s   (?a)[[:^alpha:]]s   (?a)[[:alnum:]]s   (?a)[[:^alnum:]]s   (?a)[[:xdigit:]]s   (?a)[[:^xdigit:]]r   z
Failed: {}zFailed: {} raised {}z\p{NumericValue=0}z\p{NumericValue=1/2}   ½z\p{NumericValue=0.5})r2   r7   rM   rL  rL   r9   setr  rn  r:   r  	Exceptionr  )	r   chars_uchars_bword_settestsr   charsexpectedr  s	            r   test_propertiesRegexTests.test_properties  s   \7;TB]G<dCZ94@ekk%894@ 	ekk*d;<dCekk*d;<dCekk*d;<dCZ6=Z6=Z6=Z6=Z6=Z6=ekk*d;<dCekk*d;<dCekk*d;<dCekk/
)+ ,-1	3ekk*=
)+ ,-1	3ekk*;
)+ ,-1	3ekk*@
)+ ,-1	3ekk*;
)+ ,-1	3ekk*?
)+ ,-1	3ekk*;
)+ ,-1	3ekk*=
)+ ,-1	3ekk*B
)+ ,-1	3ekk*=
)+ ,-1	3ekk*A
)+ ,-1	3 	ekk/
&( )*.	0ekk*;
&( )*.	0ekk*@
&( )*.	0ekk*;
&( )*.	0ekk*?
&( )*.	0ekk*:
&( )*.	0ekk*<
&( )*.	0ekk*A
&( )*.	0ekk*<
&( )*.	0ekk*@
&( )*.	0ekk*<
&( )*.	0ekk*>
&( )*.	0ekk*C
&( )*.	0ekk*>
&( )*.	0ekk*B
&( )*.	0 	ekk%56=ekk%56=ekk%56=UC0$7UC0$7UC0$7UC0$7UC0$7UC0$7ekk%56=ekk%56=ekk%56=ekk(C894@ekk(C894@ekk)S9:DAekk)S9:DAekk(C894@ekk(C894@ekk%56=ekk%56=ekk%56=UF388:FCUI6;;=vFu
$&(	 	x
$&(6'G	Iu.CD
-	/ 	ekk)S9:DA(<BBDE1
G231
G%:;1
 GS!1
 Wc*	1

 GT"1
 Wd+1
 G121
 g';<1
 W&891
 gv.1
 W&:;1
 gt,1
 gv.1
 w(:;1
 01
  3!1
" 4#1
$ 7%1
( *-)1
*  *5+1
, $'-1
. !'40/1
0 %(11
2 !'5131
4 ),51
6 "7I671
8 !'7391
: "7G4;1
< !'95=1
> "7E2?1
@ "7G4A1
B #GW5C1
F *-G1
H  *5I1
J $'K1
L !'40M1
N %(O1
P !'51Q1
R ),S1
T "7I6U1
V !'73W1
X "7G4Y1
Z !'95[1
\ "7E2]1
^ "7G4_1
` #GW5a1
d ).$GHL#A;##EMM'$ABhNIIl11':; O ). 	ekk*?EF
	ekk*A
(* +,0	2ekk*A
(* +,0	2  L		077qJKKLs   !Ay
z*y??zc                 J   U R                  [        R                  " SS5      S/5        U R                  [        R                  " SS5      SS/5        U R                  [        R                  " SS5      / SQ5        U R                  [        R                  " S	S5      / S
Q5        g )N\w+u    हिन्दी,   हिन्दीz\W+r  ,r  )r  r  r  z(?V1)\B)r   u    हu   िu   नu   ्u   दu   ी,r   )r2   r7   r9   r  rN   s    r   test_word_classRegexTests.test_word_class  s    v
241
2	4 	v
24693Z	AZ
2467	8 	Z
246A	Br   c                 V    U R                  [        R                  " SS5      SS/5        g )N\G\w{2}abcd efr.  r/  r  rN   s    r   test_search_anchorRegexTests.test_search_anchor  s!    z9=d|Lr   c           	      6   U R                  [        R                  " SS5      / SQ5        U R                  [        R                  " SSSS9/ SQ5        U R                  [        R                  " SS5      SS	/5        U R                  [        R                  " SSSS9/ S
Q5        U R                  [        R                  " SSSS9SS/5        U R                  [        R                  " SS5       Vs/ s H  oS   PM	     sn/ SQ5        U R                  [        R                  " SSSS9 Vs/ s H  oS   PM	     sn/ S
Q5        U R                  [        R                  " SS5       Vs/ s H  oS   PM	     sn/ SQ5        U R                  [        R                  " SSSS9 Vs/ s H  oS   PM	     sn/ S
Q5        U R                  [        R                  " SS5      / SQ5        U R                  [        R                  " SS5      / SQ5        U R                  [        R                  " SS5      / SQ5        U R                  [        R                  " SS5      / SQ5        U R                  [        R                  " SS5       Vs/ s H  oS   PM	     sn/ SQ5        U R                  [        R                  " SS5       Vs/ s H  oS   PM	     sn/ SQ5        U R                  [        R                  " SS5       Vs/ s H  oS   PM	     sn/ SQ5        U R                  [        R                  " SS5       Vs/ s H  oS   PM	     sn/ SQ5        U R                  [        R                  " SS5      SS/5        U R                  [        R                  " SS5      SS/5        U R                  [        R                  " SS5      / 5        U R                  [        R                  " SS5      S/5        U R                  [        R                  " S S!5      / S"Q5        U R                  [        R                  " S#S!5      / S"Q5        U R                  [        R                  " S$S!5      / S%Q5        U R                  [        R                  " S&S!5      / S%Q5        U R                  [        R                  " S'SS(S)S*9S+S,/5        U R                  [        R                  " S'SS(S-S*9S+S,/5        U R                  [        R                  " S'SS(S)S*9 Vs/ s H  oS   PM	     snS+S,/5        U R                  [        R                  " S'SS(S-S*9 Vs/ s H  oS   PM	     snS+S,/5        U R                  [        R                  " SSS(S)S*9 Vs/ s H  oS   PM	     snS,S+/5        U R                  [        R                  " SSS(S-S*9 Vs/ s H  oS   PM	     snS,S+/5        U R                  [        R                  " SSS(S)S*9S,S+/5        U R                  [        R                  " SSS(S-S*9S,S+/5        U R                  [        R                  " S.S/[        R                  5      S0S1/5        U R                  [        R                  " S2S/[        R                  5      S1S0/5        U R                  [        R                  " S3S5      S	/5        U R                  [        R                  " S3SSS9S	S/5        U R                  [        R                  " S4S55      S6S7/5        U R                  [        R                  " S8S55      S9S:/5        U R                  [        R                  " S3S5       Vs/ s H  oS   PM	     snS	/5        U R                  [        R                  " S3SSS9 Vs/ s H  oS   PM	     snS	S/5        U R                  [        R                  " S4S55       Vs/ s H  oS   PM	     snS;S</5        U R                  [        R                  " S8S55       Vs/ s H  oS   PM	     snS=S>/5        U R                  [        R
                  " S?S?5      R                  5       S@5        U R                  [        R
                  " SAS?5      R                  5       S@5        U R                  [        R
                  " SBSC5      R                  5       S@5        U R                  [        R
                  " SDSC5      R                  5       S@5        U R                  [        R                  " SESFS5      S5        U R                  [        R                  " SGSFS5      S5        g s  snf s  snf s  snf s  snf s  snf s  snf s  snf s  snf s  snf s  snf s  snf s  snf s  snf s  snf s  snf s  snf )HNz(?r).r   )r   r   ri   T
overlapped(?r)..abcder  r"  r  r/  r"  r.  (?r)(.)(-)(.)a-b-cr   r   r   ri   r   r   r   ^|\w+foo barr   r	  r  
(?V1)^|\w+	(?r)^|\w+r  r	  r   (?rV1)^|\w+r  r  r.  r/  z.{2}(?<=\G.*)r  z(?r)\G\w{2}z(?r)\w{2}\Gefzq*qqwe)qqr   r   r   z(?V1)q*z(?r)q*)r   r   r  r   z(?rV1)q*r]   rE   rF   r\  r]  r   r   r  z[ab]aBri   Bz(?r)[ab]z(?r).{2}(\w+) (\w+)zfirst second third fourth fifthrC  )thirdfourthz(?r)(\w+) (\w+))r  fifth)rB  r  r@  zthird fourthzfourth fifthzsecond thirdrQ  r  z
(?r)abcdefz
(?i)abcdefABCDEFz(?ir)abcdef(.)r   (?r)(.))r2   r7   r9   r'  r   rK   rL   rv   r  s     r   test_search_reverseRegexTests.test_search_reverse  s   x7Ix4H K 	y':T4LIy'dK
"	$'7,o>	@ 	x(GH(G1A$(GH K 	y')  )1A$ ) 5	7x(GH(G1A$(GH K 	y')  )1A$ ) 5	7 	x; > 	}i@ C 	|Y? B 	~yA D 	 	x(KL(K1A$(KL
	}
)  )1A$ ) )	+|
)  )1A$ ) )	+~
)  )1A$ ) )	+ 	z9=d|L'7@4,O~yA2F~yAD6Juf57IJz6:<NOy&9;MN{F; > 	 	sF!Ds
G 	sF"E
H 	sF)  )1A$ ) Cj	"sF)  )1A$ ) Sz	# 	wA)  )1A$ ) Cj	"wA)  )1A$ ) Sz	#wAaH3
K 	wAbI*	 	wegg>c
K{D%''BS#JO{E:TFC{EdK,	~
+-/B E /	 	'9
+-/B E /	 	{E(JK(J1A$(JK&	{E)  )1A$ ) "D\	+~
+)- . )-1A$ )- .0>
0	 	7I
+)- . )-1A$ )- .0>
0	 	h9>>@&IlH=BBDfMlH=BBDfMmX>CCEvN65%8%@:ue<eDm IH M$( L..s`   /e*e&e!ee=e$9e)5e.e3e8 e=<fffffc                 R    U R                  [        R                  " SS5      S 5        g )Nz(?>a*)ar:  r  rN   s    r   test_atomicRegexTests.test_atomic  s    j$7>r   c                    U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " S	S
5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      S 5        U R                  [        R                  " SS5      S 5        U R                  [        R                  " SS5      S 5        U R                  [        R                  " SS5      S 5        U R                  [        R                  " SS
5      S 5        U R                  [        R                  " SS5      S 5        U R                  [        R                  " SS5      S 5        U R                  [        R                  " SS5      S 5        g )Nza?ari   rU  za*arG   rI   za+aza{1,3}az	(?:ab)?abr.  r  z	(?:ab)*ababababr  z	(?:ab)+abz(?:ab){1,3}abza?+aza*+aza++aza{1,3}+az
(?:ab)?+abz
(?:ab)*+abz
(?:ab)++abz(?:ab){1,3}+abr2   r7   rK   rL   rN   s    r   test_possessiveRegexTests.test_possessive  s   fc27796Bfe499;VDfe499;VDj%8==?H 	lD9>>@&IlH=BBDfMlH=BBDfM&6AFFH K 	 	gs3T:gu5t<gu5t<k594@ 	mT:DAmX>EmX>E&7BDIr   c                 	   [         R                  S:  a*  U R                  [        R                  " SS5      / SQ5        O(U R                  [        R                  " SS5      S/5        U R                  [        R                  " SS5      / SQ5        U R                  [        R
                  " SS5      / SQ5        U R                  [        R                  " SS5       Vs/ s H  oS	   PM	     sn/ SQ5        U R                  [        R
                  " S
S5      / SQ5        U R                  [        R                  " S
S5       Vs/ s H  oS	   PM	     sn/ SQ5        U R                  [        R
                  " SS5      / SQ5        U R                  [        R                  " SS5       Vs/ s H  oS	   PM	     sn/ SQ5        U R                  [        R
                  " SS5      / SQ5        U R                  [        R                  " SS5       Vs/ s H  oS	   PM	     sn/ SQ5        [         R                  S:  ac  U R                  [        R                  " SS5      / SQ5        U R                  [        R                  " SS5       Vs/ s H  oPM     sn/ SQ5        O`U R                  [        R                  " SS5      S/5        U R                  [        R                  " SS5       Vs/ s H  oPM     snS/5        [         R                  S:  ac  U R                  [        R                  " SS5      / SQ5        U R                  [        R                  " SS5       Vs/ s H  oPM     sn/ SQ5        O`U R                  [        R                  " SS5      S/5        U R                  [        R                  " SS5       Vs/ s H  oPM     snS/5        U R                  [        R                  " SS5      / SQ5        U R                  [        R                  " SS5       Vs/ s H  oPM     sn/ SQ5        U R                  [        R                  " SS5      / SQ5        U R                  [        R                  " SS5       Vs/ s H  oPM     sn/ SQ5        g s  snf s  snf s  snf s  snf s  snf s  snf s  snf s  snf s  snf s  snf )Nr   z\bry  )r   ri   r  r   r   r  r  r  r  r   r  r  r  r  r   r   )r   r-   ri   r-   r   r-   r   r   z(?r))r   r   r-   r   r-   ri   r-   r   z(?V1)z(?rV1))r   r   r2   r7   r  r9   r'  r  r  s     r   test_zerowidthRegexTests.test_zerowidth8  s   y(U[[6 9  U[[6@Z7 : 	 	x; > 	x(KL(K1A$(KL
	|Y? B 	|
)  )1A$ ) )	+}i@ C 	}
)  )1A$ ) )	+~yA D 	~
)  )1A$ ) )	+ y(U[[X6 9! "X)FG)FAa)FG J0 1 U[[X6
CX)FG)FAa)FGj y(U[[: =! ")JK)JAa)JK46 U[[:XJG)JK)JAa)JKj 	Wh7 : 	U__Wh%GH%G!%GH K, 	- 	Xx8 ; 	U__Xx%HI%H!%HI L, 	-U M H H L L
 I
 Js<   RR'R!R&R+'R0R5>R:R?Sc                    U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      S 5        U R                  [        R                  " SS5      S 5        U R                  [        R                  " SS5      S 5        U R                  [        R                  " SS[        R                  S	9S 5        U R                  [        R                  " S
S[        R                  S	9S 5        U R                  [        R                  " SS[        R                  S	9R                  5       S5        g )Nz(?i)Abr.  r  z(?i:A)bzA(?i)bz(?V0)Abz(?V1)Abz(?-i)Abrm  z(?-i:A)bzA(?-i)b)r2   r7   rK   rL   r   rN   s    r   test_scoped_and_inline_flags'RegexTests.test_scoped_and_inline_flagsr  s
   i6;;=vFj$7<<>Gi6=j$7>j$7>j$eggFMk4uwwGNj$eggFKKM
	r   c                 B   U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        g )Nz(?:a+)+rG   rI   z(?:(?:ab)+c)+abcabcr  z
(?:a+){2,}r  rN   s    r   test_repeated_repeats RegexTests.test_repeated_repeats  sw    j%8==?H&6AFFH K 	 	mU;@@BFKr   c           	      	   U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      S 5        U R                  [        R                  " SS5      S 5        U R                  [        R                  " SS5      R                  5       S5        U R                  [	        [        R
                  " SS5      5      S5        U R                  [        R
                  " S	S5      S 5        U R                  [	        [        R
                  " S
S5      5      S5        U R                  [        R
                  " SS5      S 5        U R                  [        R
                  " SS5      S 5        U R                  [        R
                  " SS5      S 5        U R                  [	        [        R
                  " SS5      5      S5        U R                  [        R
                  " SS5      S 5        U R                  [	        [        R
                  " SS5      5      S5        U R                  [	        [        R
                  " SS5      5      S5        U R                  [        R
                  " SS5      S 5        U R                  [	        [        R
                  " SS5      5      S5        U R                  [        R
                  " SS5      S 5        U R                  [	        [        R
                  " SS5      5      S5        U R                  [        R
                  " SS5      S 5        U R                  [        R
                  " SS5      S 5        U R                  [        R
                  " SS5      S 5        U R                  [	        [        R
                  " SS5      5      S5        U R                  [	        [        R
                  " SS5      5      S5        U R                  [        R
                  " SS5      S 5        U R                  [	        [        R
                  " SS5      5      S5        U R                  [        [        [        R                  " S5      5      5      U R                  5        g )Nz123(?<=a\d+)a123rE   r   b123z123(?<!a\d+)z(a)b(?<=b)(c)r   Tz(a)b(?<=c)(c)z(a)b(?=c)(c)z(a)b(?=b)(c)z(?:(a)|(x))b(?<=(?(2)x|c))cz(?:(a)|(x))b(?<=(?(2)b|x))cz(?:(a)|(x))b(?<=(?(2)x|b))cz(?:(a)|(x))b(?<=(?(1)c|x))cz(?:(a)|(x))b(?<=(?(1)b|x))cz(?:(a)|(x))b(?=(?(2)x|c))cz(?:(a)|(x))b(?=(?(2)c|x))cz(?:(a)|(x))b(?=(?(1)b|x))cz(?:(a)|(x))b(?=(?(1)c|x))cz(a)b(?<=(?(2)x|c))(c)z(a)b(?<=(?(2)b|x))(c)z(a)b(?<=(?(1)c|x))(c)z(a)b(?<=(?(1)b|x))(c)z(a)b(?=(?(2)x|c))(c)z(a)b(?=(?(2)b|x))(c)z(a)b(?=(?(1)c|x))(c)z(a)\2(b))
r2   r7   rK   rL   rL  rM   r   r*   r8   r   rN   s    r   test_lookbehindRegexTests.test_lookbehind  sn   ov>CCEvNov>Eov>Eov>CCEvNekk/5ABDI_e<dCekk.%@A4H^U;TB%BEJ
	%BEJ
	ekk*G
 	%BEJ
	ekk*G
 	 	ekk*F
 	%A5I
	ekk*F
 	%A5I
	ekk*F
 	 	%<eDdK%<eDdK%<eDdKekk*A5IJ
	 	ekk*@%HI
	%;UCTJekk*@%HI
	 	d5==#=>?


	r   c                 R   [         R                  S:  a)  U R                  [        R                  " SSS5      S5        O(U R                  [        R                  " SSS5      S5        U R                  [        R                  " SSS5      S5        [         R                  S:  a)  U R                  [        R                  " SSS5      S	5        O(U R                  [        R                  " SSS5      S
5        U R                  [        R                  " SSS5      S	5        [         R                  S:  a)  U R                  [        R                  " SSS5      S5        O(U R                  [        R                  " SSS5      S5        U R                  [        R                  " SSS5      S5        g )Nr   z(?V0)(x)?(y)?z\2-\1r  zy-x-zy-xz(?V1)(x)?(y)?r-   z-x-z-xr.   zy--zy-r   rN   s    r   test_unmatched_in_sub RegexTests.test_unmatched_in_sub  sD    y(UYY'74H UYY'74H#3XtDfMy(UYY'73GOUYY'73GN#3XsCUKy(UYY'73GOUYY'73GN#3XsCUKr   c                 p   [         R                  " S5      n[        R                  S:  a$  U R	                  UR                  S S5      S5        O#U R	                  UR                  S S5      S5        U R	                  UR                  S5       Vs/ s H  o"R                  5       PM     snSS	/5        [         R                  " S
5      nU R	                  UR                  S S5      S5        U R	                  UR                  S5       Vs/ s H  o"R                  5       PM     snSS	/5        g s  snf s  snf )NzD(?mV0)(?P<trailing_ws>[ \t]+\r*$)|(?P<no_final_newline>(?<=[^\n])\Z)r   c                 &    SU R                   -   S-   $ N<>r  r`   s    r   rb   +RegexTests.test_bug_10328.<locals>.<lambda>      akk0AC0Gr   zfoobar )z%foobar<trailing_ws><no_final_newline>r   c                 &    SU R                   -   S-   $ r  r  r`   s    r   rb   r    r	  r   )zfoobar<trailing_ws>rE   r  r   zD(?mV1)(?P<trailing_ws>[ \t]+\r*$)|(?P<no_final_newline>(?<=[^\n])\Z)c                 &    SU R                   -   S-   $ r  r  r`   s    r   rb   r    s    C!++,=,Cr   )r7   r8   r   r   r2   r   r'  r   r'  s      r   test_bug_10328RegexTests.test_bug_10328  s   mmcdy(SXX&GFH SXX&G46S\\)-DE-D'')-DE
H 	mmcd"C
B	DS\\)-DE-D'')-DE
H 	 F
 Fs   D.
D3c                    U R                  [        R                  " SS5      SS/5        U R                  [        R                  " SSSS9/ SQ5        U R                  [        R                  " SS5      S	S
/5        U R                  [        R                  " SSSS9/ SQ5        U R                  [        R                  " SSSS9SS/5        U R                  [        R                  " SS5       Vs/ s H  oS   PM	     snSS/5        U R                  [        R                  " SSSS9 Vs/ s H  oS   PM	     sn/ SQ5        U R                  [        R                  " SS5       Vs/ s H  oS   PM	     snS	S
/5        U R                  [        R                  " SSSS9 Vs/ s H  oS   PM	     sn/ SQ5        U R                  [        R                  " SSSS9 Vs/ s H  oR	                  5       PM     snSS/5        U R                  [        R                  " SSSS9 Vs/ s H  oR	                  5       PM     snSS/5        g s  snf s  snf s  snf s  snf s  snf s  snf )N..r  r.  r/  Tr  )r.  r"  r/  r  r  r  r"  r  z	(.)(-)(.)r  r  r  r   r  )r2   r7   r9   r'  rZ  r  s     r   test_overlappedRegexTests.test_overlapped  s@   ug6tEug$G J 	y':T4LIy'dK
"	$|WNO
,	. 	ug(FG(F1A$(FG$
J 	ug)  )1A$ ) 5	7y'(JK(J1A$(JK,	y')  )1A$ ) 5	7 	enn\
d/$ % /$((* /$ %'6&H	Jenn=M
d/$ % /$((* /$ %'6&H	J HK%%s$   /I*I&I!II"Ic                     U R                  [        R                  " SS5      / SQ5        U R                  [        R                  " SS5       Vs/ s H  oPM     sn/ SQ5        g s  snf )Nr  za,b,,c,)ri   r   r   r   r   )r2   r7   r  r  r  s     r   test_splititerRegexTests.test_splititer  sS    T957NOU__T9%EF%E!%EF I 	Fs   A$c                    U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      / SQ5        U R                  [        R                  " SS5      S	S
/5        U R                  [        R                  " SS5      / SQ5        g )Nr  r  rU  r  r  r  r  r  r  r  r  r  )r2   r7   rM   rL   r9   rN   s    r   test_graphemeRegexTests.test_grapheme  s    UF388:FCUI6;;=vFu
$&(	 	x
$&(6'G	Iu.CD
-	/r   c                    SnU R                  [        R                  " SU5      / SQ5        U R                  [        R                  " SU5      / SQ5        SnU R                  [        R                  " SU5      / SQ5        U R                  [        R                  " SU5      / SQ5        SnU R                  [        R                  " SU5      / S	Q5        U R                  [        R                  " SU5      / S
Q5        g )Nz4The quick ("brown") fox can't jump 32.3 feet, right?r  )r   Ther  quickz ("brownz") foxr  can'tr  jumpr  32r]   3r  feet, rightr  z(?V1w)\b)r   r  r  r  r  r,  "r  r&  )r  r  r  can'tr  r   r  z32.3r  r#  r  r  r%  r  r   zThe  fox)r   r  z  r  r   zcan't aujourd'hui l'objectif)r   r  r  r  r  aujourdr  huir  lr  objectifr   )r   r(  r  zaujourd'huir  z
l'objectifr   )r2   r7   r  r   texts     r   test_word_boundaryRegexTests.test_word_boundary  s    FZ6 9 	 	[$7 : 	
 Z6 9 	[$7 : 	 .Z6 9 	 	[$7 :0 	1r   c                    U R                  [        R                  " SS5      SS/5        U R                  [        R                  " SS5      S/5        U R                  [        R                  " SS5      SS/5        U R                  [        R                  " S	S5      SS/5        U R                  [        R                  " S	S5      SS/5        U R                  [        R                  " S	S5      SS/5        U R                  [        R                  " S
S5      R	                  5       S5        U R                  [        R                  " S
S5      S 5        U R                  [        R                  " S
S5      S 5        U R                  [        R                  " SS5      R	                  5       S5        U R                  [        R                  " SS5      S 5        U R                  [        R                  " SS5      S 5        U R                  [        R                  " SS5      R	                  5       S5        U R                  [        R                  " SS5      R	                  5       S5        U R                  [        R                  " SS5      S 5        U R                  [        R                  " SS5      R	                  5       S5        U R                  [        R                  " SS5      R	                  5       S5        U R                  [        R                  " SS5      R	                  5       S5        U R                  [        R                  " SS5      R	                  5       S5        U R                  [        R                  " SS5      R	                  5       S5        U R                  [        R                  " SS5      S 5        U R                  [        R                  " SS5      R	                  5       S5        U R                  [        R                  " SS5      R	                  5       S5        U R                  [        R                  " SS5      R	                  5       S5        U R                  [        R                  " SS5      R	                  5       S5        U R                  [        R                  " SS5      R	                  5       S5        U R                  [        R                  " SS5      S 5        U R                  [        R                  " SS5      R	                  5       S5        U R                  [        R                  " SS5      R	                  5       S5        U R                  [        R                  " SS5      R	                  5       S5        g )Nz.+zLine 1
Line 2
zLine 1zLine 2zLine 1Line 2zLine 1
Line 2
zLine 1zLine 2z(?w).+^abcr   r   z
abczabcz(?w)^abcabc$zabc
zabcz(?w)abc$(?m)^abcrE   z	(?mw)^abc(?m)abc$z	(?mw)abc$)r2   r7   r9   rK   r  rN   s    r   test_line_boundaryRegexTests.test_line_boundary   s   u.@AH
D 	u.@A
	 u.DEz
"	$y2DEX
	 y2DEX
	 y2HIX
	  	gu5;;=qAgw7>gw7>k59??A1Ek7;TBk7;TBgu5;;=qAgw7==?Cgw7>k59??A1Ek7;AACQGk7;AACQGk59??A1Ek7;AACQGk7;TBlE:@@BAFlG<BBDaHlG<BBDaHk59??A1Ek7;AACQGk7;TBlE:@@BAFlG<BBDaHlG<BBDaHr   c                 	   U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S	5        U R                  [        R                  " SS
5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S	5        U R                  [        R                  " SS
5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R	                  5       S/S/S.5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R	                  5       S S!// S.5        g )"Nz(?:(a)|(b))(c)r!  r&  r"  rm  z(?:(?<a>a)|(?<b>b))(?<c>c)z!(?<a>a)(?:(?<b>b)|(?<c>c))(?<d>d)r2  )ri   r   Nr0  acd)ri   Nr   r0  z(a)(?:(b)|(c))(d)z(a)(?|(b)|(b))(d))ri   r   r0  z(?|(?<a>a)|(?<b>b))(c)z(?|(?<a>a)|(?<a>b))(c))ri   r   )r   r   z$(?|(?<a>a)(?<b>b)|(?<b>c)(?<a>d))(e)abe)ri   r   r  r  )r0  r   r  z (?|(?<a>a)(?<b>b)|(?<b>c)(d))(e)z(?|(?<a>a)(?<b>b)|(c)(d))(e))r   r0  r  z (?|(?<a>a)(?<b>b)|(c)(?<a>d))(e)ri   r   )ri   r   )r0  Nr  r   r0  )r2   r7   rM   rZ  capturesdictrN   s    r   test_branch_resetRegexTests.test_branch_resetJ  s   %6=DDF I 	%6=DDF I 	%B
*	,%B
*	, 	%I
0	2%I
0	2%95AHHJ
	! 	%95AHHJ
	!%95AHHJ
	%>ELLN
	%>ELLN
	%>ELLN
	 	%>ELLN
	 	%L
?	,%L
?	,%H
?	,%H
?	,%D
?	,%D
?	, 	%H
?	,%H
uC5!9	;%H
+	-%H
Sz!;	=r   c           	         U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS	S
5      S5        U R                  [        R
                  " SS5      S/5        U R                  [        R
                  " SS5      S/5        U R                  [        R
                  " SS5      SS/5        U R                  [        R
                  " SS5      SS/5        U R                  [        R
                  " SS5      SS/5        U R                  [        R
                  " SS5      SS/5        U R                  [        R
                  " SS5      / SQ5        U R                  [        R
                  " SS5      / SQ5        U R                  [        R
                  " SS5      S/5        U R                  [        R
                  " SS5      S/5        U R                  [        R
                  " SS5      S/5        U R                  [        R
                  " SS5      S/5        U R                  S R                  [        R
                  " S!S"5      5      S#5        U R                  S R                  [        R
                  " S$S"5      5      S%5        U R                  S R                  [        R
                  " S&S'5      5      S(5        U R                  S R                  [        R
                  " S)S*5      5      S+5        U R                  S R                  [        R
                  " S,S*5      5      S+5        U R                  S R                  [        R
                  " S-S.5      5      S*5        S R                  S/ [        S05       5       5      nU R                  [        [        R
                  " S1U5      5      S25        U R                  [        [        R
                  " S3U5      5      S45        U R                  [        [        R
                  " S5U5      5      S65        U R                  [        [        R
                  " S7U5      5      S85        U R                  [        [        R
                  " S9U5      5      S85        U R                  [        [        R
                  " S:U5      5      S65        U R                  [        [        R
                  " S;U5      5      S<5        U R                  [        [        R
                  " S=U5      5      S>5        U R                  [        [        R
                  " S?U5      5      S@5        U R                  [        [        R
                  " SAU5      5      SB5        U R                  [        [        R
                  " SCU5      5      SB5        U R                  [        [        R
                  " SDU5      5      SE5        U R                  [        [        R
                  " SFU5      5      SG5        U R                  [        [        R
                  " SHU5      5      SG5        U R                  [        [        [        R                  " SI5      5      5      U R                  5        U R                  [        R
                  " SJSK5      SSL/5        U R                  [        R
                  " SMSK5      SSL/5        U R                  [        R
                  " SNSK5      SSL/5        U R                  [        R
                  " SOSK5      SSL/5        g )PNz[a]ri   rU  z(?i)[a]rs   z[a-b]z	(?i)[a-b]z(?V0)([][])r   za[b]cr  z[\p{Alpha}]a0z(?i)[\p{Alpha}]A0z[a\p{Alpha}]ab0r   z[a\P{Alpha}]r  z(?i)[a\p{Alpha}]z(?i)[a\P{Alpha}]z[a-b\p{Alpha}]abC0)ri   r   Cz(?i)[a-b\p{Alpha}]AbC0)rs   r   rC  z[\P{Alpha}]z[^\p{Alpha}]z[^\P{Alpha}]r   z[^\d-h]za^b12c-hza^bcz[^\dh]za^bc-z	[^h\s\db]z	a^b 12c-hza^c-z[^b\w]ry  r  z[^b\S]z[^8\d]za 1b2c              3   8   #    U  H  n[        U5      v   M     g 7fr   rw   .0r   s     r   	<genexpr>&RegexTests.test_set.<locals>.<genexpr>  s     9LqCFFL   r  z	\p{ASCII}r  z
\p{Letter}u   z	\p{Digit}r   z(?V1)[\p{ASCII}&&\p{Letter}]4   z'(?V1)[\p{ASCII}&&\p{Alnum}&&\p{Letter}]z&(?V1)[\p{ASCII}&&\p{Alnum}&&\p{Digit}]z(?V1)[\p{ASCII}&&\p{Cc}]!   z(?V1)[\p{ASCII}&&\p{Graph}]^   z(?V1)[\p{ASCII}--\p{Cc}]_   z[\p{Letter}\p{Digit}]r  z(?V1)[\p{Letter}||\p{Digit}]z\p{HexDigit}   z(?V1)[\p{HexDigit}~~\p{Digit}]rn   z(?V1)[\p{Digit}~~\p{HexDigit}]z(?V0)([][-])z(?V1)[[a-z]--[aei]]r   r   z(?iV1)[[a-z]--[aei]]z(?V1)[\w--a]z(?iV1)[\w--a])r2   r7   rM   rL   rv   r9   rn  r  lenr   r*   r8   r   )r   	all_charss     r   test_setRegexTests.test_set  s   VS1668&AZ5::<fEXt499;VD\48==?H>4A7K~t<seD'94@3%H>c
K>c
K':EBS
E 	':EBS
E 	 	'8&A D 	'<fE H 	 	~t<seD~t<seD=uE=uEz:!FG
	y*!EF
	|[!IJ
	y%!@A3Gy%!@A3Gy'!BCUKGG9E%L99	U]]<CDcJU]]=)DE
	U]]<CDbI 	U]]+J
 	U]]+U
 	U]]+T
 	U]]+F
 	U]]+I
 	U]]+F
 	U]]+C
 	U]]+J
 	U]]?IFG
	U]]+L
 	U]]+L
 	 	d5==#ABC


	'=uE
H 	'>F
I 	u=SzJ'7>c
Kr   c           
      K   / SSS[         R                  U R                  4PSSS[         R                  U R                  4PSSS[         R                  U R                  4PSSS[         R                  U R                  4PSSS[         R                  U R                  4PSSS	[        S
5      4PSSS[         R                  U R                  4PSSS[         R                  U R                  4PSSS[         R                  U R                  4PSSS[         R                  U R                  4PSS
S	[        S
5      4PSSS	[        S
5      4PSSS[        S 5      4PSSS	[        S
5      4PSSS[        S 5      4PSSS[         R                  U R                  4PSS
S	[        S
5      4PSSS	[        S
5      4PSS
S[         R                  U R                  4PSPS[        S5      S-   S[        [        S5      S-   5      4PSS
S[        S
5      4PSSS [        S!5      4PS"S#S[        S#5      4PS$S#S[        S#5      4PS%S#S[        S#5      4PS&S#S[        S 5      4PS'S(S[        S(5      4PS)S(S[        S(5      4PS*S+S[        [        S,5      5      4PS-S+S[        S 5      4PS.S/S[        S 5      4PS0S1S[        S 5      4PS2S+S[        S 5      4PS3S4S[        S45      4PS5S4S[        S45      4PS6S7S[        [        S85      [        S95      -   [        S:5      -   [        S;5      -   [        S<5      -   [        S=5      -   5      4PS>S?S[        S?5      4PS@SAS[        SB5      4PSCSDS[        SD5      4PSCSES[        S 5      4PSFSGS[        S 5      4PSHSGS[        S 5      4PSCSIS[        SI5      4PSJSES[        S 5      4PSKSES[        SE5      4PSLSGS[        S 5      4PSMSGS[        SG5      4PSNSGS[        SG5      4PSOSS[         R                  U R                  4PSPPSQSQS[        SQ5      4PSQSRS[        S 5      4PSQSSS[        S 5      4PSQSTS[        S 5      4PSQSUS[        SQ5      4PSQSVS[        SQ5      4PSWSQS[        SQ5      4PSXSQS[        SQ5      4PSXSYS[        SY5      4PSXSZS[        SZ5      4PS[SYS[        SY5      4PS[SQS[        S 5      4PS[S\S[        S 5      4PS[SZS[        SZ5      4PS]SYS[        SY5      4PS]SQS[        SQ5      4PS]SZS[        S 5      4PS^SQS[        SQ5      4PS_SQS[        SQ5      4PS_S`S[        S 5      4PSaS`S[        SQ5      4PS_SbS[        S 5      4PScSbS[        SQ5      4PSdSQS[        S5      4PSeSQS[        S5      4PSfSQS[        SQ5      4PSfSSS[        SS5      4PSgShS[        Sh5      4PSgSiS[        S 5      4PSjSQS[        S 5      4PSjSkS[        Sk5      4PSlSkS[        S 5      4PSlSmS[        Sm5      4PSnSoS[        Sp5      4PSqSrS[        Sr5      4PSsSrS[        Sr5      4PStSrS[        Sr5      4PSuSvS[         R                  U R                  4PSwSvS[         R                  U R                  4PSxSvS[         R                  U R                  4PSySvS[         R                  U R                  4PSzSvS[         R                  U R                  4PS{S{S[        S{5      4PS|S}S[        S}5      4PS|S}S[        S}5      4PS~SS[        S5      4PS~SkS[        S 5      4PSSS[        S5      4PSSS[        S 5      4PSSS[        S 5      4PSSS[        S5      4PSSrS[        S
5      4PSSS[        S
5      4PSSS[        S
5      4PSSS[        S 5      4PSSS[        S 5      4PSSS[        S 5      4PSSS[        S 5      4PSSS[        S5      4PSSS[        S5      4PSSS[        S 5      4PSSS[        S 5      4PSSrS[        S 5      4PSSS[        S 5      4PSSS[        S 5      4PSSS[        S 5      4PSSS[        S 5      4PSSS[        S5      4PSSS[        S5      4PSSS[        S5      4PSSQS[        S5      4PSSS[        S5      4PSSS[        S5      4PSSS[        S 5      4PSSS[        S5      4PSSS[        S5      4PSSS[        S5      4PSSS[        S5      4PSSQS[        S5      4PSSQS[        S5      4PSSS[        SQ5      4PSSS[        S5      4PSSS[        S5      4PSSS[        S5      4PSSvS[         R                  U R                  4PSSS[        S5      4PSQSS[        S 5      4PSSS[        S5      4PSSS[        S5      4PSSS[        S5      4PSSS[        S5      4PSSS[        S5      4PSSS[        S
5      4PSSS[        S5      4PSSS[        S5      4PSSS[        S 5      4PSSS[        S5      4PSSS[        S5      4PSSQS[        S5      4PSSQS[        S5      4PSSS[        S5      4PSSS[        S5      4PSSS[        S5      4PSSS[        S5      4PSSS[        S 5      4PSSQS[        S5      4PSSS[        S5      4PSSS[        S5      4PSSS[        S5      4PSSS[        S5      4PSSS[        S5      4PSSS[        S 5      4PSSS[        S 5      4PSSS[        S5      4PSS
S[        S
5      4PSSS[        S 5      4PSSS[        S5      4PSSS[        S5      4PSSS[        S5      4PSSS[        S 5      4PSSpS[        Sp5      4PSSS	[        SQ5      4PSSS	[        SQ5      4PSSS	[        S5      4PSSS[        S5      4PGS GSS[        S 5      4PSSS[        GS5      4PGSSS[        GS5      4PGSSS[        GS5      4PGSSS[        GS5      4PGSSS[        GS5      4PGSGS	S[        GS
5      4PGSGS	S[        GS
5      4PGSGSS[        GS5      4PGSGSS[        GS5      4PGSGSS[        GS5      4PGSSS[        GS5      4PGSSS[        GS5      4PGSGSS[        GS5      4PGSGSS[        GS5      4PGSGSS[        GS5      4PGSGSGS[        GS 5      4PGS!GS"S[        GS#5      4PGS!GS$S[        GS%5      4PGS&GS'S[        GS(5      4PGS&SQS[        S 5      4PGS)GS'S[        GS*5      4PGS+SoS[        GS,5      4PGS-GSS[         R                  U R                  4PGS.GSGS/[        GS05      4PGS1GSGS/[        GS25      4PGS3GSS[         R                  U R                  4PGS4GS5S[        GS55      4PGS6GS5S[         R                  U R                  4PGS7GS8S[        GS85      4PGS7GS8S[        GS95      4PGS:GS;S[        GS;5      4PGS<S
S[        S
5      4PGS=GS>S[        GS>5      4PGS?S
S[        S
5      4PGS@GSAS[        GSA5      4PGSBGS>S[        GS>5      4PSQSQS[        SQ5      4PSQSRS[        S 5      4PSQSSS[        S 5      4PSQSTS[        S 5      4PSQSUS[        SQ5      4PSQSVS[        SQ5      4PSWSQS[        SQ5      4PSXSQS[        SQ5      4PSXSYS[        SY5      4PSXSZS[        SZ5      4PGSCSZS[        SZ5      4PS[SYS[        SY5      4PS[SQS[        S 5      4PS[S\S[        S 5      4PGSDS\S[        S 5      4PS[SZS[        SZ5      4PGSDSZS[        SZ5      4PGSESZS[        SZ5      4PGSFSZS[        SZ5      4PGSGSZS[        S 5      4PS]SYS[        SY5      4PS]SQS[        SQ5      4PGSHSQS[        SQ5      4PS]SZS[        S 5      4PS^SQS[        SQ5      4PGSISQS[        SQ5      4PS_SQS[        SQ5      4PS_S`S[        S 5      4PSaS`S[        SQ5      4PS_SbS[        S 5      4PScSbS[        SQ5      4PSdSQS[        S5      4PSeSQS[        S5      4PSfSQS[        SQ5      4PSfSSS[        SS5      4PSgShS[        Sh5      4PSgSiS[        S 5      4PSjSQS[        S 5      4PSjSkS[        Sk5      4PSlSkS[        S 5      4PSlSmS[        Sm5      4PSnSoS[        Sp5      4PSqSrS[        Sr5      4PStSrS[        Sr5      4PGSJSvS[         R                  U R                  4PSuSvS[         R                  U R                  4PSwSvS[         R                  U R                  4PS{S{S[        S{5      4PS|S}S[        S}5      4PS~SS[        S5      4PS~SkS[        S 5      4PSSS[        S5      4PSSS[        S 5      4PSSS[        S 5      4PSSS[        S5      4PSSQS[        S5      4PSSS[        S5      4PSSS[        S5      4PGSKSvS[         R                  U R                  4PGSLSvS[         R                  U R                  4PSSS[        S 5      4PSxSvS[         R                  U R                  4PSSS[        S5      4PSSS[        S5      4PSSS[        S5      4PSSS[        S5      4PSySvS[         R                  U R                  4PSzSvS[         R                  U R                  4PSSQS[        S5      4PSSQS[        S5      4PSSS[        SQ5      4PGSMSS[        SQ5      4PGSNSvS[         R                  U R                  4PGSOSS[        SQ5      4PSSS[        S5      4PGSPSS[        S5      4PSSS[        S5      4PGSQSS[        S5      4PSSS[        S5      4PGSRSS[        S5      4PSSvS[         R                  U R                  4PSSS[        S5      4PSQSS[        S 5      4PSSS[        S5      4PGSSGSTS[        GSU5      4PGSVSS[        GSW5      4PSSS[        S5      4PSSS[        S5      4PSSS[        S5      4PSSS[        S5      4PSSS[        S
5      4PSSS[        S5      4PSSS[        S5      4PSSS[        S 5      4PSSS[        S5      4PSSS[        S5      4PSSQS[        S5      4PSSQS[        S5      4PSSS[        S5      4PSSS[        S5      4PSSS[        S5      4PSSS[        S5      4PSSS[        S 5      4PSSQS[        S5      4PSSS[        S5      4PSSS[        S5      4PSSS[        S5      4PSSS[        S5      4PSSS[        S5      4PSSS[        S 5      4PSSS[        S 5      4PSSS[        S5      4PGSXS
GSY[        S
5      4PGSZSS[        S5      4PGS[SS[         R                  U R                  4PGS\SS[         R                  U R                  4PSS
S[        S
5      4PSSS[        S 5      4PSSS[        S5      4PSSS[        S5      4PSSS[        S5      4PSSS[        S 5      4PSSpS[        Sp5      4PSSS	[        SQ5      4PSSS	[        SQ5      4PGS]GS^S[        GS^5      4PGS]GS_S[        S 5      4PGS]GS`S[        S 5      4PGS]GSaS[        S 5      4PGS]GSbS[        GS^5      4PGS]GScS[        GS^5      4PGSdGS^S[        GS^5      4PGSeGS^S[        GS^5      4PGSeGSfS[        GSf5      4PGSgGShS[        GSh5      4PGSiGShS[        GSh5      4PGSjGSfS[        GSf5      4PGSkGS^S[        S 5      4PGSkGSlS[        S 5      4PGSmGSlS[        S 5      4PGSkGShS[        GSh5      4PGSnGShS[        GSh5      4PGSoGShS[        GSh5      4PGSpGShS[        GSh5      4PGSqGShS[        S 5      4PGSrGSfS[        GSf5      4PGSrGS^S[        GS^5      4PGSsGS^S[        GS^5      4PGSrGShS[        S 5      4PGStGS^S[        GS^5      4PGSuGS^S[        GS^5      4PGSvGS^S[        GS^5      4PGSvGSwS[        S 5      4PGSxGSwS[        GS^5      4PGSvGSyS[        S 5      4PGSzGSyS[        GS^5      4PGS{GS^S[        S5      4PGS|GS^S[        S5      4PGS}GS^S[        GS^5      4PGS}GS`S[        GS`5      4PGS~GSS[        GS5      4PGSGSS[        S 5      4PGSGS^S[        S 5      4PGSGSS[        GS5      4PGSGSS[        S 5      4PGSGSS[        GS5      4PGSGSS[        GS5      4PGSGSS[        GS5      4PGSGSS[        GS5      4PGSSvS[         R                  U R                  4PGSSvS[         R                  U R                  4PGSSvS[         R                  U R                  4PGSGSS[        GS5      4PGSGSS[        GS5      4PGSGSS[        GS5      4PGSGSS[        S 5      4PGSGSS[        GS5      4PGSGSS[        S 5      4PGSGSS[        S 5      4PGSGSS[        GS5      4PGSGS^S[        S5      4PGSGSS[        S5      4PGSGSS[        GS5      4PGSSvS[         R                  U R                  4PGSSvS[         R                  U R                  4PGSGSS[        S 5      4PGSSvS[         R                  U R                  4PGSGSS[        GS5      4PGSSS[        S5      4PGSGSS[        GS5      4PGSGSS[        GS5      4PGSSvS[         R                  U R                  4PGSSvS[         R                  U R                  4PGSGS^S[        GS5      4PGSGS^S[        GS5      4PGSGSS[        GS^5      4PGSGSS[        GS^5      4PGSSvS[         R                  U R                  4PGSGSS[        GS^5      4PGS~GSS[        GS^5      4PGSGSS[        GS^5      4PGSSS[        GS5      4PGSSS[        GS5      4PGSSS[        GS5      4PGSSS[        GS5      4PGSSS[        GS5      4PGSSS[        GS5      4PGSSS[        GS5      4PGSSvS[         R                  U R                  4PGSGSS[        GS5      4PGS]SS[        S 5      4PGSSS[        S5      4PGSGSS[        GS5      4PGSGSS[        GS5      4PGSGSS[        GS5      4PGSGSS[        GS5      4PGSGSS[        GS5      4PGSGSS[        S5      4PGSGSS[        S5      4PGSGSS[        GS5      4PGSGSS[        GS5      4PGSGSS[        S 5      4PGSGSS[        GS5      4PGSGSS[        GS5      4PGSGS^S[        GS5      4PGSGS^S[        GS5      4PGSGSS[        GS5      4PGSGSS[        GS5      4PGSGSS[        GS5      4PGSGSS[        GS5      4PGSGSS[        S 5      4PGSGS^S[        GS5      4PGSGSS[        GS5      4PGSGSS[        GS5      4PGSGSS[        GS5      4PGSGSS[        GS5      4PGSGSS[        GS5      4PGSGSS[        S 5      4PGSGSS[        S 5      4PGSGSS[        GS5      4PGSSGSY[        S5      4PGSGSS[        GS5      4PGSSS[        S5      4PGS SS	[        S5      4PGSGSS	[        GS5      4PGSGSS[        S 5      4PGSGSS[        GS5      4PGSGSS[        GS	5      4PGS
GSS[        GS5      4PGSSS[        S 5      4PGSGSS[        GS5      4PGSGSS	[        GS^5      4PGSGSS	[        GS^5      4PGSGSS[        GS5      4PGSGSS[        GS5      4PGSGSS[        GS5      4PGSSmS	[        S5      4PGSSmS	[        S5      4PGSSmS	[        S5      4PGSSmGS[        GS5      4PGSGSS	[        GS5      4PGSGS S	[        GS!5      4PGS"GS#S	[        GS$5      4PGS%GS&S[         R                  U R                  4PGS'GS(S[        GS(5      4PGS)GS*S[        S 5      4PGS)GS&S[        GS&5      4PGS+GS*S[        GS*5      4PGS,GS(S[        GS(5      4PSaGS-S[        S 5      4PGS.GS-S[        SQ5      4PGS/GS0S[        SQ5      4PSCSES[        S 5      4PSKSES[        SE5      4PGS1GS2S[        GS35      4PGS4GS2S[        GS35      4PGS5GS6S[        SQ5      4PGS7GS6S[        SQ5      4PGS8GS9S[        GS95      4PGS:GS;GS<[        GS=5      4PGS>GS;GS<[        GS=5      4PGS?GS@GSA[        GSB5      4PGSCSS[         R                  U R                  4PGSDGSES[        Sk5      4PGSFSS[         R                  U R                  4PGSGGSHS[        GSH5      4PGSISS[        S5      4PGSJGSKS[        S 5      4PGSLGSKS[        GSK5      4PGSMGSKS[        GSK5      4PGSNGSOS[        GSP5      4PGSQGSRS[        GSR5      4PGSSGSTS[        GST5      4PGSUGSVS[        GSV5      4PGSUGSWS[        GSW5      4PGSXGSYS	[        S5      4PGSZGS[S[        GS[5      4PGS\GS[S[        GS[5      4PGS]GS[S[        GS[5      4PGS^GS[S[        GS[5      4PGS_GS`S[        GS`5      4PGSaGSbS[        S 5      4PGScGSdS[        S 5      4PGSeGSKS[        S 5      4PGSfSGSA[        GSg5      4PGShSQGS[        GSi5      4PGSjSQGS[        GSi5      4PGSkSQGS[        GSi5      4PGSlS
S[        S
5      4PGSlGSmS[        GSm5      4PGSnGSmS[        GSm5      4PnU GH  nS n [!        U5      GSo:X  a  Uu  pEpgOUu  pEpgn/ nU(       a4  UR#                  GSp5       H  n	 UR%                  ['        U	5      5        M      Ub<  U R+                  XEGSq9   U R-                  Xs[         R.                  XE5        S S S 5        M  [         R.                  " XE5      n
U
(       a/  U(       a  [        U
R0                  " U6 5      nO[        U
S S  5      nO[        U
5      nU R3                  X5        GM
     g ! [(         a    UR%                  U	5         M  f = f! , (       d  f       GM?  = f! [(         aa    GSrR5                  US GSs  Vs/ s H  n[        U5      PM     Os  snf snGSt/-   5      nU R7                  GSuR9                  U5      5         GM  f = f(v  Nz(?P<foo_123r   z(?P<1>a)z(?P<!>a)z(?P<foo!>a)z(?P<foo_123>a)(?P=foo_123r:  z(?P<foo_123>a)(?P=1)1ri   z(?P<foo_123>a)(?P=0)z(?P<foo_123>a)(?P=-1)z(?P<foo_123>a)(?P=!)z(?P<foo_123>a)(?P=foo_124)z(?P<foo_123>a)z(?P<foo_123>a)(?P=foo_123)z(?<foo_123>a)\g<foo_123z(?<foo_123>a)\g<1>z(?<foo_123>a)\g<!>z(?<foo_123>a)\g<foo_124>z(?<foo_123>a)z(?<foo_123>a)\g<foo_123>r   )[\1]r   r  z'\x01'r   r   9r  z\141z((a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)\119abcdefghijklk9z0,11)rZ  kr   r   z[\0a]z[a\0]z[^a\0]z\a[\b]\f\n\r\t\vz
	z[\a][\b][\f][\n][\r][\t][\v]z\xffr   r  z\x00ffffffffffffffz\x00fz\x00fe   þz\x00ffz\t\n\v\r\f\a\gz	
gz	
\gz\t\n\v\r\f\arj   rk   r   rl   rm   rn   ro   z[\t][\n][\v][\r][\f][\b]z	
z^\w+=(\\[\000-\277]|[^\n\\])*z(SRC=eval.c g.c blah blah blah \\
	apes.cz SRC=eval.c g.c blah blah blah \\rr  acbrs  rt  zacc
ccbza.{4,5}bzabza.b(?s)z(?s)a.bza.*(?s)bz(?s)a.*bz(?s)a.{4,5}br'  )r   r   r  z''r   xbcaxcabxxabcyababczab*czab*bcabbcabbbbczab+bcabqzab?bczab?cre  abccr2  aabcr3  ^rU  za.cza.*caxyzcaxyzdza[bc]dr2  za[b-d]eaceza[b-d]aacr!  za[-b]a-za[\-b]za[b-]za[]br   za[za\zabc)z(abcza]za[]]bza]bza[^bc]daedza[^-b]cadcza-cza[^]b]cza]cz\ba\b-az-a-z\by\br  yzr   zx\bzx\Br-   z\Bzr  zz\Bz\Bxz\Ba\Bz\By\Bz\By\br.   z\by\Bzab|cdr.  r  z()efdefz0,1)r  r   z$br   za\(ba(b)rt  za\(*bza((bza\\bza\br  z0,1,2)ri   ri   ri   z(a)b(c))r   ri   r   za+b+caabbabcz(a+|b)*)r.  r   z(a+|b)+z(a+|b)?r   z)(z[^ab]*r  r?   z	a|b|c|d|er  z(a|b|c|d|e)fr  )r  r  zabcd*efgabcdefgzab*	xabyabbbzxayabbbzz(ab|cd)er  )r  r/  z[abhgefdc]ijhijz	^(ab|cd)ez(abc|)efrQ  z(a|b)c*d)bcdr   z
(ab|ab*)bc)r   ri   z
a([bc]*)c*)r   r"  za([bc]*)(c*d))r  r"  r0  za([bc]+)(c*d)za([bc]*)(c+d))r  r   r/  za[bcd]*dcdcdeadcdcdeza[bcd]+dcdcdez	(ab|a)b*c)r   r.  z((a)(b)c)(d)z1,2,3,4)r   ri   r   r0  z[a-zA-Z_][a-zA-Z0-9_]*alphaz^a(bc+|b[eh])g|.h$abh)bhNz(bc+d$|ef*g.|h?i(j|k))effgz)r  r  Nij)r  r  jeffgbcddreffgzz(((((((((a)))))))))zmultiple words of textzuh-uhzmultiple wordszmultiple words, yeahz	(.*)c(.*))r  r.  r  z\((.*), (.*)\)z(a, b)z2,1)r   ri   z[k]za[-]?cz(abc)\1r  z
([a-c]*)\1z^(.+)?BABrs   z(a+).\1$r   )r   r:  z	^(a+).\1$aaaa)r  r   z
([a-c]+)\1z(a)\1)r:  ri   z(a+)\1z(a+)+\1z(a).+\1r  )r  ri   z(a)ba*\1z
(aa|a)a\1$rG   )rG   ri   z
(a|aa)a\1$z(a+)a\1$z
([abc]*)\1z
(a)(b)c|ab)r.  NNz(a)+xaaax)r  ri   z([ac])+xaacx)r  r   z([^/]*/)*sub1/zd:msgs/tdir/sub1/trial/away.cpp)zd:msgs/tdir/sub1/ztdir/z([^.]*)\.([^:]*):[T ]+(.*)track1.title:TBlah blah blahz0,1,2,3)r  track1titlezBlah blah blahz	([^N]*N)+abNNxyzN)r  xyzNabNNxyz)abNNNz	([abc]*)xabcx)r  r   z	([xyz]*)x)r-   r   z	(a)+b|aac)rm  Nz(?P<i d>aaa)az(?P<id>aaa)az0,id)r  rG   z(?P<id>aa)(?P=id))r  r:  z(?P<id>aa)(?P=xd)r   gz\g<1>z(.)\g<1>gg)r  r  z\Nr  \N{LATIN SMALL LETTER A}z\pr4  r  z\PPz\P{Lu}zab{0,}bczab{1,}bcz	ab{1,3}bcz	ab{3,4}bcz	ab{4,5}bcz	ab{0,1}bczab{0,1}cza[b-a]z*az(*)bza{1,}b{1,}cza**za.+?cz
(a+|b){0,}z
(a+|b){1,}z(a+|b){0,1}z	([abc])*dabbbcd)r  r   z([abc])*bcd)r  ri   z((((((((((a))))))))))10z((((((((((a))))))))))\10z((((((((((a))))))))))\41z(?i)((((((((((a))))))))))\41z(?i)abcr  XBCAXCABXXABCYABABCz(?i)ab*cz	(?i)ab*bcABBCz
(?i)ab*?bcABBBBCz(?i)ab{0,}?bcz
(?i)ab+?bcz	(?i)ab+bcABQz(?i)ab{1,}bcz(?i)ab{1,}?bcz(?i)ab{1,3}?bcz(?i)ab{3,4}?bcz(?i)ab{4,5}?bcz
(?i)ab??bcz(?i)ab{0,1}?bcz	(?i)ab??cz(?i)ab{0,1}?cz	(?i)^abc$ABCCz(?i)^abcAABCz(?i)abc$z(?i)^z(?i)$z(?i)a.cz	(?i)a.*?cAXYZCz(?i)a.*cAXYZDz
(?i)a[bc]dABDz(?i)a[b-d]eACEz
(?i)a[b-d]AACACz	(?i)a[-b]zA-z	(?i)a[b-]z
(?i)a[b-a]z(?i)a[]bz(?i)a[z(?i)a]zA]z	(?i)a[]]bzA]Bz(?i)a[^bc]dAEDz(?i)a[^-b]cADCzA-Cz(?i)a[^]b]czA]Cz	(?i)ab|cdABCDz(?i)()efDEF)EFr   z(?i)*az(?i)(*)bz(?i)$br  z(?i)a\z(?i)a\(bA(B)r  z	(?i)a\(*bzA((Bz(?i)a\\bzA\Bz(?i)abc)z(?i)(abcz	(?i)((a)))rs   rs   rs   z(?i)(a)b(c))r  rs   rC  z	(?i)a+b+cAABBABCz(?i)a{1,}b{1,}cz(?i)a**z	(?i)a.+?cABCABCz(?i)a.{0,5}?cz(?i)(a+|b)*)r  r  z(?i)(a+|b){0,}z(?i)(a+|b)+z(?i)(a+|b){1,}z(?i)(a+|b)?)rs   rs   z(?i)(a+|b){0,1}z(?i)(a+|b){0,1}?r   Nz(?i))(z
(?i)[^ab]*CDEz(?i)a*z(?i)([abc])*dABBBCD)r  rC  z(?i)([abc])*bcd)r  rs   z(?i)a|b|c|d|eEz(?i)(a|b|c|d|e)fr  )r  r  z(?i)abcd*efgABCDEFGz(?i)ab*	XABYABBBZXAYABBBZz(?i)(ab|cd)eABCDE)r  CDz(?i)[abhgefdc]ijHIJz(?i)^(ab|cd)ez(?i)(abc|)efr  z(?i)(a|b)c*d)BCDr  z(?i)(ab|ab*)bc)r  rs   z(?i)a([bc]*)c*)r  BCz(?i)a([bc]*)(c*d))r  r  Dz(?i)a([bc]+)(c*d)z(?i)a([bc]*)(c+d))r  r  r  z(?i)a[bcd]*dcdcdeADCDCDEz(?i)a[bcd]+dcdcdez(?i)(ab|a)b*c)r  r  z(?i)((a)(b)c)(d))r  rs   r  r  z(?i)[a-zA-Z_][a-zA-Z0-9_]*ALPHAz(?i)^a(bc+|b[eh])g|.h$ABH)BHNz(?i)(bc+d$|ef*g.|h?i(j|k))EFFGZ)r  r  NIJ)r  r  JEFFGBCDDREFFGZz(?i)((((((((((a))))))))))z(?i)((((((((((a))))))))))\10AAz(?i)(((((((((a)))))))))z+(?i)(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))z/(?i)(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))rC  z(?i)multiple words of textzUH-UHz(?i)multiple wordszMULTIPLE WORDS, YEAHzMULTIPLE WORDSz(?i)(.*)c(.*))r  r  DEz(?i)\((.*), (.*)\)z(A, B))r  rs   z(?i)[k]z
(?i)a[-]?cz(?i)(abc)\1z(?i)([a-c]*)\1za(?!b).abadr1  za(?=d).z	a(?=c|d).za(?:b|c|d)(.)za(?:b|c|d)*(.)za(?:b|c|d)+?(.)za(?:b|(c|e){1,2}?|d)+?(.)z1,2)r   r  z(?<!-):(.*?)(?<!-):z
a:bc-:de:fzbc-:dez(?<!\\):(.*?)(?<!\\):z
a:bc\:de:fzbc\:dez(?<!\?)'(.*?)(?<!\?)'z
a'bc?'de'fzbc?'dezw(?# commentwz w(?# comment 1)xy(?# comment 2)zwxyzzw(?i)Wz(?i)wz"(?x)w# comment 1
x y
# comment 2
zzjkl
abc
xyzr4  r5  zjkl
xyzabc
123r  z--ab_cd0123--	ab_cd0123z[\w]+z\D+1234abc5678z[\D]+z[\da-fA-F]+123abcz([\s]*)([\S]*)([\s]*)z testing!1972z3,2,1)r   ztesting!1972r  z(\s*)(\S*)(\s*)z(([a-z]+):)?([a-z]+)$smilz1,2,3)NNr  z((.)\1+)z.*dzabc
abdr,  z[\41]!z(x?)?z	 (?x)foo r	  z	(?x) foo z(?x)foo z(?<!abc)(d.f)	abcdefdofdofz[\w-]+
laser_beamz.*?\S *:zxx:za[ ]*?\ (\d+).*za   10za    10z(?ms).*?x\s*\Z(.*)zxx
x
z(?i)M+MMMz(?i)m+z(?i)[M]+z(?i)[m]+z"(?:\\"|[^"])*?"z"\""z^.*?$zone
two
three
za[^>]*?bza>bz^a*?$z^((a)c)?(ab)$)NNr.  z^([ab]*?)(?=(b)?)c)r.  Nz^([ab]*?)(?!(b))cz^([ab]*?)(?<!(a))cz\b.\b   Ärt  r   r  )r   r^  r$  rF   ...z%Incorrect number of test fields: ({}))r7   r   r   r   MISSING_RPARENr  UNKNOWN_GROUPr   rw   TRAILING_CHARSr  
BAD_ESCAPEBAD_CHAR_RANGENOTHING_TO_REPEATMULTIPLE_REPEAT
OPEN_GROUPrR  r  appendrR   r   subTestr   rK   r   r2   rn  r:   r  )r   r  r  excvalr   r^  rZ  r  
group_listr   ra   r+   ffieldss                 r   test_variousRegexTests.test_various  s9   y

BEKKAy

 Rd.A.ABy

 Rd.A.AB	y


 BEKK1D1DEy

 )$EKK!!#y

 $T3c
;y

 $T2u{{!!#y

 %dB!!#y

 $T2u{{!!#y

" *4U[[  "#y

( sCs4)y

* *4eCjA+y

0 (r5;?1y

2 #D#uSz:3y

4 #D"eDk:5y

6 )$EKK  "7y

< c3c
3=y

> )$U3Z@?y

D CU[[$*@*@AEy

F ,Gy

H SVc\3c!fsl(;<Iy

J c3c
+Ky

L 9:Je346My

T D#uT{+Uy

V tS%+.Wy

X tS%+.Yy

Z b%+.[y

` !"2C$%'ay

d -.>$%'ey

h fc5S?3iy

n #FBd<oy

p vr5;/qy

r E$K0sy

v E$K0wy

x eO6LMyy

z eO6LM{y

| nc5Q#b'9I"g:B: "%b':*,/F:3 44 5}y

@ ).#N#%Ay

F .<c89;Gy

P E3e-Qy

R FBd,Sy

T ZU4[1Uy

V Rt5Wy

X FCv/Yy

\ E$K0]y

^ U6]3_y

` Rt5ay

b S%
*;<cy

d ZeJ.?@ey

h "b%++t':':;iy

j  ky

l E3e-my

n E2uT{+oy

p E2uT{+qy

r E2uT{+sy

t GS%,/uy

v GS%,/wy

x UCu.yy

z eS%,/{y

~ fc5=1y

@ hU8_5Ay

B fc5=1Cy

D eRt-Ey

F eRt-Gy

H hU8_5Iy

J fc5=1Ky

L eS%,/My

N hE$K0Oy

P UCu.Qy

T eS%,/Uy

V fb%+.Wy

X VS%,/Yy

Z fb%+.[y

\ VS%,/]y

^ %eBi(_y

` %eBi(ay

b E3e-cy

d E3e-ey

f Wc5>2gy

j Wb%+.ky

l ub%+.my

n uc5<0oy

p r5;/qy

r sE%L1sy

t uc5;/uy

v dCt-wy

x c5;/yy

z dCt-{y

| S"ekk4<<8}y

@ 3EKK6Ay

B CU[[$//:Cy

D S"ekk4+>+>?Ey

F S"ekk4+>+>?Gy

H 4eDk*Iy

J eS%,/Ky

L eS%,/My

N sE%L1Oy

P r5;/Qy

R sE%L1Sy

V r5;/Wy

X r5;/Yy

Z sE%L1[y

\ c5:.]y

^ c5:._y

` sE#J/ay

b b%+.cy

d b%+.ey

f r5;/gy

h UBd,iy

l UCs,my

n UCs,oy

p UBd,qy

r UBd,sy

t b%+.uy

v b%+.wy

x r5;/yy

z b%+.{y

| b%+.}y

~ c5:.y

B c5:.Cy

D sE#J/Ey

F eS%+.Gy

H fc5;/Iy

J UE5#45Ky

L 3E$K(My

N eRx1Oy

P tS%+.Qy

R vsE&M2Sy

T vsE&M2Uy

X eWeO&<=Yy

Z w.?(@A[y

\ ieEl3]y

^ eU;%78_y

` eU;%78ay

b eU:%67cy

d 3EKK)<)<=ey

f uc5<0gy

h BE$K(iy

j 2sE"I&ky

n #sE#J/oy

p T5%*<=qy

r Cy)9:sy

t KeDk2uy

v JU3Z0wy

x %})=>yy

z UCu6{y

| '2uT{3}y

~ 5%
*;<y

@ l(;<Ay

D 5%|)<=Ey

F 5%})=>Gy

H fgu5H/IJIy

J fgu5H/IJKy

L fgu5H/IJMy

N ieI.>?Oy

P iU4[9Qy

R %m(<=Sy

T VY6L0MNUy

V &wU7^DWy

Z "5%|1DE[y

\ &w @ : ]y

` &tWe = 7 ay

d &vr5;?ey

f &vr5;?gy

h &x% A ; iy

l #CeCj9my

n &wE$K@oy

p 5s$%'qy

t '7E2G,HIuy

x  5%
2CDyy

z D"eDk*{y

| tS%+.}y

~ 3e5y

@ Hc5<8Ay

B c5:.Cy

D '5%*@AEy

F 62uT{3Gy

H 5%0A*BCIy

J HeU3D-EFKy

N tUE+$67Oy

P eU;%78Qy

R ueK&89Sy

T u\':;Uy

V %l(;<Wy

X E5%*=>Yy

Z E5%*=>[y

\ %l(;<]y

^ HeU3D-EF_y

` 4%0B*CDay

d feU=%9:ey

f m(<=gy

h @%235iy

l +,J  ) *+my

r *eU3G-HIsy

t )UE-,@Auy

v &%)?@wy

x %U4[1yy

z &%y)9:{y

| %m(<=}y

B fb%++t7J7JKCy

D VVU?-CDEy

F !&&%2GHGy

H !&"ekk4;M;MNIy

N CeCj)Oy

P sBT-C-CDQy

R $U4[1Sy

T $E+$67Uy

V CeCj)Wy

X )#sE#J?Yy

Z CeCj)[y

\ S%*-]y

^ CeCj)_y

` S%*-ay

f E3e-gy

h E2uT{+iy

j E2uT{+ky

l E2uT{+my

n GS%,/oy

p GS%,/qy

t UCu.uy

v eS%,/wy

x fc5=1yy

z hU8_5{y

| 3h8}y

~ fc5=1y

@	 eRt-A	y

B	 eRt-C	y

D	 E$K0E	y

F	 hU8_5G	y

J	 3h8K	y

L	 (Cx9M	y

N	 (Cx9O	y

P	 (Bd4Q	y

R	 fc5=1S	y

T	 eS%,/U	y

V	 %eEl3W	y

X	 hE$K0Y	y

Z	 UCu.[	y

\	 U5\2]	y

`	 eS%,/a	y

b	 fb%+.c	y

d	 VS%,/e	y

f	 fb%+.g	y

h	 VS%,/i	y

j	 %eBi(k	y

l	 %eBi(m	y

n	 E3e-o	y

p	 E3e-q	y

r	 Wc5>2s	y

v	 Wb%+.w	y

x	 ub%+.y	y

z	 uc5<0{	y

|	 r5;/}	y

~	 sE%L1	y

@
 uc5;/A
y

B
 dCt-C
y

D
 dCt-E
y

F
 sBT-@-@AG
y

H
 S"ekk4<<8I
y

L
 3EKK6M
y

N
 4eDk*O
y

P
 eS%,/Q
y

R
 sE%L1S
y

T
 r5;/U
y

V
 sE%L1W
y

X
 r5;/Y
y

Z
 r5;/[
y

\
 sE%L1]
y

^
 eS%+._
y

b
 fc5;/c
y

d
 UE5#45e
y

f
 3EKK)?)?@g
y

h
 S"ekk4+A+ABi
y

j
 3E$K(k
y

l
 CU[[$//:m
y

n
 eRx1o
y

p
 tS%+.q
y

r
 vsE&M2s
y

t
 vsE&M2u
y

x
 S"ekk4+>+>?y
y

z
 S"ekk4+>+>?{
y

|
 eWeO&<=}
y

~
 w.?(@A
y

@ ieEl3Ay

B IsE%L9Cy

D CU[[$*>*>?Ey

F hU5\2Gy

H eU;%78Iy

J 4k(:;Ky

N eU;%78Oy

P 4k(:;Qy

R eU:%67Sy

T D%z):;Uy

V 3EKK)<)<=Wy

X uc5<0Yy

Z BE$K([y

\ 2sE"I&]y

^ (E5+AB_y

` FE5+?@ay

d #sE#J/ey

f T5%*<=gy

h Cy)9:iy

j KeDk2ky

l JU3Z0my

n %})=>oy

p UCu6qy

r '2uT{3sy

t 5%
*;<uy

v l(;<wy

z 5%|)<={y

| 5%})=>}y

~ fgu5H/IJy

@ fgu5H/IJAy

B fgu5H/IJCy

D ieI.>?Ey

F iU4[9Gy

H %m(<=Iy

J VY6L0MNKy

L &wU7^DMy

P "5%|1DEQy

R &w @ : Sy

V &tWe = 7 Wy

Z &vr5;?[y

\ &vr5;?]y

^ &x% A ; _y

b %c4s<cy

d )$U4[Aey

n )"b%++$$&oy

r -b"ekk$$&sy

x #CeCj9yy

z &wE$K@{y

| 5s$%'}y

@ '7E2G,HIAy

B  5%
2CDCy

D D"eDk*Ey

F tS%+.Gy

H 3e5Iy

J Hc5<8Ky

L sE%L1My

P r5;/Qy

R r5;/Sy

T r5;/Uy

V eEl3Wy

X eEl3Yy

Z U5\2[y

\ %eEl3]y

^ &#uV}5_y

` 8S%/:ay

b hU8_=cy

f 63f6gy

h %U4[1iy

j %U4[1ky

l UBd4my

n (Cx9oy

p hU8_=qy

r xeHo>sy

t xeHo>uy

v xU4[9wy

x 63f6yy

| 5#uU|4}y

~ uc5<8y

@ 8Rt5Ay

B %eEl3Cy

D eS%,7Ey

F %eEl3Gy

H &"eDk2Iy

J eEl3Ky

L &"eDk2My

N eEl3Oy

R eS%),Sy

T eS%),Uy

V sE%L1Wy

X sE%L1Yy

Z '3g7[y

\ "eDk2]y

^ 5"eDk2_y

` 5#uU|4ay

b E2uT{3cy

d E3e5ey

h 5#uT{3iy

j $U4[1ky

l $U4[1my

n 3EKK1D1DEoy

p b%++t||<qy

r sBT\\:sy

t tS%+.uy

v %eEl3wy

x E3e5yy

z E2uT{3{y

~ E3e5y

@ E2uT{3Ay

B E2uT{3Cy

D E3e5Ey

F %eDk2Gy

H &#uT{3Iy

J uZ'89Ky

L sBT-C-CDMy

N b%++t/E/EFOy

P sBd,Qy

T Rdoo>Uy

V %U8_5Wy

X 4eDk2Yy

Z 63f6[y

\ 63f6]y

^ b%++t/B/BC_y

` b%++t/B/BCay

b %%*@Acy

d E7E2C,DEey

f )S%,7gy

j 	3e=ky

l Rd.B.BCmy

n (Cu6oy

p (Cu6qy

r hU5\:sy

t D%{);<uy

v tUE+,>?wy

x D%{);<yy

z tUE+,>?{y

| D%z):;}y

@ eU:->?Ay

B  ueJ.?@Cy

D sBT-@-@AEy

F 5#uU|4Gy

H Bd,Iy

J r3b	*Ky

L hu_/EFMy

N u]/CDOy

P c3c
3Qy

R  ueK.@ASy

V YU9-=>Wy

X S%+6Yy

Z 
Cs4[y

\ WeU=-AB]y

^  U5\:_y

` gr5;7ay

b XueJ.?@cy

d VUE,,?@ey

f ueU<-@Agy

h ueU=-ABiy

l !&'59L3MNmy

n !&'59L3MNoy

p !&'59L3MNqy

r !)S%	2BCsy

t !)Rt=uy

v eUE-,@Awy

x  E ; 5 yy

| *7CwH}y

~ &ueU<5HIy

@ *7GU D > Ay

F *4% A ; Gy

J *62uT{CKy

L *62uT{CMy

N *8We E ? Oy

R )#tU3Z@Sy

T -dCtEUy

Z 'S%*=[y

\ ;CCj]y

` ?SCjay

d *7BdDey

h "#93#$&iy

l gw6K0LMmy

n $XueJ6GHoy

p b%+.qy

v 4eDk2wy

x XsE%L9yy

z #uU|<{y

| U4[1}y

~ U4[1y

@ &#uT{3Ay

D eS%*5Ey

F uc5:6Gy

H sE#J7Iy

J )%j8IJKy

P #L#uXGQy

T )-eI>NOUy

X 'c5?KYy

` S"ekk43F3FGay

b 0eFmLcy

p c3d,qy

r c3c
+sy

t c3c
+uy

z c5="{y

F  
E$KGy

L  U5\My

T  U5\Uy

^ FBd,_y

` U6]3ay

f _c5+=>gy

h U;-?@iy

j ]Cu6ky

l }c5<8my

n XsE(O<oy

t & H# B$ %uy

x  '5 B# <$ %yy

F &vw ? 9 Gy

L "b%++t?My

P ZeEl3Qy

T 2r5;;(;(;<Uy

V sCs,Wy

Z sCs,[y

` 5#uT{3ay

b 5#uU|4cy

d %eEl3ey

h {Cu>iy

l c5+>?my

p %eEl3qy

r  3h@sy

t  Cy1ABuy

x #9c59=yy

| sE%L1}y

~ sE%L1y

@ %eEl3Ay

B %eEl3Cy

L !'3g?My

P *Bd<Qy

T %U4[1Uy

X ub%+.Yy

\ tWe4F.GH]y

` "5%|1DEay

b !%l0CDcy

d "5%|1DEey

h sCs,iy

j BCFmky

n ?Fmoy

v AF7q6Q;895GVX@A=GVv
  
!'c!25&--c%j9 "3 %gE..x!+ FE W5A%%*177J+?%@F%*1Q4[F!&q$$V6C    * 5&--e45 FE  Ra1g#>gE!Hg#>%#HI		AHHPQQRsP   P1BU,Q,BT7R"BUT7BUUBUU
BU)	U,BWV
BV V3BWWBWc                    U R                  [        R                  " SSS5      S5        U R                  [        R                  " SSS5      S5        U R                  [        R                  " S[        R                  " S5      S5      S5        U R                  [        R                  " SSS5      S5        U R                  [        R                  " SS	 S5      S5        g )
Nztest\?zresult\?\.
ztest?r  \1\1r-   rf   z\\1\\1c                     g)Nr  r   r`   s    r   rb   -RegexTests.test_replacement.<locals>.<lambda>	  s    Gr   )r2   r7   rv   r  rN   s    r   test_replacementRegexTests.test_replacement	  s    9.@'J
	 	5'37>5%,,w*?EwO5)S97C5*;SA7Kr   c           	         [         R                  [         R                  -   [         R                  -   nUS-  nSU-   S-   U-   S-   nU R	                  [        [        [        R                  " U5      5      5      U R                  5        g )Nr   r,  r9  r'  )
r^  ascii_lowercasedigitsascii_uppercaser2   r   r*   r7   r8   r   )r   allsideregexps       r   test_common_prefixRegexTests.test_common_prefix	  sk    $$v}}4v7M7MMQwtc!D(3.d5==#89:D<N<NOr   c                    U R                  [        R                  " SS5      R                  S5      / SQ5        U R                  [        R                  " SS5      R                  SS5      S/SS/45        U R                  [        R                  " S	S
5      R                  SS5      S// SQ45        U R                  [        R                  " SS5      R                  SS5      / SQ/ SQ45        U R                  [        R                  " SS5      R                  SSS5      S// SQS/45        U R                  [        R                  " SS5      R                  S5      S/5        U R                  [        R                  " SS5      R                  S5      SS/5        U R                  [        R                  " SS5      R                  S5      S/5        g ) Nz(\w)+r   rE   r1  z(\w{3})+rQ  r   rs  z^(\d{1,3})(?:\.(\d{1,3})){3}$z192.168.0.1r   192)168r  rW  z^([0-9A-F]{2}){4} ([a-z]\d){5}$z3FB52A0C a2c4g3k9d3)3FB52A0C)a2c4g3k9d3z([a-z]W)([a-z]X)+([a-z]Y)aWbXcXdXeXfYrF   aW)bXcXdXeXfYz.*?(?=(.)+)br.  r   z.*?(?>(.){0,2})dr  r   (.)+ri   )r2   r7   rK   capturesrM   rN   s    r   test_capturesRegexTests.test_captures	  s   h6??B E 	k8<EEaK:u~
&	(&F
!!Q5)5F)G	I%G
!!)!Q2J
(2*	+ 	%@
"(1a+tf6N&.	 	ot<EEaH%	&96BKKAN*	gs3<<Q?#Gr   c                    [         R                  " SS5      nU R                  UR                  SSS5      S5        [         R                  " SS5      nU R                  UR                  SSS5      S5        [         R                  " S	S
5      nU R                  UR                  SSS5      S5        [         R                  " SS5      nU R                  UR                  SS5      S5        [         R                  " SS5      nU R                  UR                  5       S5        [         R                  " SS5      nU R                  UR                  5       S5        g )Nz(X.*?Y\s*){3}(X\s*)+AB:zXY
X Y
X  Y
XY
XX AB:r   rE   r   ))rF      rn      r  r"   z(X.*?Y\s*){3,}(X\s*)+AB:))r   r  r  r  z\d{4}(\s*\w)?\W*((?!\d)\w){2}9999XX)r  r  )   rR  zA\s*?.*?(\n+.*?\s*?){0,2}\(Xz
A
1
S
1 (X)r   r   )r  r  z	Derde\s*:zaaaaaa:
Derde:)r  r   zaaaaa:
Derde:)ro   rm   )r7   rK   r2   rL   r  s     r   test_guardsRegexTests.test_guards	  s   LL3
%'1a*GHLL4
%'1a*GHLL98D1a*DELL8/J1'89LL'897+LL'787+r   c           
         Sn[        5       n[        5       nUR                  S5       Hp  nUR                  S5      u  pVUR                  XV45        UR                  XU45        UR                  XV45        UR                  Xe45        UR                  Xf45        Mr     U H  nU H  n[        R
                  " SU-   S-   U5      nU(       a>  XV4U;  a5  U R                  SR                  [        U5      [        U5      5      5        Mc  Me  XV4U;   d  Mn  U R                  SR                  [        U5      [        U5      5      5        M     M     g )Nu   I=i;I=ı;i=İ;=z(?i)\A\Zz{} matching {}z{} not matching {})	r  r  updateaddr7   rM   r:   r  r  )r   pairsrS  matchingpairr  r  ra   s           r   test_turkicRegexTests.test_turkic	  s   'E	5KK$Dzz#HCcZ(LL#$LL#$LL#$LL#$ % C KK	C% 7=z1		"2"9"9%**#& ' 2 zX-		"6"="=eCj*#& ' ! r   c                    / SQnU R                  [        R                  " SSUS9R                  5       S5        U R                  [        R                  " SSUS9R                  5       S5        U R                  [        R                  " SSUS9S 5        / SQnU R                  [        R                  " S	S
US9R                  5       S
5        U R                  [        R                  " SSUS9R                  5       S5        U R                  [        R                  " S	SUS9S 5        U R                  [	        [        [        R                  " S/ SQS95      5      U R                  5        U R                  [        R                  " SS[        / SQ5      S9/ 5        U R                  [        R                  " SS[        / SQ5      S9S/5        S/nU R                  [        R                  " SSUS9R                  5       S5        SS/nU R                  [        R                  " SSUS9R                  5       S5        S/nU R                  [        R                  " SSUS9R                  5       S5        S/nU R                  [        R                  " SSUS9R                  5       S 5        U R                  [        R                  " SS!US9R                  5       S 5        U R                  [        R                  " S"S#5      R                  5       S$5        U R                  [        R                  " S"S%5      R                  5       S$5        U R                  [        R                  " S&S'/ S9R                  5       S(5        g ))N)onetwothreez333\L<bar>444	333one444)r  z(?i)333\L<bar>444	333TWO444
333four444)s   ones   twos   threes   333\L<bar>444s	   333one444s   (?i)333\L<bar>444s	   333TWO444s
   333four444z3\L<bar>4\L<bar>+5z^\L<options>zsolid QWERT)good	brilliantz	+s\ol[i}dr  z+solid QWERT)r*  r+  +solidr,  STRASSE(?fi)\L<words>u   straßewordsr  stressr   ro   kitz(?i)\L<words>SKITSr  u   SKİTSz(?fi)\b(\w+) +\1\bu    straße STRASSE )rE   r  u    STRASSE straße z^\L<options>$r   rA   )r2   r7   rM   r   r   r*   r8   r   r9   r  rL   rK   )r   r  s     r   test_named_listsRegexTests.test_named_lists	  s   )%5{uw	-%9;uw	-%5|	 -%6uw	.%:Luw	.%6	 	d5==1F%$' ( )*.*<*<	> 	9:<=?	A568:B	E +%6
/w@@D I	 h'%6
/w@@D I	 99%6		) '&6	)&6
9	) 	&;
9;;?467	L&;
9;;?467	L 	&6BGLLN
	r   c           	      r    U R                  [        [        [        R                  " S5      5      5      U R
                  5        U R                  [        [        [        R                  " S5      5      5      U R
                  5        U R                  [        [        [        R                  " S5      5      5      U R
                  5        U R                  [        [        [        R                  " S5      5      5      U R
                  5        U R                  [        [        [        R                  " S5      5      5      U R
                  5        U R                  [        [        [        R                  " S5      5      5      U R
                  5        SnU R                  [        R                  " SU5      S 5        U R                  [        R                  " S	U5      R                  S
S5      S5        U R                  [        R                  " SU5      S 5        U R                  [        R                  " SU5      S
   S5        U R                  [        R                  " SU5      S
   S5        SnU R                  [        R                  " SU5      R                  S
S5      S5        U R                  [        R                  " SU5      R                  S
S5      S5        U R                  [        R                  " SU5      R                  S
S5      S5        U R                  [        R                  " SU5      R                  S
S5      S5        U R                  [        R                  " SU5      R                  S
S5      S5        U R                  [        R                  " SU5      R                  S
S5      S5        U R                  [        [        [        R                  " S5      5      5      U R
                  5        U R                  [        R                  " SS5      R                  S
S5      S5        U R                  [        R                  " SS5      R                  S
S5      S 5        U R                  [        R                  " S!S5      R                  S
S5      S"5        U R                  [        R                  " S#S$5      R                  S
S5      S%5        U R                  [        R                  " S#S&5      S 5        U R                  [        R                  " S'S(5      R                  S
S5      S)5        U R                  [        R                  " S*S+5      R                  S
S5      S,5        U R                  [        R                  " S*S-5      R                  S
S5      S5        U R                  [        R                  " S.S-5      R                  S
S5      S/5        U R                  [        R                  " S0S15      R                  S
S5      S5        U R                  [        R                  " S0S25      R                  S
S5      S35        U R                  [        R                  " S0S45      R                  S
S5      S35        U R                  [        R                  " S0S55      R                  S
S5      S35        U R                  [        R                  " S0S65      R                  S
S5      S5        U R                  [        R                  " S0S75      R                  S
S5      S5        U R                  [        R                  " S0S85      R                  S
S5      S5        U R                  [        R                  " S0S95      R                  S
S5      S:5        U R                  [        R                  " S0S;5      R                  S
S5      S:5        U R                  [        R                  " S0S<5      R                  S
S5      S:5        U R                  [        R                  " S0S=5      S 5        U R                  [        R                  " S0S>5      S 5        U R                  [        R                  " S0S?5      S 5        U R                  [        R                  " S0S@5      S 5        U R                  [        R                  " S0SA5      S 5        U R                  [        R                  " SBSC5      R                  S
S5      SD5        U R                  [        R                  " SESC5      R                  S
S5      SF5        U R                  [        R                  " SGSH5      R                  S
S5      SI5        U R                  [        R                  " SGSJ5      S 5        U R                  [        R                  " SGSK5      R                  S
S5      SL5        SMnU R                  [        R                  " SNU5      R                  S
S5      SO5        U R                  [        R                  " SPU5      R                  S
S5      SQ5        U R                  [        R                  " SRU5      R                  S
S5      SS5        U R                  [        R                  " STSUSVR                  5       SW9SXSY/5        U R                  [        R                  " STSZSVR                  5       SW9S[SX/5        U R                  [        R                  " S\SZSVR                  5       SW9SYSX/5        U R                  [        R                  " S]SUSVR                  5       SW9S^SX/5        U R                  [        R                  " S_SUSVR                  5       SW9SYSX/5        U R                  [        R                  " S]SZSVR                  5       SW9SXSY/5        U R                  [        R                  " S`SaSbR                  5       SW9ScSd/5        U R                  [        R                  " S`SeSbR                  5       SW9SfSc/5        U R                  [        R                  " SgSeSbR                  5       SW9SdSc/5        U R                  [        R                  " ShSaSbR                  5       SW9SiSc/5        U R                  [        R                  " SjSaSbR                  5       SW9SdSc/5        U R                  [        R                  " ShSeSbR                  5       SW9ScSd/5        U R                  [        R                  " SkSl5      R                  5       Sm5        U R                  [        R                  " SnSl5      R                  5       Sm5        U R                  [        R                  " SoSp5      R                  5       Sq5        U R                  [        R                  " SrSs5      SsSt/5        U R                  [        R                  " SuSv5      SvSt/5        U R                  [        R                  " SwSx5      R                  5       Sy5        U R                  [        R                  " SwSz5      R                  5       S{5        U R                  [        R                  " SwS|5      R                  5       S}5        U R                  [        R                  " SwS~5      S 5        U R                  [        R                  " SwS5      R                  5       S5        U R                  [        R                  " SS5      R                  S5        U R                  [        R                  " SS5      R                  S5        U R                  [        R                  " SS5      R                  S5        U R                  [        R                  " SS5      R                  S5        U R                  [        R                  " SS5      R                  S5        U R                  [        R                  " SS5      R                  / SQS// 45        U R                  [        [        R                  " SS5      5      S5        g )Nz(fou){s,e<=1}z(fuu){s}z
(fuu){s,e}z(anaconda){1i+1d<1,s<=1}z(anaconda){1i+1d<1,s<=1,e<=10}z(anaconda){s<=1,e<=1,1i+1d<1}z-molasses anaconda foo bar baz smith anderson z(znacnda){s<=1,e<=3,1i+1d<1}z(znacnda){s<=1,e<=3,1i+1d<2}r   rE   )rk      r8  z(ananda){1i+1d<2}z(?:\bznacnda){e<=2}anacondaz(?:\bnacnda){e<=2}z#anaconda foo bar baz smith andersonz(fuu){i<=3,d<=3,e<=5})rA   rA   z(?b)(fuu){i<=3,d<=3,e<=5})rk   r   r;  z(fuu){i<=2,d<=2,e<=5})ro   r   r<  z(?e)(fuu){i<=2,d<=2,e<=5}z(fuu){i<=3,d<=3,e}z(?b)(fuu){i<=3,d<=3,e}z(approximate){s<=3,1i+1d<3}z(foobar){e}xirefoabralfobarxie)r  r  z(?e)(foobar){e})rI   rI   z(?b)(foobar){e})rl   r  r>  z(foobar){e<=2}xirefoabrzlfd)r   rk   r@  xirefoabzlfdz(foobar){i<=2,s<=2,e<=2}oobargoobaploowap)r  rl   rC  z\b(foobar){e}\bzfoobarz)r   r  rE  zboing zfoobarz goobar woopz(?b)\b(foobar){e}\b)r  r  rF  z^(foobar){e<=1}$foobarxfoobar)r2  r2  foobarxfooxbarfoxbarxoobarfoobaxoobar)r   r  rO  fobarfoobaxfoobarxfoobarxxxxfoobarxfoxbarfoxbarxz (foobar){i<=1,d<=2,s<=3,2d+1s<4}(3oifaowefbaoraofuiebofasebfaobfaorfeoaro)rR  rm   rX  z$(?b)(foobar){i<=1,d<=2,s<=3,2d+1s<4})"   '   rY  zfoo(bar){e<=1}zap	foobarzap)r   rk   rF   rR  fobarzapfoobrzap)rE  rF   r  zxwww.cnn.com 64.236.16.20
www.slashdot.org 66.35.250.150
For useful information, use www.slashdot.org
this is demo data!
z(?s)^.*(dot.org){e}.*$)r   x   )rc  rc  z(?es)^.*(dot.org){e}.*$)rb  )]   d   z^.*(dot.org){e}.*$))r   w   )   e   z\b\L<words>{e<=1}\bz book cot dog desk zcat dogr/  cotdogz book dog cot desk z dogz(?e)\b\L<words>{e<=1}\bz(?r)\b\L<words>{e<=1}\bzdog z(?er)\b\L<words>{e<=1}\bs   \b\L<words>{e<=1}\bs    book cot dog desk s   cat dogs   cots   dogs    book dog cot desk s    dogs   (?e)\b\L<words>{e<=1}\bs   (?r)\b\L<words>{e<=1}\bs   dog s   (?er)\b\L<words>{e<=1}\bz(\w+) (\1{e<=1})zfoo fou)r	  fouz(?r)(\2{e<=1}) (\w+)s   (\w+) (\1{e<=1})s   foo fou)s   foos   fouz(?:(?:QR)+){e}r  r   z	(?:Q+){e}r   z(?:service detection){0<e<5}zservic detection)r   r  zservice detect)r   r   zservice detecti)r   r  zservice detectionzin service detection)r      (?:cats|cat){e<=1}catr   r   rE   (?e)(?:cats|cat){e<=1}r   r   r   z(?:cat|cats){e<=1}catsr   rE   r   z(?e)(?:cat|cats){e<=1}z(?:cat){e<=1} (?:cat){e<=1}zcat cotrE   r   r   z/(?e)(GTTTTCATTCCTCATA){i<=4,d<=4,s<=4,i+d+s<=8}ATTATTTATTTTTCATA)r   rR  r   rl   rF   z(?:fo){e<=1}|(?:fo){e<=2}FOT)r2   r   r*   r7   r8   r   rK   rL   r9   r  rZ  rM   	fullmatchfuzzy_countsfuzzy_changesrL  r-  s     r   
test_fuzzyRegexTests.test_fuzzy4
  sU   d5==#ABC


	d5==#<=>


	d5==#>?@


	d5==1K#LMN


	d5==1Q#RST


	d5==1P#QRS


	 ?&DdK
	&D
Q
.	0&94@$G&<dCAF
	&;TB1E
	 5&=tDII!
	 &A
Q
.	0&=tDII!
 	"&A
Q
.	0&:DAFFq!L
	&>EJJ1
 	" 	d5==1N#OPQ


	 	m
!!%a-=	?&7
!!%a-=	?&7
!!%a-A	C 	&6
41:'7	9&6GN 	&@
#tAqz+=	? 	&9:FKKA
	 &9
&((,Q
4D	F&=
&((,Q
4H	J 	&8(CHHAN
	&8)DII!
	 &8)DII!
	 &8)DII!
	 &8(CHHAN
	&8(CHHAN
	&8(CHHAN
	&8'BGG1M
	&8'BGG1M
	&8'BGG1M
	&8*EtL&8*EtL&8*EtL&8)DdK&8)DdK
 	&H
466:d1aj C	 	&L
466:d1aj C	
 	&9;GLLQ
	 &9:FM&9:FKKA
	 O&?FKKA
$	&&@$GLLQ
#	%&;TBGG1M
	!
 	'=
y'8:<A5>	K'=
y'8:<BE?	L'A
y'8:<A5>	K'A
y'8:<BE?	L'B
y'8:<A5>	K'A
y'8:<A5>	K'>
 
(8(8(:<>Df=M	O'>
 
(8(8(:<>Ev=N	P'B
 
(8(8(:<>Df=M	O'B
 
(8(8(:<>Ev=N	P'C
 
(8(8(:<>Df=M	O'B
 
(8(8(:<>Df=M	O 	&99ELLN
	&=
VX~	/&:
fh 0	2 	'8'BW
E 	|U;eR[I 	%D
"dfg	/%D
 DFG	-%D
!TVW	.%D
 $	&%D
 ""&$&'	3 	)>
y	*)B
y	* 	)>
,		+)B
,		+ 	)G
!\9	. 	&X
,}~sB.G	I 	ekk*EtLM
	r   c                 
   U R                  [        R                  " SS5      S S  S5        U R                  [        R                  " SS5      S S  S5        U R                  [        R                  " SS5      S S  S5        U R                  [        R                  " SS5      S S  S	5        U R                  [        R                  " SS
5      S S  S5        U R                  [        R                  " SS5      S 5        U R                  [        R                  " SS5      S S  S5        U R                  [        R                  " SS5      S S  S5        U R                  [        R                  " SS5      S S  S5        U R                  [        R                  " SS5      S S  S5        U R                  [        R                  " SS
5      S S  S5        U R                  [        R                  " SS5      S 5        U R                  [        R                  " SS5      S S  S5        U R                  [        R                  " SS5      R                  S5      / SQ5        U R                  [        R                  " SS5      S S  S5        U R                  [        R                  " SS5      R                  S5      / SQ5        U R                  [        R                  " SS5      S S  S5        U R                  [        R                  " SS5      S S  S5        U R                  [        R                  " S S!5      S S  S"5        U R                  [        R                  " S#S!5      S S  S"5        [        R                  " S$5      nU R                  [        UR                  S%5      5      S&5        U R                  [        UR                  S'5      5      S(5        U R                  [        UR                  S)5      5      S&5        U R                  [        UR                  S*5      5      S(5        U R                  [        UR                  S+5      5      S(5        U R                  [        UR                  S,5      5      S(5        U R                  [        UR                  S-5      5      S&5        U R                  [        UR                  S.5      5      S&5        U R                  [        UR                  S/5      5      S(5        U R                  [        UR                  S05      5      S&5        U R                  [        UR                  S15      5      S&5        U R                  [        UR                  S25      5      S&5        g )3Nz(\w)(?:(?R)|(\w?))\1rf   )rf   r-   r   r  )r  ri   r   abba)r}  ri   Nkayak)r~  r[  Npaper)papr4  ri   dontmatchmez(?r)\2(?:(\w?)|(?R))(\w))rf   r   r-   )r  r   ri   )r}  Nri   )r~  Nr[  )r  ri   r4  z\(((?>[^()]+)|(?R))*\)
(ab(cd)ef))r  r  rE   )r.  r/  (cd)r  z(?r)\(((?R)|(?>[^()]+))*\))r  r.  )r  r/  r  r.  z\(([^()]+|(?R))*\)zsome text (a(b(c)d)e) more text)(a(b(c)d)e)r  z(?r)\(((?R)|[^()]+)*\))r  ri   z!(foo(\(((?:(?>[^()]+)|(?2))*)\)))foo(bar(baz)+baz(bop)))r  r  z(bar(baz)+baz(bop))zbar(baz)+baz(bop)z%(?r)(foo(\(((?:(?2)|(?>[^()]+))*)\)))zv^\s*(<\s*([a-zA-Z:]+)(?:\s*[a-zA-Z:]*\s*=\s*(?:'[^']*'|"[^"]*"))*\s*(/\s*)?>(?:[^<>]*|(?1))*(?(3)|<\s*/\s*\2\s*>))\s*$z<foo><bar></bar></foo>Tz<foo><bar></foo></bar>Fz<foo><bar/></foo>z<foo><bar></foo>z<foo bar=baz/>z<foo bar="baz">z<foo bar="baz"/>z<    fooo   /  >z	foo<foo/>z<foo>foo</foo>z<foo><bar/>foo</foo>z<a><b><c></c></b></a>)r2   r7   rK   r  r8   rL  )r   rgxs     r   test_recursiveRegexTests.test_recursive
  s   &=tDaI
	&=uEqJ
	&=vFK
	&=wGL
	 &=wGL
	&=}M
	 	&A4H!M
	&A5I1N
	&A6JA  	"&A7KQ !	#&A7KQ 	 &A
	  	&?N
#	%&?
 %?	A 	&C
2	4&C
 %?	A 	&;
+-./23G	I 	&?
+-./23G	I 	&J
"$%&)+	 
 	&N
"$%&)+	 
 mm  Z  [cjj)ABCTJcjj)ABCUKcjj)<=>Ecjj);<=uEcjj)9:;UCcjj):;<eDcjj);<=tDcjj);<=tD 	cjj56>cjj)9:;TBcjj)?@A4Hcjj)@ABDIr   c                    [         R                  " S5      nU R                  [        R                  " U5      UL 5        U R                  [        R                  " U5      UL 5        UR                  S5      nU R                  [        R                  " U5      UL5        U R                  [        R                  " U5      UL5        U R                  UR                  S L5        [        R                  " U5      nUR                  5         U R                  UR                  S L5        U R                  UR                  S L 5        [         R                  " SS5      n[        R                  " U5      nU R                  [        U5      R                  5       S5        U R                  [        U5      R                  5       S5        [         R                  " SS5      n[        R                  " U5      nU R                  [        U5      R                  5       S5        U R                  [        U5      R                  5       S5        [         R                  " SS5      n[        R                  " U5      nU R                  [        U5      S5        U R                  [        U5      S5        [         R                  " SS5      n[        R                  " U5      nU R                  [        U5      S5        U R                  [        U5      S5        g )Nri   r]   r.  r   r  ry  )r7   r8   
assertTruecopydeepcopyrM   r^  detach_stringr'  r2   r9  r   r  )r   rra   m2r(  it2s         r   	test_copyRegexTests.test_copy<  s   MM#		!)*a(A-.
 GGCL		!A-.a(12,-YYq\
,-		T)* ^^C&iimb)3/c*C0 ^^C&mmBb)3/c*C0 __S%(iimb3'cC( __S%(mmBb3'cC(r   c                    U R                  [        R                  " SSS5      S5        U R                  [        R                  " SSS5      S5        U R                  [        R                  " SSS5      S5        U R                  [        R                  " SSS5      S	5        U R                  [        R                  " SS5      R                  S5      S5        g )
Nr  z{0} => {2} {1}r  foo bar => bar fooz(?<word1>\w+) (?<word2>\w+)z{word2} {word1}bar foo)r  rE   )r  rE   )r2   r7   subfsubfnrM   expandfrN   s    r   test_formatRegexTests.test_formatg  s    N4D
*	,$B
Y()2	4 	^5E
/	1%C
Y()7	9 	^
W-.0D	Fr   c                 x   U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SSSS95      S5        U R                  [        [        R                  " SSSS	95      S5        U R                  [        [        R                  " SS
SS	95      S5        U R                  [        [        R                  " SS
SSS95      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SSSS95      S5        U R                  [        [        R                  " SSSS	95      S5        U R                  [        [        R                  " SS
SS	95      S5        U R                  [        [        R                  " SS
SSS95      S5        g )Nr   Tr  FrF   )r]  xabcrE   )r\  rb  r   r  z(?r)abcr2   rL  r7   rw  rN   s    r   test_fullmatchRegexTests.test_fullmatchu  s   eoofe<=tDeooff=>FeooffQGH$Oeooff!DEtLeoofg1EFNeoofg1 	 	eooj%@A4Heooj&ABEJeooj&KL
	 	eooj&aHI
	eooj'qIJ
	eooj'q 	r   c           	         U R                  [        R                  " SSS5      S5        U R                  [        R                  " S[        S5      [        S5      5      S5        U R                  [        R                  " SSS5      S5        U R                  [        R                  " S[	        S5      [	        S5      5      S5        U R                  [        R                  " S[        S5      [        S5      5      S5        U R                  [        R                  " S[        S5      [        S5      5      S5        S	[        S	5      4 H  nU R                  [        R                  " S
U5      / SQ5        [        R                  S:  aT  U R                  [        R                  " SU5      / SQ5        U R                  [        R                  " SU5      / SQ5        M  U R                  [        R                  " SU5      / SQ5        U R                  [        R                  " SU5      / SQ5        M     S[	        S5      [        S5      [        S5      4 H  nU R                  [        R                  " SU5      / SQ5        [        R                  S:  aT  U R                  [        R                  " SU5      / SQ5        U R                  [        R                  " SU5      / SQ5        M  U R                  [        R                  " SU5      / SQ5        U R                  [        R                  " SU5      / SQ5        M     S[        S5      4 H~  nU R                  [        R                  " SU5      / SQ5        U R                  [        R                  " SU5      / SQ5        U R                  [        R                  " S U5      / S!Q5        M     S"[	        S"5      [        S"5      [        S"5      4 H~  nU R                  [        R                  " S#U5      / S$Q5        U R                  [        R                  " S%U5      / S$Q5        U R                  [        R                  " S&U5      / S'Q5        M     S[        S5      4 GH  nU R                  [        R                  " SU5      R                  5       S(5        U R                  [        R                  " S)U5      R                  5       S*5        U R                  [        R                  " S)U5      R                  S+5      S5        U R                  [        R                  " S)U5      R                  S,5      S5        U R                  [        R                  " S)U5      R                  S,S,5      S-5        GM     S[	        S5      [        S5      [        S5      4 GH  nU R                  [        R                  " SU5      R                  5       S(5        U R                  [        R                  " S.U5      R                  5       S/5        U R                  [        R                  " S.U5      R                  S+5      S5        U R                  [        R                  " S.U5      R                  S,5      S5        U R                  [        R                  " S.U5      R                  S,S,5      S05        GM     g )1Nr.   ri   r   xaz   yr  s   xyzs   xazr   r   r   r   r   r   r   r   r   r   s   :a:b::c   :)r   r  r\  r   rh  s   :*)r   r   r  r   r\  r   rh  r   s   (:*))r   r  r   r   r  r  r   r   r\     ::r   r   rh  r   r   )r   r  r\  rh  )r   r  r  r  r\  r  rh  r  r  r  r  r  r  s
   a:b::c:::ds   :+)r  r  s   :::s   (:+)s   (:)(:*)))r  r   )r  r  )r  r  r   r  r  r   rE   r   s   (a))r  )r  r  )r3   r7   rv   r   r   	bytearray
memoryviewr  r   r   r9   r2   rM   rZ  r   )r   r^  s     r   test_issue_18468RegexTests.test_issue_18468  sY   eiiS%8%@eii[-=
e
$	&eiidF;VDeiimD.A

!"(	*eiiio
F
$	&eiij.>
V
%	'  Y!77F!!%++c6": = 9,%%ekk$&? B( )%%ekk&&&A DL M %%ekk$&? B %%ekk&&&A D, - 8 "=#<
J
J!79F!!%++dF"; > 9,%%ekk%&@ C3 4%%ekk'6&B E  %%ekk%&@ C %%ekk'6&B E1 29  #K$==F!!%--f"= @ !!%--"? B !!%--	6"B E' ( > %mM&B
M
"J}$=?F!!%--v"> A !!%--"@ C !!%--
F"C F1 2? ;s++FU[[f5<<>CU[[7>>@&IU[[7==a@#FU[[7==a@#FU[[7==aC F  , ]40)D/
T
FU[[v6==?DU[[8??A7KU[[8>>qA4HU[[8>>qA4HU[[8>>q!D G r   c           	       
   U R                  [        R                  " SSSS9R                  S5        U R                  [        R                  " SSSS9R	                  5       S5        U R                  [        R                  " SSSS9R                  S5        U R                  [        R                  " SSSS9R	                  5       S5        U R                  [        R                  " SS	SS9S 5        U R                  [        R                  " S
SSS9R                  S5        U R                  [        R                  " S
SSS9R	                  5       S5        U R                  [        R                  " S
SSS9R                  S5        U R                  [        R                  " S
SSS9R	                  5       S5        U R                  [        R                  " SSSS9R                  S5        U R                  [        R                  " SSSS/S9R                  S5        U R                  [        R                  " SSSS/S9R	                  5       S5        U R                  [        R                  " SSSS/S9R                  S5        U R                  [        R                  " SSSS/S9R	                  5       S5        U R                  [        R                  " SSSS/S9R                  S5        U R                  [        R                  " SSSS/S9R	                  5       S5        U R                  [        R                  " SSSS/S9R                  S5        U R                  [        R                  " SSSS/S9R	                  5       S5        U R                  [        R                  " SSSS/S9S 5        U R                  [        R                  " SSSS9R	                  5       S5        U R                  [        R                  " SSSS9R	                  5       S5        U R                  [        R                  " SSSS9R	                  5       S5        U R                  [        R                  " SSSS9R	                  5       S5        U R                  [        R                  " SSSS9R	                  5       S5        U R                  [        R                  " SS SS9S 5        U R                  [        R                  " SS!SS9S 5        g )"Nr.  ri   TpartialrU  rr  rn  rI   catchzabc\w{3}rQ  Fr  r  rO  z\d{4}$1234z	\L<words>post)r  r0  r  r\  r.  POST   poﬆPOSz	[a-z]*4R$r  ab4a4a4R4aa44)r2   r7   rM   r  rL   rN   s    r   test_partialRegexTests.test_partial  s   T3=EEtLT3=BBDfMWeTBJJ
	WeTBGGI L 	WgtDdK[(	([(	(['	'['	( 	YEMM
	 	\64!'5	*\64$&&	*\5$!'4	)\5$$&&	* 	%6%gu	.%6"dff	.%6t%gt	-%6t"dff	.%6
ug'(,	. 	\3EJJL
	\4FKKM
	\5$GLLN
	\4FKKM
	\5$GLLN
	\4FM\5$GNr   c                    U R                  [        [        R                  " S[        R                  S95      S5        U R                  [        [        R                  " S[        R                  S95      S5        U R                  [        R
                  " SS5      SS/5        U R                  [        R
                  " S	S5      SS/5        U R                  [        R
                  " SS
5      S/5        U R                  [        R
                  " SS5      S/5        U R                  [        R
                  " SS5      S/5        U R                  [        R                  " SS5       Vs/ s H  oR                  5       PM     snS/5        U R                  [        R                  " SS[        R                  [        R                  -  5      R                  S5      S5        U R                  [        R                  " SS[        R                  [        R                  -  5      R                  S5      S5        U R                  [        R                  " SS[        R                  [        R                  -  5      R                  S5      S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        [        R                  " SS[        R                  S95      S5        U R                  [        R                  " SS5      R                  SS5      S 5        U R                  [        R                  " S!S"5      R                  SS5      S#5        U R                  [        R                  " S$S%5      R                  S5      S%5        U R                  [        R                  " S&S'5      S 5        U R                  [        R                  " S(S)5      R                  S5      S5        U R                  [        R                  " S*S+5      R                  S5      S,5        U R                  [        R                  " S*S-5      R                  S5      S.5        U R                  [        R                  " S*S/5      R                  S5      S05        U R                  [        R                  " S1S/5      R                  5       S/5        U R                  [        R                  " S2S35      R                  5       S45        U R                  [        R                  " S5S+5      R                  5       S65        U R                  [        R                  " S5S-5      R                  5       S75        U R                  [        R                  " S8S5      R                  S5      S5        U R                  [        R                  " S9S/[        R                  S9R                  S5      S/5        U R                  [        R                  " S:S;5      R                  SS5      S<5        U R                  [        R                  " S=S;5      R                  SS5      S>5        U R                  [        R                  " S?S;5      R                  SS5      S@5        U R                  [        R                  " SAS;5      R                  SS5      SB5        U R                  [        R                  " SCSD5      R                  S5      S+5        U R                  [        R
                  " SESFSGSH/SI9/ SJQ5        U R                  [        R
                  " SKSF5      / SLQ5        U R                  [        R
                  " SMSF5      / SJQ5        U R                  [        R
                  " SNSF5      / SJQ5        U R                  [        R                  " SOS+5      R                  SSSP5      SQ5        U R                  [        R                  " SRSS5      R                  SS5      ST5        U R                  [        R                  " SUS+5      R                  SS5      SV5        U R                  [        R                  " SWSX5      S 5        U R                  [        R                  " SYSZ5      S 5        U R                  [        R                  U R                   S[ 5        U R                  [        R                  " S\S]5      R                  S5      S^5        U R                  [        R                  " S_S`5      R                  S5      S`5        U R                  [        R                  " SaSb5      S 5        U R                  [        R                  " ScSd5      S 5        U R                  [        R                  " SeSf5      R                  SSSP5      Sg5        U R                  [        R
                  " ShSi5      S"Sj/5        U R                  [        R
                  " SkSi5      S"Sj/5        U R                  [        R
                  " SlSi5      S"Sj/5        U R                  [        R
                  " SmSi5      S"Sj/5        U R                  [        R                  " SnSo5      R                  5       So5        U R                  [        R                  " SpSq5       Vs/ s H  oR                  5       PM     snSrSs/5        U R                  [        R                  " StSu5      R#                  Sv5      / SwQ5        U R                  [        R                  U R$                  Sx 5        SynSznU R                  [        R                  " X#[        R&                  5      S   S{5        U R                  [        R
                  " S|S}5      S~/5        U R                  [)        [        R*                  " SSS[        R,                  5      5      [)        S5      5        U R                  [        R                  " SS5      S 5        U R                  [        R                  " SS5      R/                  S5      SS7/5        U R                  [        R*                  " SS S5      S5        [        R                  " S[        R                  S9nU R                  UR                  S5      S 5        U R                  UR                  S5      / 5        U R                  [        R                  U R0                  S 5        U R                  [        R2                  " SSS9S5        U R                  [        R2                  " SSS9S5        U R                  [        R2                  " S5      S5        U R                  [        R2                  " SSS9S5        U R                  [        R2                  " SSS9S5        U R                  [        R2                  " S5      S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        [        R                  " S[        R4                  [        R6                  -  S9nU R                  UR                  S5       Vs/ s H  ofR                  5       PM     snS/5        U R                  UR                  S5      S/5        SnU R                  UR                  U5       Vs/ s H  ofR                  5       PM     snS/5        U R                  UR                  U5      S/5        [        R                  " S[        R4                  [        R8                  -  [        R6                  -  S9nU R                  UR                  S5       Vs/ s H  ofR                  5       PM     snS/5        U R                  UR                  S5      S/5        SnU R                  UR                  U5       Vs/ s H  ofR                  5       PM     snS/5        U R                  UR                  U5      S/5        [:        R<                  S:  a)  U R                  [        R*                  " SSS5      SS5        O(U R                  [        R*                  " SSS5      S5        U R                  [        R*                  " SSS5      SS5        [:        R<                  S:  a)  U R                  [        R*                  " SSS5      S5        O(U R                  [        R*                  " SSS5      S5        U R                  [        R*                  " SSS5      S5        U R                  [        R*                  " SSS[        R>                  S9S5        U R                  [        R                  " SS5      R@                  S5        U R                  [        R                  " SS5      R@                  S5        U R                  [        R                  " SS5      R@                  S5        U R                  [        R                  " SS5      R@                  S5        U R                  [        R                  " SS5      R@                  S5        U R                  [        R                  " SS5      R@                  S5        U R                  [        R                  " SS5      R@                  S5        U R                  [        R                  " SS5      R@                  S5        U R                  [        R                  " SS5      R@                  S5        U R                  [        R                  " SS5      R@                  S5        U R                  [        R                  " SS5      R@                  S5        U R                  [        R                  " SS5      R@                  S5        U R                  [        R                  " SS5      R@                  S5        U R                  [        R                  " SS5      R@                  S5        U R                  [        R                  " SS5      R@                  S5        U R                  [        R
                  " SS5      / 5        U R                  [        R*                  " SSS5      S5        U R                  [        [        R                  " S+S+[        RB                  5      5      S5        U R                  [        R
                  " SS5      SS/5        U R                  [        R
                  " SS5      SS/5        U R                  [        R
                  " SS5      SS/5        U R                  [        R
                  " SS5      SS/5        U R                  [        R                  SS 5        U R                  [        R                  " SS+5      R                  SSSP5      S5        U R                  [        R                  " SS+5      R                  SSSP5      S5        SRE                  S [G        S5       5       5      nU R                  [)        SRE                  [        R
                  " SU5      5      5      [)        SRE                  [        R
                  " SU5      5      5      5        U R                  [)        SRE                  [        R
                  " SU5      5      5      [)        SRE                  [        R
                  " SU5      5      5      5        U R                  [)        SRE                  [        R
                  " SU5      5      5      [)        SRE                  [        R
                  " SU5      5      5      5        U R                  [)        SRE                  [        R
                  " SU5      5      5      [)        SRE                  [        R
                  " SU5      5      5      5        U R                  [)        SRE                  [        R
                  " SU5      5      5      [)        SRE                  [        R
                  " SU5      5      5      5        U R                  [)        SRE                  [        R
                  " SU5      5      5      [)        SRE                  [        R
                  " SU5      5      5      5        U R                  [)        SRE                  [        R
                  " SU5      5      5      [)        SRE                  [        R
                  " SU5      5      5      5        U R                  [)        SRE                  [        R
                  " SU5      5      5      [)        SRE                  [        R
                  " SU5      5      5      5        U R                  [)        SRE                  [        R
                  " SU5      5      5      [)        SRE                  [        R
                  " SU5      5      5      5        U R                  [)        SRE                  [        R
                  " SU5      5      5      [)        SRE                  [        R
                  " SU5      5      5      5        U R                  [)        SRE                  [        R
                  " SU5      5      5      [)        SRE                  [        R
                  " SU5      5      5      5        U R                  [)        SRE                  [        R
                  " SU5      5      5      [)        SRE                  [        R
                  " SU5      5      5      5        U R                  [)        SRE                  [        R
                  " SU5      5      5      [)        SRE                  [        R
                  " SU5      5      5      5        U R                  [)        SRE                  [        R
                  " SU5      5      5      [)        SRE                  [        R
                  " SU5      5      5      5        [I        [G        S5      5      nU R                  [)        SRE                  [        R
                  " SU5      5      5      [)        SRE                  [        R
                  " SU5      5      5      5        U R                  [)        SRE                  [        R
                  " SU5      5      5      [)        SRE                  [        R
                  " SU5      5      5      5        U R                  [)        SRE                  [        R
                  " SU5      5      5      [)        SRE                  [        R
                  " SU5      5      5      5        U R                  [)        SRE                  [        R
                  " SU5      5      5      [)        SRE                  [        R
                  " SU5      5      5      5        U R                  [)        SRE                  [        R
                  " SU5      5      5      [)        SRE                  [        R
                  " SU5      5      5      5        U R                  [)        SRE                  [        R
                  " SU5      5      5      [)        SRE                  [        R
                  " SU5      5      5      5        U R                  [)        SRE                  [        R
                  " SU5      5      5      [)        SRE                  [        R
                  " SU5      5      5      5        U R                  [)        SRE                  [        R
                  " SU5      5      5      [)        SRE                  [        R
                  " SU5      5      5      5        U R                  [)        SRE                  [        R
                  " SU5      5      5      [)        SRE                  [        R
                  " SU5      5      5      5        U R                  [)        SRE                  [        R
                  " SU5      5      5      [)        SRE                  [        R
                  " GS U5      5      5      5        U R                  [)        SRE                  [        R
                  " GSU5      5      5      [)        SRE                  [        R
                  " GSU5      5      5      5        U R                  [)        SRE                  [        R
                  " GSU5      5      5      [)        SRE                  [        R
                  " GSU5      5      5      5        U R                  [)        SRE                  [        R
                  " GSU5      5      5      [)        SRE                  [        R
                  " GSU5      5      5      5        U R                  [)        SRE                  [        R
                  " GSU5      5      5      [)        SRE                  [        R
                  " GSU5      5      5      5        U R                  [)        [        R                  " GS	GS
5      R                  5       5      [)        GS5      5        U R                  [        R                  " GSGS5      R                  5       GS5        U R                  [        R*                  " GSGSS5      GS5        U R                  [        R*                  " GSGSS5      GS5        U R                  [        RJ                  " GSGSS5      GS5        U R                  [        RJ                  " GSGSS5      GS5        U R                  [        RL                  " GSSSGS9R                  5       S75        U R                  [        RL                  " GSSSGS9RN                  S5        U R                  [        R                  " GSGSSGS9R                  5       GS5        U R                  [        R                  " GSGSSGS9R                  5       GS5        U R                  [        R                  " GSGSSGS9R                  5       GS5        U R                  [        R                  " GSGS5      R                  5       S65        U R                  [        R                  " GSGS5      S 5        U R                  [        R
                  " GS GS!5      / GS"Q5        U R                  [        R
                  " GS#GS!5      / GS"Q5        U R                  [        R                  " GS$GS%5       Vs/ s H  oR                  5       PM     sn/ GS&Q5        U R                  [        R                  " GS'GS%5       Vs/ s H  oR                  5       PM     sn/ GS&Q5        U R                  [        R                  " GS(GS)5      S   GS)5        U R                  [        R                  " GS(GS*5      S   GS*5        U R                  [        R                  " GS+GS,5      S   GS,5        U R                  [        R                  " GS-GS.5      S   GS.5        U R                  [        R                  " GS/S5      R                  SS5      GS05        U R                  [        R
                  " GS1GS25      GS3GS4/5        U R                  [        R
                  " GS5GS25      SGS6/5        U R                  [        R                  " GS7S5      R                  SS5      GS85        U R                  [        R
                  " GS9GS25      GS:S/5        U R                  [        R
                  " GS;GS25      GS6S/5        U R                  [        R                  " GS<GS=5      S   GS=5        U R                  [        R                  " GS>S+5      R                  GS?5      S 5        U R                  [        R                  " GS>S+5      R#                  GS?5      S+/5        U R                  [        R                  " GS@GSA5      S   GSB5        U R                  [        R                  " GSCGSA5      S   GSB5        U R                  [        R                  " GSDGSA5      S 5        U R                  [        R                  " GSEGSA5      S   GSA5        U R                  [        R                  " GSFGSG5      S   GSG5        U R                  [        R                  " GSFGSH5      S   GSI5        U R                  [        R                  " GSJGSG5      S   GSK5        U R                  [        R                  " GSJGSH5      S   GSI5        U R                  [        R                  " GSLGSH5      S   GSH5        U R                  [        R                  " GSLGSM5      S   GSI5        U R                  [        R                  " GSNGSM5      S   GSI5        U R                  [        R                  " GSOGSM5      S   GSI5        U R                  [        R                  " GSPGSA5      S 5        U R                  [        R                  " GSQGSA5      S   GSA5        U R                  [        R                  " GSRGSG5      S   GSG5        U R                  [        R                  " GSRGSH5      S   GSI5        U R                  [        R                  " GSSGSH5      S   GSH5        U R                  [        R                  " GSSGSM5      S   GSI5        U R                  [        R                  " GSTGSM5      S   GSI5        U R                  [        R                  " GSUGSM5      S   GSI5        U R                  [        R                  " GSVGSG5      S   GSG5        U R                  [        R                  " GSVGSH5      S   GSI5        U R                  [        R                  " GSWGSG5      S   GSK5        U R                  [        R                  " GSWGSH5      S   GSI5        U R                  [        R                  " GSXGSH5      S   GSH5        U R                  [        R                  " GSXGSM5      S   GSI5        U R                  [        R                  " GSYGSM5      S   GSI5        U R                  [        R                  " GSZGSM5      S   GSI5        U R                  [        R                  " GS[GSG5      S   GSG5        U R                  [        R                  " GS[GSH5      S   GSI5        U R                  [        R                  " GS\GSH5      S   GSH5        U R                  [        R                  " GS\GSM5      S   GSI5        U R                  [        R                  " GS]GSM5      S   GSI5        U R                  [        R                  " GS^GSM5      S   GSI5        GS_n	U R                  [Q        [        R
                  " GS`U	5      5      S5        U R                  [        R                  " GSaGSb5      R                  5       S75        U R                  [        R                  " GScGSd5      S   GSd5        [        R                  " GSe5      n
GSfnU R                  U
R                  U5       Vs/ s H  oR                  SSP5      PM     snGSgGSh/5        U R                  [        R                  " GSiGSj[        R&                  5      R                  5       GSk5        U R                  [        R                  " GSlGSj[        R&                  5      R                  5       GSm5        U R                  [        R                  " GSnGSo5      R                  5       GSp5        U R                  [        R                  " GSqGSo5      S 5        U R                  [        R                  " GSrGSs5      R                  5       GSt5        U R                  [        R
                  " GSrGSu5      GSvGSw/5        U R                  [        R                  " GSxGSy5      R                  SS5      GSz5        U R                  [        R                  " GS{GSy5      R                  SS5      GSz5        U R                  [        R*                  " GSxGS|GSy5      GS}5        U R                  [        R*                  " GS{GS|GSy5      GS}5        U R                  [        R                  " GS~GSGS/GS9R                  5       S5        U R                  [        R                  " GSGSGS/GS9R                  5       S5        U R                  [        R                  " GSGS5      R                  5       GS5        U R                  [        R                  " GSGS5      R                  5       GS5        U R                  [        R                  " GSGS5      R                  5       GS5        U R                  [        R                  " GSGS5      R                  5       GS5        U R                  [        R                  " GSGS5      R                  5       GS5        [        R                  " GSGSGS/GS9n[R        RT                  " U5      n[R        RV                  " U5      nU R                  UR                  GS5      R                  5       S45        U R                  [        R                  " GSGS[        R&                  S9R                  5       GSp5        U R                  [        R                  " GSGS[        R&                  S9R                  5       GS5        U R                  [        R                  " GSS[        R&                  S9S 5        U R                  [        R                  " GSGS[        R&                  S9R                  5       GSp5        U R                  [        R                  " GSGS[        R&                  S9R                  5       GS5        U R                  [        R                  " GSS[        R&                  S9S 5        U RY                  [        R                  GS 5        U RY                  [        R                  GS 5        U R                  [        [        R                  " GS5      5      S5        U R                  [        [        R                  " GS5      5      S5        U R                  [        R
                  " GSGS[        RZ                  5      GSGS/5        U R                  [        R                  " GSGSSGS9R                  5       GS5        GSnGSnU R                  [        [        R                  " GSU-   U5      5      S5        U R                  [        [        R                  " GSU-   U5      5      S5        U R                  [        [        R                  " GSU-   U5      5      S5        U R                  [        [        R                  " GSU-   U5      5      S5        U R                  [        [        R                  " GSU-   U5      5      S5        U R                  [        [        R                  " GSU-   U5      5      S5        U R                  [        [        R                  " GSGSGSGS/GS95      S5        U R                  [        [        R                  " GSGSGSGS/GS95      S5        U R                  [        [        R                  " GSGSGSGS/GS95      S5        U R                  [        [        R                  " GSGSGSGS/GS95      S5        U R                  [        R                  " GSGSGSGS/GS9R                  5       GS5        U R                  [        R                  " GSGSGSGS/GS9R                  5       GS5        U R                  [        R                  " GSGS5      R                  5       GS5        U R                  [        R                  " GSGS5      R                  5       GS5        U R                  [        R                  " GSGS5      R                  5       GS5        U R                  [        R                  " GSGS5      S 5        U R                  [        R                  " GSGS5      R                  5       GS5        U R                  [        R                  " GSGS5      R                  5       GS5        GSnGSnU R                  [        [        R                  " UU5      5      S5        U R                  [        [        R                  " GSGS5      5      S5        U R                  [        [        R                  " GSGS5      5      S5        U R                  [        [        R                  " GSGS5      5      S5        U R                  [        [        R                  " GSGS5      5      S5        U R                  [        [        R                  " GSGS5      5      S5        U R                  [        R                  " GSGS5      R                  5       GS5        U R                  [        R                  " GSGS[        R&                  5      R                  5       GS5        U R                  [        R                  " GSGS[        R&                  5      R@                  S5        U R                  [        R                  " GSGS[        R&                  5      R                  5       GS5        U R                  [        R                  " GSGS[        R&                  5      R@                  S5        U R                  [        R                  " GSGS[        R&                  5      R                  5       GS5        U R                  [        R                  " GSGS[        R&                  5      R@                  GS5        U R                  [        R                  " GSGS[        R4                  [        R8                  -  S9R                  5       GS5        U R                  [        R
                  " GSGS25      GS6/5        U R                  [        R
                  " GSGS25      GS6/5        U R                  [        R
                  " GSGS5      GSGS/5        U R                  [        R
                  " GSGS5      / 5        U R                  [        R
                  " GSGS5      GS/5        U R                  [        R
                  " GSGS5      / GSQ5        U R                  [        R                  " GSGS5      R                  5       GS5        U R                  [        R                  " GSGS5      R                  5       GS5        U R                  [        R                  " GSGS5      R                  5       GS5        U R                  [        R                  " GSGS5      R                  5       GS5        U R                  [        R                  " GSGS5      R                  5       GS5        U R                  [        R                  " GSGS5      R                  5       GS5        U R                  [        R                  " GSGS5      R                  5       GS5        U R                  [        R                  " GSGS5      R                  5       GS5        U R                  [        R                  " GSGS5      R                  5       GS5        U R                  [        R                  " GSGS5      R                  5       GS5        U R                  [        R                  " GSGS5      R                  5       GS5        U R                  [        R                  " GSGS5      R                  5       GS5        U R                  [        R2                  " GSSSGS9GS5        U R                  [        R2                  " GSSSGS9GS5        U R                  [        R2                  " GSSSGS9GS5        U R                  [        R2                  " GSSSGS9GS5        U R                  [        R2                  " GS5      GS5        U R                  [        R                  " GSSb5      R                  5       S65        U R                  [        R                  " GSGS5      R                  5       S65        U R                  [        R                  " GSGS5      R                  5       GS5        U R                  [        R                  " GSS5      R                  5       GS5        U R                  [        R                  " GSS5      R                  5       GS5        U R                  [        R                  " GSS"5      R                  5       GS5        U R                  [        R                  " GSS"5      R]                  5       GSS 05        U R                  [        R                  " GSS"5      R_                  5       GSS+/05        U R                  [        R                  " GSS"5      R                  5       GS5        U R                  [        R                  " GSS"5      R]                  5       GSS 05        U R                  [        R                  " GSS"5      R_                  5       GSS+/05        U R                  [        R                  " GSS"5      R                  5       GS5        U R                  [        R                  " GSS"5      R]                  5       GSS 05        U R                  [        R                  " GSS"5      R_                  5       GSS+/05        U R                  [        [        R                  " GS S5      5      S5        U R                  [        R                  " GSGSSGS9R                  5       GS5        U R                  [        R                  " GSGSSGS9R                  5       GS5        U R                  [        [        R                  " GSGS5      5      S5        U R                  [        [        R                  " GSGS5      5      S5        U R                  [        [        R                  " GSGS5      5      S5        U R                  [        [        R                  " GSGS5      5      S5        U R                  [        [        R                  " GS	GS5      5      S5        U R                  [        [        R                  " GS
GS5      5      S5        U R                  [        [        R                  " GSGS5      5      S5        U R                  [        [        R                  " GSGS5      5      S5        U R                  [        [        R                  " GSGS5      5      S5        U R                  [        [        R                  " GSGS5      5      S5        U R                  [        [        R                  " GSGS5      5      S5        U R                  [        [        R                  " GSGS5      5      S5        U R                  [        [        R                  " GSGS5      5      S5        U R                  [        [        R                  " GSGS5      5      S5        U R                  [        RL                  " GSS"5      R#                  S5      / GSQ5        U R                  [        RL                  " GSS"5      R                  S5      S5        U R                  [        RL                  " GSS"5      R#                  S5      / GSQ5        U R                  [        RL                  " GSS"5      R                  S5      GS5        U R                  [        R                  " GSSSGS9RN                  S5        U R                  [        R                  " GSGSSGS9RN                  S5        U R                  [        R                  " GSSSGS9RN                  S5        U R                  [        R                  " GSSSGS9RN                  S5        U R                  [        R                  " GSGSSGS9RN                  S5        U R                  [        R                  " GSSSGS9RN                  S5        U R                  [        R                  " GSGSSGS9RN                  S5        U R                  [        R                  " GS SSGS9RN                  S5        U R                  [        R                  " GS!SSGS9RN                  S5        U R                  [        R                  " GS!GSSGS9RN                  S5        U R                  [        R                  " GS"SSGS9RN                  S5        U R                  [        R                  " GS"GSSGS9RN                  S5        U R                  [        R                  " GS#SSGS9RN                  S5        U R                  [        R                  " GS$SSGS9RN                  S5        U R                  [        R                  " GS$GSSGS9RN                  S5        U R                  [        R                  " GS%SSGS9RN                  S5        U R                  [        R                  " GS%GSSGS9RN                  S5        U R                  [        R                  " GS&SSGS9RN                  S5        U R                  [        R                  " GS'SSGS9RN                  S5        U R                  [        R                  " GS'GSSGS9RN                  S5        U R                  [        R                  " GS(SSGS9RN                  S5        U R                  [        R                  " GS)SSGS9RN                  S5        U R                  [        R                  " GS*SSGS9RN                  S5        U R                  [        R                  " GS+SSGS9RN                  S5        U R                  [        R                  " GS,SSGS9RN                  S5        U R                  [        R                  " GS-SSGS9RN                  S5        U R                  [        R                  " GS+S+SGS9RN                  S5        U R                  [        R                  " GS,S+SGS9RN                  S5        U R                  [        R                  " GS-S+SGS9RN                  S5        U R                  [        R                  " GS.SSGS9RN                  S5        U R                  [        R                  " GS/SSGS9RN                  S5        U R                  [        R                  " GS0SSGS9RN                  S5        U R                  [        R                  " GS1SSGS9RN                  S5        U R                  [        R                  " GS2SSGS9RN                  S5        U R                  [        R                  " GS3SSGS9RN                  S5        U R                  [        R                  " GS1S+SGS9RN                  S5        U R                  [        R                  " GS2S+SGS9RN                  S5        U R                  [        R                  " GS3S+SGS9RN                  S5        U R                  [        R                  " GS4GS5SGS9RN                  S5        GS6nGS7n	[        R                  " UU	[        R&                  S9nU R                  UR@                  S5        U R                  UR`                  / GS8// 45        U R                  [        R                  " GS9GS:5      R@                  GS;5        U R                  [        R                  " GS9GS<5      R@                  S5        U R                  [        R
                  " GS=GS>5      GS>/5        U R                  [        [        R                  " GS?S+5      5      S5        U R                  [        [        R                  " GS@S+5      5      S5        U R                  [        RL                  " GSAGSA5      R                  5       S45        U R                  [        R                  " GSBGSC5      R_                  5       GSD// GSD/GSE.5        U R                  [        [        R                  " GSFGSG5      5      S5        U R                  [        [        R                  " GSHGSG5      5      S5        U R                  [        R                  " GSIGSJ5      R`                  / / / GSKQ45        U R                  [        R                  " GSLGS5      R@                  GSM5        U R                  [        R                  " GSLGS5      R`                  S// S/45        U R                  [        R                  " GSNGS5      R@                  GSO5        U R                  [        R                  " GSNGS5      R`                  / / S/45        U R                  [        R                  " GSPGS5      R@                  GSO5        U R                  [        R                  " GSPGS5      R`                  / / S/45        U R                  [        R                  " GSQGSR5      R@                  GSS5        U R                  [        R                  " GSTGSR5      R@                  S5        U R                  [        R                  " GSUGSR5      R@                  S5        U R                  [        R                  " GSVGSW5      R@                  GSX5        U R                  [        R                  " GSYGSW5      R@                  GSX5        U R                  [        RL                  " GSZGS[5      R@                  S5        U R                  [        RL                  " GS\GS[5      R@                  S5        U R                  [        R                  " GS]GS^5      S 5        U R                  [        [        R                  " GS_5      5      S5        U R                  [        [        R                  " GS`5      5      S5        U R                  [        R
                  " GSaGSb5      / GScQ5        U R                  [        R
                  " GSdGSb5      / GScQ5        U R                  [        R                  " GSeGSf[        Rb                  S9R@                  GSg5        U R                  [        [        R                  " GShGS5      5      S5        U R                  [        [        R                  " GSiGS5      5      S5        U R                  [        R                  " GSjGSk5      R                  5       GSk5        U R                  [        R                  " GSjGSl5      S 5        U R                  [        R                  " GSmGSn5      R                  5       GSn5        U R                  [        R                  " GSmGSo5      S 5        U R                  [        R                  " GSmGSn5      R`                  / GSp// 45        U R                  [        R                  " GSqGSn5      R                  5       GSn5        U R                  [        R                  " GSrGSn5      R`                  / GSp// 45        U R                  [        R                  " GSs5      Re                  GSt5      / GSuQ5        U R                  [        R                  " GSs5      Re                  GSv5      / GSwQ5        U R                  [        R                  " GSx5      R                  GSy5      S 5        U R                  [        R                  " GSz5      R                  GS{5      S 5        [        R                  " GS|[        R                  [        Rf                  -  S9nU R                  UR                  GS}5      R                  5       GS}5        U R                  UR                  GS~5      R                  5       GS5        U R                  UR                  GS5      R                  5       GS5        U R                  UR                  GS5      R                  5       GS5        GSnGSn[        R                  " UU[        R&                  S9nU R                  UR                  5       GS5        U R                  UR]                  5       GSGSGSGSGSGS.5        [        R                  " UU[        RZ                  S9nU R                  UR                  5       GS5        U R                  UR]                  5       GSGSGSGSGSGS.5        GSnGSn[        R                  " UU[        R&                  S9nU R                  UR@                  GS;5        U R                  UR`                  / / / 45        GSn[        R                  " UU[        R&                  S9nU R                  UR@                  GSX5        U R                  UR`                  GSGS// / 45        U R                  [        R*                  " GSGSGS5      GS5        U R                  [        RJ                  " GSGSGS5      GS5        U R                  [        R                  " GSGS5      Ri                  GS5      GS5      4  U R                  [        R                  " GSGS5      Rk                  GS5      GS5        U R                  [        R                  " GSGS5      S 5        U R                  [        R                  " GSGS[        R                  S9S 5        U R                  [        R                  " GSGS5      R                  5       S75        U R                  [        R                  " GSGS5      R                  5       S75        U R                  [        R                  " GSGS5      S 5        U R                  [        R                  " GSGS5      R                  5       S65        U R                  [        R                  " GSS"5      Rm                  5       S"// GSQ45        U R                  [        R                  " GSS"5      Ro                  5       S4// GSQ45        U R                  [        [        RL                  " GSGS5      5      S5        U R                  [        [        RL                  " GSGS5      5      S5        U R                  [        R                  " GSSb5      S 5        U R                  [        R                  " GSSb5      R                  5       S,5        U R                  [        R                  " GSGS5      R                  5       GS5        U R                  [        R                  " GSS5      R                  5       S65        U R                  [        R                  " GSS5      R                  5       S75        U R                  [        R                  " GSS5      R                  5       S75        U R                  [        R                  " GSS5      R                  5       S65        U R                  [        R                  " GSGS/ GS9R                  5       GS5        U R                  [        R                  " GS5      R                  S+5      R                  5       S65        U R                  [        R                  " GS[        R                  S9R                  S+5      R                  5       S65        U R                  [        R                  " GSGSSGS9R                  5       GS5        U R                  [        R                  " GSGSSGS9S 5        U R                  [        R                  " GSGSSGS9R                  5       GS5        U R                  [        R                  " GSGSSGS9R                  5       GS5        U R                  [        R                  " GSGSSGS9S 5        U R                  [        R                  " GSGSSGS9R                  5       GS5        U R                  [        R                  " GSGSSGS9S 5        U R                  [        R                  " GSGSSGS9R                  5       GS5        U R                  [        R                  " GSGSSGS9R                  5       GS5        U R                  [        R                  " GSGSSGS9S 5        U R                  [        [        R                  " GSGSSGS95      S5        U R                  [        [        R                  " GSGSSGS95      S5        U R                  [        [        R                  " GSGSSGS95      S5        U R                  [        [        R                  " GSGSSGS95      S5        U R                  [        [        R                  " GSGSSGS95      S5        U R                  [        [        R                  " GSGSSGS95      S5        U R                  [        [        R                  " GSGSSGS95      S5        U R                  [        [        R                  " GSGSSGS95      S5        g s  snf s  snf s  snf s  snf s  snf s  snf s  snf s  snf s  snf (  Nz(?>b)rm  Tz^((?>\w+)|(?>\s+))*$z\((?:(?>[^()]+)|(?R))*\)za(bcd(e)f)g(h)z	(bcd(e)f)z(h)z\((?:(?:[^()]+)|(?R))*\)za(b(cd)e)f)g)hz(b(cd)e)za(bc(d(e)f)ghz(d(e)f)z(?r)\((?:(?>[^()]+)|(?R))*\)z\((?:[^()]*+|(?0))*\)za(b(c(de)fg)hz	(c(de)fg)za(bc)dr  r   z([\da-f:]+)$r  r  z^(?=ab(de))(abd)(e)abde)r  r2  r  z\ r  z^(a|)\1{2}br   rE   )r   r   z	^(a){0,0}r   r  z(?>.*/)bza/bz((?i)blah)\s+\1z	blah BLAHz(\()?[^()]+(?(1)\)|)z(abcdz(a*)*ri   rE   rE   r:  r   r   rG   rF   rF   z	a(?#xxx)*z(?=abc){3}abc	abcabcabcrI   z^(?:a(?:(?:))+)+rU  r  za(?x: b c )dza#comment
*z(?V1)(a(?(1)\1)){1}
aaaaaaaaaarT  z(?V1)(a(?(1)\1)){2})rI   rD   z(?V1)(a(?(1)\1)){3})r  r^  z(?V1)(a(?(1)\1)){4})r  )rR  r   z(?V1)(a)(?<=b(?1))bazz(?fi)\L<keywords>u)   POST, Post, post, poſt, poﬆ, and poﬅr  r\  )keywords)r  Postr  u   poſtr     poﬅz(?fi)pos|post)r  Posr\  u   poſr  r  z(?fi)post|posz(?fi)post|anotherz(?V1)((a)(?1)|(?2))r   r  z(?V1)(\1xx|){6}rf   )r  r  z(a|)+r  z(a|)*\dPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaz^(?:a?b?)*$r!  c                  .    [         R                  " S5      $ )Nz\N{1}r  r   r   r   rb   )RegexTests.test_hg_bugs.<locals>.<lambda>  r  r   r  za
a
rC  z(q1|.)*(q2|.)*(x(a|bc)*y){2,}xayxayz(?i)[^a]rs   z(?i)[[:ascii:]]u   Kz((a|b(?1)c){3,5})baaaaca)r  r  ri   z(?<=:\S+ )\w+z:9 abc :10 defrs  z(?<=:\S* )\w+z(?<=:\S+? )\w+z(?<=:\S*? )\w+z(?:fe)?malefemalez!(fe)?male: h(?(1)(er)|(is)) (\w+)z(female: her dog; male: his cat. asdsasdazfemale: her dogzmale: his catz (?<rec>\((?:[^()]++|(?&rec))*\))zaaa(((1+0)+1)+1)bbbrec)z(1+0)z	((1+0)+1)z(((1+0)+1)+1)c                  2    [         R                  " SSS5      $ )Nr-   \r   r   r   r   rb   r    s    
))Cs
#r   z%(CAGCCTCCCATTTCAGAATATACATCC){1<e<=2}ڮtcagacgagtgcgttgtaaaacgacggccagtCAGCCTCCCATTCAGAATATACATCCcgacggccagttaaaaacaatgccaaggaggtcatagctgtttcctgccagttaaaaacaatgccaaggaggtcatagctgtttcctgacgcactcgtctgagcgggctggcaaggtCAGCCTCCCATTCAGAATATACATCCzc..+/cz
cA/c
cAb/czcAb/cz(\w+)rX  u#   अन्‍न ന്‍ किनu)   [अन्‍न] [ന്‍] [किन]z.*a.*ba.*aaababbaz(?<x>a(?<x>b))r.  r-   r6  z(-)c                 $    U R                  S5      $ )Nr-   )rH  r`   s    r   rb   r    s    QXXd^r   r  axbxcz\bt(est){i<2}z	Some textc                  .    [         R                  " S5      $ )Nz.???r  r   r   r   rb   r    s    
--
 r   zfoo!?F)special_onlyzfoo\!\?zfoo!\?s   foo!?s   foo\!\?s   foo!\?z^([^z]*(?:WWWi|W))?$WWWi)r  z^([^z]*(?:WWWi|w))?$z^([^z]*?(?:WWWi|W))?$r@   yxxxr   z(?V0).*rq   z(?V1).*z(?V0).*?r9  z	|||||||||z	|t|e|s|t|z(?V1).*?z^(@)\n(?!.*?@)(.*)z\1\n==========\n\2z@
z@
==========
rm  cazrt  rp  z(?b)(?:cats|cat){e<=1}z(?:cat){e<=1}z(?e)(?:cat){e<=1}z(?b)(?:cat){e<=1}z(?:cats){e<=2}zc ats)rE   rE   r   z(?e)(?:cats){e<=2}rs  z(?b)(?:cats){e<=2}zc a ts)r   r   r   z(?:cats){e<=1}z(?e)(?:cats){e<=1}z(?b)(?:cats){e<=1}z\bof ([a-z]+) of \1\bz#To make use of one of these modulesz\g<0>z(?V1)[[b-e]--cd]rQ  z(?V1)[b-e--cd]z(?V1)[[bcde]--cd]z(?V1)[bcde--cd]z ^unknown property at position 4$c                  .    [         R                  " S5      $ )Nz\p{}r  r   r   r   rb   r  n  s    %--(r   z(?:()|(?(1)()|z)){2}(?(2)a|z))ri   r   r   z(?:()|(?(1)()|z)){0,2}(?(2)a|z)r   c              3   8   #    U  H  n[        U5      v   M     g 7fr   rF  rG  s     r   rI  *RegexTests.test_hg_bugs.<locals>.<genexpr>}  s     71ArK  i   z[[:alnum:]]+z[\p{Alpha}\p{PosixDigit}]+z[[:alpha:]]+z
\p{Alpha}+z[[:ascii:]]+z[\p{InBasicLatin}]+z[[:blank:]]+z[\p{gc=Space_Separator}\t]+z[[:cntrl:]]+z\p{gc=Control}+z[[:digit:]]+z[0-9]+z[[:graph:]]+z<[^\p{Space}\p{gc=Control}\p{gc=Surrogate}\p{gc=Unassigned}]+z[[:lower:]]+z
\p{Lower}+z[[:print:]]+z%(?V1)[\p{Graph}\p{Blank}--\p{Cntrl}]+z[[:punct:]]+z2(?V1)[\p{gc=Punctuation}\p{gc=Symbol}--\p{Alpha}]+z[[:space:]]+z\p{Whitespace}+z[[:upper:]]+z
\p{Upper}+z[[:word:]]+zL[\p{Alpha}\p{gc=Mark}\p{Digit}\p{gc=Connector_Punctuation}\p{Join_Control}]+z[[:xdigit:]]+z[0-9A-Fa-f]+r  r   s   (?a)[[:alnum:]]+s   (?a)[\p{Alpha}\p{PosixDigit}]+s   (?a)[[:alpha:]]+s   (?a)\p{Alpha}+s   (?a)[[:ascii:]]+s   (?a)[\x00-\x7F]+s   (?a)[[:blank:]]+s   (?a)[\p{gc=Space_Separator}\t]+s   (?a)[[:cntrl:]]+s   (?a)\p{gc=Control}+s   (?a)[[:digit:]]+s
   (?a)[0-9]+s   (?a)[[:graph:]]+s@   (?a)[^\p{Space}\p{gc=Control}\p{gc=Surrogate}\p{gc=Unassigned}]+s   (?a)[[:lower:]]+s   (?a)\p{Lower}+s   (?a)[[:print:]]+s&   (?aV1)[\p{Graph}\p{Blank}--\p{Cntrl}]+s   (?a)[[:punct:]]+s3   (?aV1)[\p{gc=Punctuation}\p{gc=Symbol}--\p{Alpha}]+s   (?a)[[:space:]]+s   (?a)\p{Whitespace}+s   (?a)[[:upper:]]+s   (?a)\p{Upper}+s   (?a)[[:word:]]+sP   (?a)[\p{Alpha}\p{gc=Mark}\p{Digit}\p{gc=Connector_Punctuation}\p{Join_Control}]+s   (?a)[[:xdigit:]]+s   (?a)[0-9A-Fa-f]+z\X$u   ab℃u   ℃z([^L]*)([^R]*R)LtR)r   r  r  zx\1yxayxbyr  zx{1}yz(a)*abcr  OXRGOOGOXra  z.XRGz	.{1,3}XRG)rE   r  zR|RRz(.)(?(1)(?!))r  z(y)?(\d)(?(1)\b\B)ax1y2z3b))r   rW  )r   2)r   r"  z(y)?+(\d)(?(1)\b\B)z(?i)(?:error){e}zregex failure)rO  )r  r   )r   rm   )rm   rm   z(?fi)(?:error){e}z(?p)\d+(\w(\d*)?|[eE]([+-]\d+))10b12z10E+12z(?p)(\w|ae|oe|ue|ss)aez(?p)one(self)?(selfsufficient)?oneselfsufficientz(ab\Kcd))r/  r  z
\w\w\K\w\wabcdefghr/  ghz(\w\w\K\w\w)efghz(?r)(ab\Kcd))r.  r  z(?r)\w\w\K\w\wr  z(?r)(\w\w\K\w\w)z6(?(DEFINE)(?<quant>\d+)(?<item>\w+))(?&quant) (?&item)z5 elephantsz#(?&routine)(?(DEFINE)(?<routine>.))routinez12(*FAIL)|3123r"  z(?r)12(*FAIL)|3z\d+(*PRUNE)\dz\d+(?=(*PRUNE))\dz\d+(*PRUNE)bcd|[3d]123bcd123zzdr0  z\d+?(*PRUNE)bcd|[3d]3bcdz\d++(?<=3(*PRUNE))zzd|[4d]$124zzdz\d++(?<=(*PRUNE)3)zzd|[4d]$z\d++(?<=2(*PRUNE)3)zzd|[3d]$z(?r)\d(*PRUNE)\d+z(?r)\d(?<=(*PRUNE))\d+z(?r)\d+(*PRUNE)bcd|[3d]z(?r)\d++(?<=3(*PRUNE))zzd|[4d]$z(?r)\d++(?<=(*PRUNE)3)zzd|[4d]$z (?r)\d++(?<=2(*PRUNE)3)zzd|[3d]$z\d+(*SKIP)bcd|[3d]z\d+?(*SKIP)bcd|[3d]z\d++(?<=3(*SKIP))zzd|[4d]$z\d++(?<=(*SKIP)3)zzd|[4d]$z\d++(?<=2(*SKIP)3)zzd|[3d]$z(?r)\d+(*SKIP)bcd|[3d]z(?r)\d++(?<=3(*SKIP))zzd|[4d]$z(?r)\d++(?<=(*SKIP)3)zzd|[4d]$z(?r)\d++(?<=2(*SKIP)3)zzd|[3d]$zJune 30, December 31, 2013 2012
some words follow:
more words and numbers 1,234,567 9,876,542
more words and numbers 1,234,567 9,876,542z(?<!\d)(?>2014|2013 ?2012)z1(?>2)12zn(?V1w)(?=(?=[^A-Z]*+[A-Z])(?=[^a-z]*+[a-z]))(?=\D*+\d)(?=\p{Alphanumeric}*+\P{Alphanumeric})\A(?s:.){8,255}+\ZzAAaa11!!z(?smx)
(?(DEFINE)
  (?<subcat>
   ^,[^,]+,
   )
)

# Group 2 is defined on this line
^,([^,]+),

(?:(?!(?&subcat)[\r\n]+(?&subcat)).)+
zP
,Cat 1,
,Brand 1,
some
thing
,Brand 2,
other
things
,Cat 2,
,Brand,
Some
thing
)r  )r   ro   )r  )6   ;   z(abcdefgh){e}z******abcdefghijklmnopqrtuvwxyz)rR  r   z(abcdefghi){e})rR  r  z(?:(?=\d)\d+\b|\w+)r  r  z(?(?=\d)\d+\b|\w+)z (?(?<=love\s)you|(?<=hate\s)her)z
I love your<  z&I love you but I don't hate her eitheryouherz(?p)a*(.*?)aaabbb)r  bbbz
(?p)a*(.*)r   r  z(?irV0)\L<kw>21rW  )kwz(?irV1)\L<kw>za|b111a222)rF   r   z(?r)a|bz(?if)<(CLI)><\1>z
<cli><cli>r  z
<cli><clI>z(?ifr)<\1><(CLI)>z\L<options>r	  r  r  z(x{6}){e<=1}xxxxxxxxxxxrO  z(?r)(x{6}){e<=1}c                  .    [         R                  " S5      $ )Ns   00000\0\00\^(\00\U05000000r  r   r   r   rb   r    s    
--<
=r   c                  .    [         R                  " S5      $ )Ns   {e<lr  r   r   r   rb   r    s    u}}W/Er   z	((?0)){e}z	 ?(?0){e}z0((brown)|(lazy)){1<=e<=3} ((dog)|(fox)){1<=e<=3}z+The quick borwn fax jumped over the lzy hog)borwnr  r   faxr   r  )lzyr   r  hogr  r   z\d\d\d-\d\d-\d\d\d\dz$My SSN is 999-89-76, but don't tell.)$   r   u   Йu   йz(?ui)z(?ai)z(?afi)z
(?i)\L<aa>22121)r:  z(?ri)\L<aa>z(?fi)\L<aa>z(?fri)\L<aa>z(?r)\1dog..(?<=(\L<aa>))$ccdogccbcbccr2  z(?ir)\1dog..(?<=(\L<aa>))$z(2)(?:\1{5}){e<=1}3222212)rE   ro   z(\d)(?:\1{5}){e<=1}z&\A(?P<whole>(?>\((?&whole)\)|[+\-]))\Zz((-))z((-)+)zx.*? (.).*\1(.*)\1z	x  |y| z|r]  z\.sr (.*?) (.)(.*)\2(.*)\2(.*)z#.sr  h |<nw>|<span class="locked">|)r   #   z"\xF9\x80\xAEqdz\x95L\xA7\x89[\xFE \x91)\xF9]\xDB'\x99\x09=\x00\xFD\x98\x22\xDD\xF1\xB6\xC3 Z\xB6gv\xA5x\x93P\xE1r\x14\x8Cv\x0C\xC0w\x15r\xFFc%" z(?P<http_referer>((?>(?<!\\)(?>"(?>\\.|[^\\"]+)+"|""|(?>'(?>\\.|[^\\']+)+')|''|(?>`(?>\\.|[^\\`]+)+`)|``)))) (?P<useragent>((?>(?<!\\)(?>"(?>\\.|[^\\"]+)+"|""|(?>'(?>\\.|[^\\']+)+')|''|(?>`(?>\\.|[^\\`]+)+`)|``))))zfoo(?<=foo)zfoo(?<!foo)zfoo(?<=foo|x)zfoo(?<!foo|x)z0(?(?=.*\!.*)(?P<true>.*\!\w*\:.*)|(?P<false>.*))r  z\w*(ea)\w*|\w*e(?!a)\w*easier)eaz(^1234$){i,d}12234z(^1234$){s,i,d}z(^123$){s,i,d}xxxxxxxx123)r   rl   )r   r  r   za?yzxxxxyz)r   rR  z(?:(?![a-d]).)+z.(?(DEFINE)(?P<mydef>(?:(?![a-d]).)))(?&mydef)+z((\w{1,3})(\.{2,10})){1,3}z("Erm....yes. T..T...Thank you for that."zErm....Ermz....zT...Tr  z((\w{1,3})(\.{2,10})){3}z((\w{1,3})(\.{2,10})){2}z((\w{1,3})(\.{2,10})){1})r  )zT..r  r  r  z(?:ESTONIA(?!\w)){e<=1}zESTONIAN WORKERSESTONIANz(?:ESTONIA(?=\W)){e<=1}z(?:(?<!\w)ESTONIA){e<=1}zBLUB NESTONIANESTONIAz(?:(?<=\W)ESTONIA){e<=1}z(?r)(?:ESTONIA(?!\w)){e<=1}z(?r)(?:ESTONIA(?=\W)){e<=1}z(?r)(?:(?<!\w)ESTONIA){e<=1}z(?r)(?:(?<=\W)ESTONIA){e<=1}z(?:A.*B.*CDE){e<=2}zA B CYZz(?:A.*B.*?CDE){e<=2}z(?:A.*?B.*CDE){e<=2}z(?:A.*?B.*?CDE){e<=2}z ,0A[)r  literal_spacesz\ \,0A\[z \,0A\[z\ ,0A\[z ,0A\[z(?(?=A)A|B)r  z
(?(?=A)A|)rA   z
(?(?=X)X|)z(?(?=X))z(?(DEFINE)(?<func>.))(?&func)r   funcz!(?(DEFINE)(?<func>.))(?=(?&func))z#(?(DEFINE)(?<func>.)).(?<=(?&func))zab(?#comment\))cdz[a-z]+ [a-z]*?:r  z(?r):[a-z]*? [a-z]+z(?u)\p{Script:Beng}u   ৯z(?u)\p{Script:Bengali}z!(?u)\p{Script_Extensions:Bengali}z(?u)\p{Script_Extensions:Beng}z(?u)\p{Script_Extensions:Cakm}z(?u)\p{Script_Extensions:Sylo}z(?u)\p{scx:Latin}r  z(?u)\p{scx:Ahom}z(?u)\p{scx:Common}4z(?u)\p{scx:Caucasian_Albanian}z(?u)\p{scx:Arabic}u   تz(?u)\p{scx:Balinese}z(?u)\p{scx:Devanagari}u   जz(?u)\p{scx:Batak}z(?P<x>.)*(?&x)r1  z(?P<x>.)(?P<x>.)(?P<x>.)r   z(?:ab)*ababz(?:ab)*?z(?:ab)*+z(?:ab)+z(?:ab)+?z(?:ab)++z(?r)(?:ab)*z(?r)(?:ab)*?z(?r)(?:ab)*+z(?r)(?:ab)+z(?r)(?:ab)+?z(?r)(?:ab)++r?   za*?za*+rJ   za+?za++z(?r)a*z(?r)a*?z(?r)a*+z(?r)a+z(?r)a+?z(?r)a++z(?:\s*\w+'*)+whateveraz  (?P<termini5>GGCGTCACACTTTGCTATGCCATAGCAT[AG]TTTATCCATAAGATTAGCGGATCCTACCTGACGCTTTTTATCGCAACTCTCTACTGTTTCTCCATAACAGAACATATTGACTATCCGGTATTACCCGGCATGACAGGAGTAAAA){e<=1}(?P<gene>[ACGT]{1059}){e<=2}(?P<spacer>TAATCGTCTTGTTTGATACACAAGGGTCGCATCTGCGGCCCTTTTGCTTTTTTAAGTTGTAAGGATATGCCATTCTAGA){e<=0}(?P<barcode>[ACGT]{18}){e<=0}(?P<termini3>AGATCGG[CT]AGAGCGTCGTGTAGGGAAAGAGTGTGG){e<=1}?  GCACGGCGTCACACTTTGCTATGCCATAGCATATTTATCCATAAGATTAGCGGATCCTACCTGACGCTTTTTATCGCAACTCTCTACTGTTTCTCCATAACAGAACATATTGACTATCCGGTATTACCCGGCATGACAGGAGTAAAAATGGCTATCGACGAAAACAAACAGAAAGCGTTGGCGGCAGCACTGGGCCAGATTGAGAAACAATTTGGTAAAGGCTCCATCATGCGCCTGGGTGAAGACCGTTCCATGGATGTGGAAACCATCTCTACCGGTTCGCTTTCACTGGATATCGCGCTTGGGGCAGGTGGTCTGCCGATGGGCCGTATCGTCGAAATCTACGGACCGGAATCTTCCGGTAAAACCACGCTGACGCTGCAGGTGATCGCCGCAGCGCAGCGTGAAGGTAAAACCTGTGCGTTTATCGATGCTGAACACGCGCTGGACCCAATCTACGCACGTAAACTGGGCGTCGATATCGACAACCTGCTGTGCTCCCAGCCGGACACCGGCGAGCAGGCACTGGAAATCTGTGACGCCCTGGCGCGTTCTGGCGCAGTAGACGTTATCGTCGTTGACTCCGTGGCGGCACTGACGCCGAAAGCGGAAATCGAAGGCGAAATCGGCGACTCTCATATGGGCCTTGCGGCACGTATGATGAGCCAGGCGATGCGTAAGCTGGCGGGTAACCTGAAGCAGTCCAACACGCTGCTGATCTTCATCAACCCCATCCGTATGAAAATTGGTGTGATGTTCGGCAACCCGGAAACCACTTACCGGTGGTAACGCGCTGAAATTCTACGCCTCTGTTCGTCTCGACATCCGTTAAATCGGCGCGGTGAAAGAGGGCGAAAACGTGGTGGGTAGCGAAACCCGCGTGAAAGTGGTGAAGAACAAAATCGCTGCGCCGTTTAAACAGGCTGAATTCCAGATCCTCTACGGCGAAGGTATCAACTTCTACCCCGAACTGGTTGACCTGGGCGTAAAAGAGAAGCTGATCGAGAAAGCAGGCGCGTGGTACAGCTACAAAGGTGAGAAGATCGGTCAGGGTAAAGCGAATGCGACTGCCTGGCTGAAATTTAACCCGGAAACCGCGAAAGAGATCGAGTGAAAAGTACGTGAGTTGCTGCTGAGCAACCCGAACTCAACGCCGGATTTCTCTGTAGATGATAGCGAAGGCGTAGCAGAAACTAACGAAGATTTTTAATCGTCTTGTTTGATACACAAGGGTCGCATCTGCGGCCCTTTTGCTTTTTTAAGTTGTAAGGATATGCCATTCTAGACAGTTAACACACCAACAAAGATCGGTAGAGCGTCGTGTAGGGAAAGAGTGTGGTACCi  z)(?e)(dogf(((oo){e<1})|((00){e<1}))d){e<2}dogfoodrq  dogfootr  u   👨‍👩‍👧‍👦z(?=a)az(?!b)az
((\d)*?)*?zX(?(DEFINE)(?<mydef>(?<wrong>THIS_SHOULD_NOT_MATCHx?)|(?<right>right))).*(?<=(?&mydef).*)zx rightr%  )mydefwrongr%  z(?:cat){e<=1:[u]}cutz(?:cat){e<=1:u}z?(?be)(AGTGTTCCCCGCGCCAGCGGGGATAAACCG){s<=5,i<=5,d<=5,s+i+d<=10}TTCCCCGCGCCAGCGGGGATAAACCG)r   rE   rF   r  z	(?:bc){e})rE   r   rE   z(?e)(?:bc){e}ro  z(?b)(?:bc){e}z,(?e)(?:^(\$ )?\d{1,3}(,\d{3})*(\.\d{2})$){e}z$ 10,112.111.12)rR  r   r  z/(?e)(?:^(\$ )?\d{1,3}(,\d{3})*(\.\d{2})$){s<=1}z9(?e)(?:^(\$ )?\d{1,3}(,\d{3})*(\.\d{2})$){s<=1,i<=1,d<=1}z/(?e)(?:^(\$ )?\d{1,3}(,\d{3})*(\.\d{2})$){s<=3}z$ 10,1a2.111.12)r   r   r   z/(?e)(?:^(\$ )?\d{1,3}(,\d{3})*(\.\d{2})$){s<=2}z(?e)(?:0?,0(?:,0)?){s<=1,d<=1}z,0;0z(?e)(?:0??,0(?:,0)?){s<=1,d<=1}z#\b(?e)(?:\d{6,20}){i<=5:[\-\\\/]}\bz-cat dog starting at 00:01132.000. hello worldz(?#)z(?x)(?#)z(\d+){i<=2:[ab]}123X4Y5)r  r  5z(?i)(\d+){i<=2:[ab]}z^(test){e<=5}$terstin)r   rF   r   z(?:(x*)\1\1\1)*x$z(?:(x*)\1{3})*x$zt(?:es){s<=1:\d}tte5tteztzt(?:es){i<=1:\d}ttes5ttesztrF   zt(es){i<=1,0<e<=1}tzt(?:es){i<=1,0<e<=1:\d}tz(\d+ week|\d+ days)7 days)r   r&  r   10 days)r   r'  r   z[ ]* Name[ ]*\* z  Name *za|\.*pb\.pyz.geojsa?  (?<=(?:\A|\W|_))(\d+ decades? ago|\d+ minutes ago|\d+ seconds ago|in \d+ decades?|\d+ months ago|in \d+ minutes|\d+ minute ago|in \d+ seconds|\d+ second ago|\d+ years ago|in \d+ months|\d+ month ago|\d+ weeks ago|\d+ hours ago|in \d+ minute|in \d+ second|in \d+ years|\d+ year ago|in \d+ month|in \d+ weeks|\d+ week ago|\d+ days ago|in \d+ hours|\d+ hour ago|in \d+ year|in \d+ week|in \d+ days|\d+ day ago|in \d+ hour|\d+ min ago|\d+ sec ago|\d+ yr ago|\d+ mo ago|\d+ wk ago|in \d+ day|\d+ hr ago|in \d+ min|in \d+ sec|in \d+ yr|in \d+ mo|in \d+ wk|in \d+ hr)(?=(?:\Z|\W|_))z1 month agoz9 hours 1 minute agoz1 minute agoz10 months 1 hour agoz
1 hour agoz1 month 10 hours agoz10 hours ago2TTCAGACGTGTGCTCTTCCGATCTCAATACCGACTCCTCACTGTGTGTCTzw(?P<insert>.*)(?P<anchor>CTTCC){e<=1}(?P<umi>([ACGT]){4,6})(?P<sid>CAATACCGACTCCTCACTGTGT){e<=2}(?P<end>([ACGT]){0,6}$))r   2   TTCAGACGTGTGCTCTTCCGATCTCAATACCGACTCCTCACTGTGTGTCT)insertanchorumisidr  zt(?P<insert>.*)(?P<anchor>AACACTGG){e<=1}(?P<umi>([AT][CG]){5}){e<=2}(?P<sid>GTAACCGAAG){e<=2}(?P<end>([ACGT]){0,6}$)&GGAAAACACTGGTCTCAGTCTCGTAACCGAAGTGGTCG&GGAAAACACTGGTCTCAGTCTCGTCCCCGAAGTGGTCGrg     z(test1)|(test2)zmatched: \1\2test1zmatched: test1zmatched: {1}{2}z(?:\bha\b){i:[ ]}havingz	(?a:\w)\wu   dжz(?a:\w)(?u:\w)z	^\p{LC}+$u   😺z	^\p{So}+$r
  )rU  r6  rS  z\p{HorizSpace}+u4   	   ᠎             　z\p{VertSpace}+u   
  z(?(?<=A)|(?(?![^B])C|D))z^a?(a?)b?c\1$abcar  z(?(?=a).|..)z(?(?=b).|..)z(?(?!a).|..)z(?(?!b).|..)z(\L<foo>){e<=5}blah)r	  r  z
[^/]*b/ccczb/ccczb/ccbzb/ccz
[^/]*b/xyzzb/xyzb/yzz(?i)[^/]*b/cccz(?i)[^/]*b/xyzz<thinking>.*?</thinking>r  z	<thinkingz
<thinking>z<thinking>xz<thinking>xyz abcz<thinking>xyz abc fooz<thinking>xyz abc foo z<thinking>xyz abc foo bar)8r2   rL  r7   r8   V1r9   r'  r   rK   r   rZ  rM   rp   rL   r   r   UNDEF_CHAR_NAMEr  r  	BESTMATCHr  rv   WORDspansr  r  FULLCASErh  r  r   r   ru  rx  DEBUGrn  r  r  r  rw  r  rR  pickledumpsloadsr=  ENHANCEMATCHrD  r;  ry  r  r  V0rH  r  allcapturesallspans)r   ra   fzseqrxr(  r-   rawr  r.  
TEST_REGEX	TEST_DATAr  r4  upper_ilower_iri   py_regex_patternr   sequences                       r   test_hg_bugsRegexTests.test_hg_bugs  smN    	emmG588DEtL 	emm,C  	" 	'B
)51	3'B
)51	3'B
(\	+'B
&K	)'F
&K	)
..1?
CE
C )*'')
CE-	 	h
((9 E!Hf	&
 	osEGG
((= E!Hc	#osEGG
((= E!Hc	#
 	&;VDKKM
	
 	ekk%EGGDEtL 	nc:@@AF I 	
 	k59??1E H 	 	j%8>>qA5I
 	&8+FM 	&=
58V	%
 	gs388;VDgt499!<fEgu5::1=vF 	k59??A5I 	o{CHHJ M 	
 	&8#>CCEvN&8$?DDFO 	nf=CCAFO 	neq5	*
 	&<
Q
$4	6&<
Q
$4	6&<
Q
$4	6&<
Q
$6	8
 	&:EBHHK
	
 	';
?5>#%"	# 	'7
?AC<	= 	'7
?AC?	@ 	';
?AC?	@ 	&;SAGG1
	 
 	&8$?DDQJ
	 	gs399!Q?K 	j(;TB 	mT:DA 	u{{D,@,@ C" 	# 	eX6;;A>G 	&E
E!Hh	(
 	j#6= 	&79JK
	
 	&99EKKA
Q&	( 	'79IJ%.	'79IJ%.	'8:JK%.	'8:JK%.	 	nh?EEG
	
..=
4676 )*'')679J
9	 	&I
!!)% 3	
 	u{{DOO >$ 	' 5 bu?B
'	) 	y-@7)L 	uyy7
P
**   \
]	_ 	^X>E 	%6=CCCH LK 	
 	6+CWM
	
 ]]+588<;/6K0"5 	u{{D,@,@ C! 	" 	gEBKPgDA9Mg.	:hUC\RhTB
	h/< 	&<
&(J	(&<
&(J	(&=
&(J	( mmF%..5==*HIS\\&-AB-A'')-ABUGLV,ug6S\\#->?->'')->?%IS)E73mmF%..5;K;K*K
--+ S\\&-AB-A'')-ABUGLV,ug6S\\#->?->'')->?%IS)E73 y(UYYy#v>EUYYy#v>D9c6:DAy(UYYz3?MUYYz3?M:sF;[I 	#8
ell<=N	P 	%:	i	)%>
y	*%>
y	* 	%5u=JJ
	%9
y	*%9
y	* 	%6@MM
	%:
<	,%:
<	, 	%6
 L)	-%:
 L)	-%:
 L)	- 	%6@MM
	%:
<	,%:
<	, 	'?
/124	6
 	437= 	ekk$U[[ABDI 	':HE
H 	'8(Cc
F 	';XF
I 	'98Ds
G 	 	u{{,N
(	* 	%D
uQ1~}	.%F
uQ1~}	. 7g77rwwu}}5H
(   "''%--0Q
#  	 	rwwu}}5H
(   "''%--0A
#  	 	rwwu}}5H
(   "''%--0J
#  	 	rwwu}}5H
(   "''%--0R
#  	 	rwwu}}5H
(   "''%--0F"NOP	Rrwwu}}5H
(   "''%--u"EFG	Irwwu}}5H
(   "''%--0s
#  	 	rwwu}}5H
(   "''%--0A
#  	 	rwwu}}5H
(   "''%--0\^c"def	hrwwu}}5H
(   
&_
  	 	rwwu}}5H
(   "''%--0F
#  	 	rwwu}}5H
(   "''%--0A
#  	 	rwwu}}5G
(   "''%--  1D
#  	 	rwwu}}5I
(   "''%--0C
#  	
 eEl#sxx6N
)   #((5==1W
$  	 	sxx6N
)   #((5==1G#OPQ	Ssxx6N
)   #((5==1I5#QRS	Usxx6N
)   #((5==1X
$  	 	sxx6N
)   #((5==1L
$  	 	sxx6N
)   #((5==1CU#KLM	Osxx6N
)   #((5==1y  |A  $B  C  D	Esxx6N
)   #((5==1G#OPQ	Ssxx6N
)   #((5==1_af#ghi	ksxx6N
)   #((5==1l
$  	 	sxx6N
)   #((5==1Le#TUV	Xsxx6N
)   #((5==1G#OPQ	Ssxx6M
)   #((5==  2J  LQ  $R  S  T	Usxx6O
)   #((5==1I5#QRS	U 	u||FJ?EEGH
/	
 	&7?FFH K 	
 	67D98D:w=xHFGT:HEJ>I 	D	(D	'
 	fgtDIIK
	fgtDIIK
	k7	( 	UC0557@ 	%5t<dC 	'<jI
+	-'=zJ
+	- 	ENN;N
-  -q&&( - B	D
..-
?A
? ()&&(
?AC#	$ 	&H
	 &H
 	" 	&=tDQGN&H
 "#6	8 	k6:@@AF I 	}jAD
D 	
Cf
F 	 	ov>DDQJ
	'8*E
H 	':JG6
	 	&_
*	, 	&LcRXXYbceij&LcR[[\efilhmn 	ne<Q?E&8%@CSI&6>E&:EB1EuM&<hGJ
	&<hGJ
	&=xHK
	&=xHK
	&D
 	"&D
	&D
	&E
	 	&:EBDI&?GJ
	&@
 	"&@
	&H
 	"&H
	&H
	&I
	 	&;XFqI
	&;XFqI
	&<hGJ
	&<hGJ
	&C
 	"&C
	&C
	&D
	 	&?J1M
	&?J1M
	&G
 	"&G
	&G
	&H
	. 	U]]+H$OPRST 	Xt499;VD 	  &W
$	& ]] $ 
	 	


i
(*
( ,-&&A,
(*,> A ,	
 	o
+U__>>Bdfg	O&6
+U__>>Bdfg	O 	%;XFKKM
	%:HEtL&I
	)'J
246;U^	E 	nh?EEaK
	mX>DDQJ
	>5(CUK=%BEJ 	%5tFKKM
	%5tFKKM
	 	eY7<<>Gi;@@BFK 	&9
	)&9
	)&:
	) MM.5%.ALLOLLO,,.7 	^X!!%	1^W!!%	1^S!"&	(%7!!%	1%7!!%	1%7!"&	( 	%++ (> 	? 	%++'EF 	emmK894@ 	emmN;<dC 	'Z
79K9KM3 6 	 	&=
0$@@D I	
 85ekk(W*<
 	ekk(W*<
 	 	ekk(W*<
 	ekk(W*<
 	 	ekk)g*=
 	ekk)g*=
 	 	ell=$E
D  	ell>4U
E  	ell>4U
E  	ell?De
F  	 	&BIT]!TVV	-&C
'(,	8 	&;
TVV	%&<
TVV	%
 	%R
466	#%R
	
 	%:
tvv	'%F
0226$&'	C  yell+;Q?@%H 	ekk-?@$Gekk-?@%Hekk/5ABDIekk/5ABEJ 	ekk*]
 	 	%?
FHh	( 	ow
//466	+ow
//'<	4 	&7
//466	+&7
//'<	4 	&6
//467	,&6
//'<	4
 	gxu~~


@  DFF	, 	'9:F(	'\
x	! 	'D
469'8)	* 	'B
4679	;'B
468L7M	O'B
468=	> 	&@
#egz	3&@
#egz	3 	&A
 57J	0&A
 57J	0 	&D
#egz	3&D
#egz	3 	&E
 57J	0&E
 57J	0
 	&<
UWi	)&=
UWi	)&=
UWi	)&>
UWi	) 	gERWXZghgERVWYdegDQVWYdegDQUVXabg.< 	nc:??A6Jnc:??A6JmS9>>@&ImR8==?Hk26;;=vF 	&F
8	%&F
vtn	.&F
&3%	2 	&J
8	%&J
vtn	.&J
&3%	2 	&L
8	%&L
vtn	.&L
&3%	2 	ekk*>GH$O 	&8)	(&<i	( 	ekk*@
 	ekk*C
 	ekk*N
 	ekk*K
 	ekk*K
 	ekk*K
 	
 	ekk*>DEtLekk*=sCDeLekk*?EFMekk*KSQR
	ekk*?JKTRekk*A8LM
	ekk*CXNO
	ekk*>IJER 	)95AJJ3O
	)95AGGL
	 	)C
#	1)C
sS	" 	YdCKK
	YEMM
	ZTBJJ
	ZtDLL
	ZFNN
	YdCKK
	YEMM
	ZtDLL
	ZtDLL
	ZFNN
	 	]D$GOO
	]FDIQQ
	^RFNN
	^T4HPP
	^VTJRR
	]D$GOO
	]FDIQQ
	^T4HPP
	^T4HPP
	^VTJRR
	 	T2t<DDeLUB=EEuMUB=EEuMT2t<DDdKUB=EEtLUB=EEtLT3=EEuMUC>FFNUC>FFNXr4@HH%PYDAII5QYDAII5QXr4@HH$OYDAII4PYDAII4PXsDAII5QYTBJJERYTBJJER%5z4PXX
	G, LL$eoo>32vr*:; 	&R
!\9	.&R
!\9	. 	u
FHG
H	J
 	ell9c:;TBell9c:;TB 	>CCEvN 	  'F
!\^y2)&	
 	ekk*>FGNekk*<eDEtL 	&h
&((5B7M	O 	\37DD G 	\37EE
qcH 	%5s;HH K 	%5s;IIrA3-	%5s;HH K 	%5s;IIrA3-	 	%X
)\9	6%[
)\9	6%e
)\9	6%[
)\9	6%[
)\9	6 	)J
,		+)K
,		+ 	&L
9;<@	B 	emmF34d;emmJ78$? 	':IF
	'>	J
	 	%6	%y	2 	ekk*>HI4Pekk*=wGH$O 	%96BHHJ
	%96BDI%97CIIK
	%97CTJ%9
 =2sB-	1%;WEKKM
	%@
 =2sB-	1 	'=>DDXNPbc'=>DDYOQde':;BB:NPTU7>>xH$OMM  J
  R
W
  R
Y
  R
Y
  \
a
  \
d
  \
d
  R
d
  e
-0668-H"89??A>R"89??A<P"89??A>R H MKKA7+3Cw_f  pH  QW  )X  	YKK1C1CD7+3Cw_f  pH  QW  )X  	Y J;KKA32r2,7;KKA3B8R*<= 	#57GQScd$68JGTVfg&8:JKRRScdfvwx&8:JKSSTfgiyz 	&:HEtL&:HEGGTVZ[ 	\3STYY[]cd%68XY^^`bhi 	\3YZ\`a\3YZ__acij 	We4@@BeWoD^_We4==?6(LdAef 	eoo.@  Cl  m  n  pt  	ueoo.?A[\]_cd 	%@#FM&A3GLLNPVW 	&6?DDFO 	_d;@@BFK_d;@@BFK_d;@@BFK_d;@@BFK 	%7RHMMOQWX 	'BCII#NSSUW]^'B%''RXXY\]bbdflm 	]GTJOOQSYZ]GTJDQ]FDINNPRXY]FDINNPRXY]FDI4P%6NSSUW]^%6NPTU%6MRRTV\]%6MRRTV\]%6MtT 	ekk*EsTXYZ\`aekk*E{\`abdhiekk*E|]abceijekk*E}^bcdfjkekk*EGZdhijlpqekk*EG^hlmnptuekk*EG_imnoquvekk*EGblpqrtxyI'EN7T C @
 C @rAh*sC   'FS"3FS'FS,5FS1FS6A FS;V FT W*FT}FT
c                    U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " S	S5      5      S5        U R                  [        [        R                  " S
S5      5      S5        U R                  [        [        R                  " S	S5      5      S5        U R                  [        [        R                  " S
S5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS5      5      S5        U R                  [        [        R                  " SS 5      5      S5        U R                  [        [        R                  " S!S"5      5      S5        U R                  [        [        R                  " S!S#5      5      S5        U R                  [        [        R                  " SS$5      5      S5        U R                  [        [        R                  " SS%5      5      S5        U R                  [        [        R                  " S&S'5      5      S5        U R                  [        [        R                  " S&S(5      5      S5        g ))Nz(?r)(?:a){e<=1:[a-z]}r  Tz(?:a){e<=1:[a-z]}r   Fr  rn  z(?:ab){e<=1:[a-z]}z(?r)(?:ab){e<=1:[a-z]}z(a)\1{e<=1:[a-z]}z(?r)\1{e<=1:[a-z]}(a)r	  rq  z4(?fiu)(?:\N{LATIN SMALL LETTER SHARP S}){e<=1:[a-z]}tsstz5(?firu)(?:\N{LATIN SMALL LETTER SHARP S}){e<=1:[a-z]}z-szs-z4(?fiu)(\N{LATIN SMALL LETTER SHARP S})\1{e<=1:[a-z]}ssstsstsz5(?firu)\1{e<=1:[a-z]}(\N{LATIN SMALL LETTER SHARP S})stsstssszss-szsss-z5(?firu)(\N{LATIN SMALL LETTER SHARP S})\1{e<=1:[a-z]}z(?fiu)(ss)\1{e<=1:[a-z]}u   ßtsu   ßstz(?firu)\1{e<=1:[a-z]}(ss)u   stßu   tsßu   ß-su   ßs-z(?firu)(ss)\1{e<=1:[a-z]}u   s-ßu   -sßr  rN   s    r   test_fuzzy_extRegexTests.test_fuzzy_ext  sD   eoo.FLM
	eoo.BCHI
	eoo.BCHI
	eoo.FLM
	 	eoo.BDIJ
	eoo.F
 	eoo.BDIJ
	eoo.F
 	 	eoo.CTJK	eoo.G 	eoo.CTJK	eoo.G 	 	eoo.BDIJ	eoo.F 	eoo.BDIJ	eoo.F 	 	eoo.e
 	eoo.e
 	eoo.f
 	eoo.f
 	eoo.e
 	eoo.e
 	eoo.f
 	eoo.f
 	 	eoo.e 	eoo.e 	eoo.f 	eoo.f 	eoo.e 	eoo.e 	eoo.f 	eoo.f 	 	eoo.I-/ 015	7eoo.I-/ 015	7eoo.J-/ 015	7eoo.J-/ 015	7eoo.I-/ 016	8eoo.I-/ 016	8eoo.J-/ 016	8eoo.J-/ 016	8r   c                 8   U R                  [        R                  " SS5      R                  S5      S5        U R                  [        R                  " SS5      R                  S5      S5        U R                  [        R                  " SS5      R                  S5      S5        U R                  [        R                  " SSS5      S5        U R                  [        R                  " SSS5      S5        U R                  [        R                  " SSS5      S5        g )Nz	(?P<x>.)+r   z{0} {0[0]} {0[-1]}zabc abc abcz0{1} {1[0]} {1[1]} {1[2]} {1[-1]} {1[-2]} {1[-3]}zc a b c c b az0{x} {x[0]} {x[1]} {x[2]} {x[-1]} {x[-2]} {x[-3]})r2   r7   rM   r  r  rN   s    r   test_subscripted_captures$RegexTests.test_subscripted_captures_  s    \
-.	?\
KL
	 	\
KL
	 	L2G
	!L
<eE
	 	L
<eE
	r   c                 T   [         R                  S:  Ga	  U R                  [        R                  " SS5      / SQ5        U R                  [        R
                  " SSS5      S5        U R                  [        R                  " SS5      / SQ5        U R                  [        R                  " SS5       Vs/ s H  oR                  5       PM     sn/ SQ5        U R                  [        R                  " S	S
5       Vs/ s H  oR                  5       PM     sn/ SQ5        g g s  snf s  snf )Nr   z\b|:+za::bc)r   ri   r   r   r"  r   r   z-a---bc-)r   r   r   r   r   )rA   r  rD   r  r  r  z
(?m)^\s*?$z	foo


bar)rC  )r   r  ra  )	r   r   r2   r7   r  rv   r9   r'  rL   r  s     r   test_more_zerowidthRegexTests.test_more_zerowidthr  s    y(U[[7; > UYYxg>
KU]]8W= @ x1  11ffh 1 AC}1  11ffh 1  8: )s   4D ;D%c                     U R                  [        R                  " SS5      / SQ5        U R                  [        R                  " SS5      / SQ5        g )Nz\Ru   

  )r   rd   r     u    u    s   \Rs   

)s   
ru            r  rN   s    r   test_line_endingRegexTests.test_line_ending~  sD    
u}}U,LMFH
u}}V-BC F& 'r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r|  r}  r~  r  r  r  r  r  r  r  r  r  DUPLICATE_GROUPCANT_TURN_OFFr;  r3   r<   rO   rV   rx   r|   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r)  r5  r<  rE  rI  rM  ra  rj  ro  rv  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r$  r*  r.  r2  r?  rF  rL  rR  rW  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r/  r6  r<  rT  r  r  r  r  r  r!  r5  rz  r  r  r  r  r  r  rR  r[  r^  rb  rk  r   r   r   r   r!   r!      s   .MU1J2N-J%O#M1J'*GKK>CGMK"N-N*N+'O0J'O=M0O
 
9"B>
	
3
7rC?)2.H1fE2N6.." O'
#BJ/<'B1
JF4VNp<E>8
8
"
$ 
&I
A#6KD $1G
1;D;6
9 %D%6	` v2pBM`ED?J48-tL.`L*"J0

/10(IT4=lKLZ]7~LPH(,('44lBEJN))VF,JX3Ojyzv'V8p&
:'r   r!   c                  ,    [         R                  " SS9  g )Nr   )	verbosity)unittestmainr   r   r   	test_mainrs    s    MMAr   __main__)weakrefr   r  rA  r7   r^  r   rq  rS   r   r  r   TestCaser!   rs  r   r   r   r   <module>rw     sc         
 7# 79E 9pE'"" pE'dK zK r   