
    0hh+L                       S SK JrJrJrJrJrJrJrJrJ	r	J
r
Jr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KrS SKJr  S SKJ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 S\R<                  5      5       r! " S S\R<                  5      r" " S S\R<                  5      r# " S S\R<                  5      r$\%S:X  a  \RL                  " 5         gg! \ a    Sr Nf = f)    )
gc_collect
bigmemtest_2Gcpython_onlycaptured_stdoutcheck_disallow_instantiationis_emscriptenis_wasiwarnings_helperSHORT_TIMEOUTCPUStopwatchrequires_resourceN)Scanner)proxyc                   (   ^  \ rS rSrU 4S jrSrU =r$ )S   c                 4   > [        [        TU ]	  U5      5      $ N)r   super__getitem__selfindex	__class__s     5/opt/python-3.13.8/usr/lib/python3.13/test/test_re.pyr   S.__getitem__       $U+,,     __name__
__module____qualname____firstlineno__r   __static_attributes____classcell__r   s   @r   r   r          - -r   r   c                   (   ^  \ rS rSrU 4S jrSrU =r$ )B!   c                 4   > [        [        TU ]	  U5      5      $ r   )r+   r   r   r   s     r   r   B.__getitem__"   r   r   r    r!   r(   s   @r   r+   r+   !   r)   r   r+   c                   P   \ rS rSrSS jrSS j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 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/ r0S0 r1S1 r2S2 r3S3 r4S4 r5S5 r6S6 r7S7 r8S8 r9S9 r:S: r;SS\<Rz                  4S; jr>\?R                  \?R                  -   S<-   rBS= rCS> rDS? rES@ rFSA rGSB rHSC rISD rJSE rKSF rLSG rMSH rNSI rOSJ rPSK rQSL rRSM rSSN rTSO rUSP rVSQ rWSR rXSS rYST rZSU r[SV r\SW r]SX r^SY r_SZ r`S[ raS\ rb\cR                  " \eS]9S^ 5       rfS_ rgS` rhSa riSb rjSc rkSd rlSe rmSf rnSg roSh rpSi rq\r" \sSjSk9Sl 5       rt\r" \sSmSk9Sn 5       ruSo rvSp rwSq rxSr rySs rzSt r{Su r|Sv r}Sw r~Sx rSy r\GR                  " \=(       d    \Sz5      S{ 5       rS| rS} r\GR                  " \=(       d    \Sz5      S~ 5       rS rS rS rS rS rS rS rS rS rS rS rS rS r\" S5      S 5       rS rS rS rS rS rS rS rS rS r\GR                  " \SL S5      S 5       rS rS rS rS r\GRN                  " \" \<GRR                  S5      S5      S 5       rSrg)ReTests%   Nc                 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   r?   )ReTests.assertTypedEqual.<locals>.recurse)   sF    &5$-00/DAAM 0 d6lDL#>r   )assertEqual)r   r:   r;   r>   r?   s   `  `@r   assertTypedEqualReTests.assertTypedEqual'   s"    -	? 	r   c                    U R                  [        R                  5       n[        R                  " U5        S S S 5        U R	                  US9   WR
                  nU R                  UR                  U5        Ub  U R                  UR                  U5        S S S 5        g ! , (       d  f       Nn= f! , (       d  f       g = f)Npattern)	assertRaisesrePatternErrorcompilesubTest	exceptionrA   r>   pos)r   rF   errmsgrM   cmerrs         r   checkPatternErrorReTests.checkPatternError1   s    r/2JJw 0\\'\*,,CSWWf-  #.	 +* 0/**s   BAB0
B-0
B>c                    U R                  [        R                  5       n[        R                  " XU5        S S S 5        U R	                  XS9   WR
                  nU R                  UR                  U5        Ub  U R                  UR                  U5        S S S 5        g ! , (       d  f       Nn= f! , (       d  f       g = f)N)rF   repl)	rG   rH   rI   subrK   rL   rA   r>   rM   )r   rF   rT   stringrN   rM   rO   rP   s           r   checkTemplateErrorReTests.checkTemplateError:   s    r/2FF7&) 0\\'\5,,CSWWf-  #.	 65 0/55s   B AB1 
B.1
B?c                     g r   r    r   s    r    test_error_is_PatternError_alias(ReTests.test_error_is_PatternError_aliasC   s    r   c                    [        S5      n[        R                  " SU5      nU R                  [        5         UR                  S5        S S S 5        [        U5        A[        5         UR                  S5        g ! , (       d  f       N6= f)N   x   as  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)	bytearrayrH   finditerrG   BufferErrorextendr6   r   )r   bits      r   test_keep_bufferReTests.test_keep_bufferF   s^    dO[[q!{+HHX ,R	 ,+s   A::
Bc                     Sn[         R                  " S5      n[        U5      nU R                  UR	                  S5      UR	                  S5      5        g )NQabbbcRzab+c)rH   rJ   r   rA   findall)r   sr<   r=   s       r   test_weakrefReTests.test_weakrefQ   s@    JJv!H9-qyy/CDr   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      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      5        g )Nx*axxr   r   r   zx+      r<   aaaza*xxxxxxar   rt   a+)rA   rH   searchspanassertIsNonematchrZ   s    r   test_search_star_plusReTests.test_search_star_plusW   s\   4/44Q7@4/446?4/44Q7@4/446?"))C/0$.33A6?$.335v>$/44Q7@$/446?"((4/0r   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        g )Nz(ab|ba)abr      baz(abc|bac|ca|cb)abcrx   baccacbz((a)|(b)|(c))ar   rs   rd   crA   rH   r}   r{   rZ   s    r   test_branchingReTests.test_branchingc   sX    	)T27796B)T27796B"3U;@@B	!"3U;@@B	!"3T:??A	!"3T:??A	!/37<<>G/37<<>G/37<<>Gr   c                 R    [        UR                  S5      5      n[        US-   5      $ )Nr   rs   )intgroupstr)r   matchobj	int_values      r   bump_numReTests.bump_numt   s$    q)*	9q=!!r   c           
      b  ^ 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	 H.  nU R                  [        R                  " USS
U-  5      S5        M0     U R                  [        R                  " SSS5      S5        U R                  [        R                  " SU R                  S5      S5        U R                  [        5       nU R                  [        R                  " SU R                  SS5      S5        S S S 5        U R                  WR                  [        5        U R                  [        R                  " SU R                  SSS9S5        U R                  [        R                  " SS S5      S5        U R                  [        R                  " SSS5      S5        SmU R                  [        R                  " STS5      S5        U R                  [        R                  " STR                  SS5      S5      T5        U R                  [        R                  " SU4S jS5      T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      -   [        S05      -   5        S1 Hs  nU R                  U5         U R!                  [        R"                  5         U R                  [        R                  " SSU-   S5      SU-   5        S S S 5        S S S 5        Mu     U R                  [        R                  " S2S3S45      S55        g ! , (       d  f       GNr= f! , (       d  f       NU= f! , (       d  f       M  = f)6Nr=   r   xyzxaz   yr_      xyzs   xaz   àu   аu   𝒜zx%sz(?i)b+r<   	bbbb BBBBx x\d+z08.2 -2 23x99yz9.3 -3 24x100yrt   z9.3 -3 23x99ycount.c                     g)N\nr    ms    r   <lambda>+ReTests.test_basic_re_sub.<locals>.<lambda>   s    ur   r   
z\1\1z(.)xx\\\c                    > T$ r   r    )r   rk   s    r   r   r      s    r   (?P<a>x)z
\g<a>\g<a>xxxxz
\g<a>\g<1>
(?P<unk>x)z\g<unk>\g<unk>z
\g<1>\g<1>z()xz
\g<0>\g<0>z\t\n\v\r\f\a\bz	
	   
                  ,cdehijklmopqsuwxyzABCDEFGHIJKLMNOPQRSTUVWXYZz^\s*XtestXtest)rB   rH   rU   r   r+   r`   
memoryviewrA   r   assertWarnsDeprecationWarningfilename__file__replacechrrK   rG   rI   )r   r=   wr   rk   s       @r   test_basic_re_subReTests.test_basic_re_subx   s   bffS#u5u=bffS!C&!E(;UCbffT48&AbffT1T7AfI>GbffT9T?If<MNPVWbffT:d+;Z=OPRXY1ARVVAsFQJ7? 2 	#{;UC7GH)	+01QRVVFDMM;KQO,. 2 	X.7GqQ(	* 	_c:EBUC0$7q#.5qyyu'=sCQG{C8!<
M4@&I
M4@&I.?FOmTBFK}d;VD%6<>NO%5s;=MN%5s;a&R.R0R8R@QGAN	Q?Aa&&r7$$RVVC3%?J 8 ! @
 	f5w?= 216 87 !s0   4U<0 V/V?V<
V
VV
V.	c                 T    U R                  [        R                  " SSS5      S5        g )Nr   z\g<1>\g<1>\br   zxxxxrA   rH   rU   rZ   s    r   test_bug_449964ReTests.test_bug_449964   s"    E#	%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
z
r   r   rZ   s    r   test_bug_449000ReTests.test_bug_449000   s    0@A%	'/?@%	'/?@%	'.>?%	'r   c                    [         R                  " S5      nU R                  [        [         R                  US[         R
                  5        U R                  [        [         R                  US[         R
                  5        U R                  [        [         R                  US[         R
                  5        U R                  [        [         R                  U[         R
                  5        g )Nr   A)rH   rJ   rG   
ValueErrorr}   Irz   rj   r   rF   s     r   test_bug_1661ReTests.test_bug_1661   s    **S/*bhhbddC*bii#rttD*bjj'3E*bjj'244@r   c                 0    [         R                  " S5        g )Nz(?P<quote>)(?(quote)))rH   rJ   rZ   s    r   test_bug_3629ReTests.test_bug_3629   s    


*+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                  SSSSS5        U R                  SSSSS5        U R                  SSSS S!5        U R                  SS"SS#S!5        U R                  SS$SS%S!5        U R                  SS&SS'S!5        U R                  SS(SS)S!5        U R                  SS*SS S!5        U R                  SS+SS,S!5        U R                  SS-SS.S!5        U R                  SS/SS'S!5        U R                  SS0SS'S!5        U R                  SS1SS)S!5        U R                  SS2SS3S!5        U R                  SS"S4S#S!5        U R                  [        R                  " S5S&S5      S5        U R                  [        R                  " S6S/S75      S85        U R                  [        R                  " S6S0S75      S95        g ):Nr<   \0 z\000z\001z\008 8z\009z 9z\111r   z\117Oz\377   ÿz\1111I1z\00z\07\08z\09z\0az az\400z0octal escape value \400 outside of range 0-0o377r   z\777z0octal escape value \777 outside of range 0-0o377z\1zinvalid group reference 1rs   z\8zinvalid group reference 8z\9zinvalid group reference 9z\11zinvalid group reference 11z\18zinvalid group reference 18z\1az\90zinvalid group reference 90z\99zinvalid group reference 99z\118z\11az\181z\800zinvalid group reference 80 z(((((((((((x)))))))))))z((((((((((y))))))))))(.)r   xz8xza)rA   rH   rU   rW   rZ   s    r    test_sub_template_numeric_escape(ReTests.test_sub_template_numeric_escape   s   UC0$7Wc2F;Wc2F;Wc2J?Wc2J?Wc2F;Wc2F;Wc2F;Xs3W=Xs3\BVS16:VS16:VS1:>VS1:>VS1:>Wc!123	5 	Wc!123	5 	UC1LaPUC1LaPUC1LaPVS2NPQRVS2NPQRVS2MqQVS2NPQRVS2NPQRWc3OQRSWc3OQRSWc3OQRSWc3OQRSUB0KQO 	 963GM :GUK	  :GUK	 r   c           
      J   U R                  [        R                  " SSS5      S5        U R                  [        5       nU R                  [        R                  " SSSS5      S5        S S S 5        U R                  WR
                  [        5        U R                  [        R                  " SSSSS9S5        U R                  [        S5         [        R                  " SSSSSS9  S S S 5        U R                  [        S	5         [        R                  " SSSSS
S
S9  S S S 5        U R                  [        S5         [        R                  " SSSSS
S
5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nk= f! , (       d  f       g = f)Nr   rd   aaaaabbbbbrs   baaaar   z0sub\(\) got multiple values for argument 'count'z0sub\(\) got multiple values for argument 'flags'r   flagsz?sub\(\) takes from 3 to 5 positional arguments but 6 were given)	rA   rH   rU   r   r   r   r   assertRaisesRegex	TypeErrorr   r   s     r   test_qualified_re_subReTests.test_qualified_re_sub   sN   S'2G<01QRVVCgq97C 2X.S';WE##ICEFF3Waq1E ##ICEFF3Wa!4E ##I FF3WaA.  21
E EE E s/   *E!E2F<F!
E/2
F 
F
F"c                    U R                  [        5       n[        R                  " SSS[        R                  5      nS S S 5        U R                  W[        R                  " SSS[        [        R                  5      S95        U R                  [        WR                  5      S5        U R                  UR                  [        5        U R                  [        5       n[        R                  " SSS[        R                  5      nS S S 5        U R                  U[        R                  " SSS[        [        R                  5      S95        U R                  [        UR                  5      S5        U R                  UR                  [        5        U R                  [        5       n[        R                  " S	S
[        R                  5      nS S S 5        U R                  U[        R                  " S	S
[        [        R                  5      S95        U R                  [        UR                  5      S5        U R                  UR                  [        5        g ! , (       d  f       GN!= f! , (       d  f       GNk= f! , (       d  f       N= f)Nr   rd   r   r   z('count' is passed as positional argumentb*r<   r   ::a:b::cmaxsplitz+'maxsplit' is passed as positional argument)r   r   rH   rU   r   rA   r   r   warningr   r   subnsplit)r   r   results      r   test_misuse_flagsReTests.test_misuse_flags  s   01QVVCgrtt4F 2S'RTT!KLQYYC	EX.01QWWT3rtt4F 2sERTT!KLQYYC	EX.01QXXc9bdd3F 2#y3rtt9!MNQYYF	HX.# 21 21 21s#   (I(I*&'I<
I'*
I9<
J
c                 T    U R                  [        R                  " SSS5      S5        g )Nz(\S)\s+(\S)z\1 \2zhello  therezhello therer   rZ   s    r   test_bug_114660ReTests.test_bug_114660  s"    .I&	(r   c                    [         R                  " S5        [         R                  " S5        [         R                  " S5        [         R                  " S5        [         R                  " S5        [         R                  " S5        SR                  S [        S	S
5       5       5      nSU-  nU R	                  [         R
                  " US5      R                  5       S5        g )Nz(?P<a>x)(?P=a)(?(a)y)z(?P<a1>x)(?P=a1)(?(a1)y)z(?P<a1>x)\1(?(1)y)s   (?P<a1>x)(?P=a1)(?(a1)y)u   (?P<µ>x)(?P=µ)(?(µ)y)uf   (?P<𝔘𝔫𝔦𝔠𝔬𝔡𝔢>x)(?P=𝔘𝔫𝔦𝔠𝔬𝔡𝔢)(?(𝔘𝔫𝔦𝔠𝔬𝔡𝔢)y)|c              3   .   #    U  H  nS X4-  v   M     g7fzx(?P<a%d>%x)yNr    .0is     r   	<genexpr>/ReTests.test_symbolic_groups.<locals>.<genexpr>$       K9JA!/9J   rs      z(?:%s)(?(200)z|t)xc8yzr      )rH   rJ   joinrangerA   r}   r{   r   pats     r   test_symbolic_groupsReTests.test_symbolic_groups  s    


+,


./


()


./


-.


{|hhKq'9JKK!C'#w/446?r   c                 $   U R                  SS5        U R                  SSS5        U R                  SS5        U R                  SS	S
5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SS5        U R                  SS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  S SS5        U R                  S!SS5        U R                  S"S#S5        U R                  S$S%S5        U R                  S&SS5        U R                  S'S(S5        U R                  S)S(S5        U R                  S*S(S5        U R                  S+S,S5        U R                  S-S,S5        U R                  S.S,S5        g )/Nz(?P<a>)(?P<a>)z6redefinition of group name 'a' as group 2; was group 1z(?P<a>(?P=a))cannot refer to an open groupr   z(?Pxy)zunknown extension ?Pxz(?P<a>)(?P=amissing ), unterminated namer   z(?P=missing group name   z(?P=)z(?P=1)zbad character in group name '1'z(?P=a)zunknown group name 'a'z(?P=a1)zunknown group name 'a1'z(?P=a.)z bad character in group name 'a.'z(?P<)missing >, unterminated namez(?P<az(?P<z(?P<>)z(?P<1>)z(?P<a.>)z(?(rt   z(?())z(?(a))z(?(-1)) bad character in group name '-1'z(?(1a))z bad character in group name '1a'z(?(a.))u	   (?P<©>x)    bad character in group name '©'u   (?P=©)u   (?(©)y)s	   (?P<µ>x)&bad character in group name '\xc2\xb5's   (?P=µ)s   (?(µ)y)rQ   rZ   s    r   test_symbolic_groups_errors#ReTests.test_symbolic_groups_errors(  s(   0 -	. 	/>	Dy*AB0NPRSw(<a@x)=qAy*KQOy*BCz+DEz+MqQx)GKx)GKw(<a@y*>Bz+LaP{,NPQRv';Q?x)=qAy*BAFz+MqQz+MqQz+MqQ{,NPQRy*LaPz+MqQ1H!	M/H!	M0H!	M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        SR                  S [	        SS5       5       5      nU R                  [        R                  " USS5      S5        g )Nz(?P<a>x)|(?P<b>y)z\g<b>r   r   \2s	   (?P<a1>x)s   \g<a1>   xxu	   (?P<µ>x)u   \g<µ>u#   (?P<𝔘𝔫𝔦𝔠𝔬𝔡𝔢>x)u    \g<𝔘𝔫𝔦𝔠𝔬𝔡𝔢>r  c              3   .   #    U  H  nS X4-  v   M     g7fr  r    r  s     r   r	  -ReTests.test_symbolic_refs.<locals>.<genexpr>T  r  r  rs   r  z\g<200>	xc8yzxc8yc8zc8)rA   rH   rU   r  r  r  s     r   test_symbolic_refsReTests.test_symbolic_refsL  s     3XtDbI 3UDA2Fj%@%HY=tD EGjlpqswxhhKq'9JKKZ=wGr   c                 ^   U R                  SSSSS5        U R                  SSSSS5        U R                  SSSS	S
5        U R                  SSSSS5        U R                  SSSSS5        U R                  SSSSS5        U R                  SSSSS5        U R                  SSSSS5        U R                  [        S5         [        R                  " SSS5        S S S 5        U R                  SSSSS5        U R                  SSSSS5        U R                  SSSSS5        U R                  SSSSS5        U R                  SSSS S5        U R                  S!S"S#S$S5        U R                  SS%SS&S5        U R                  SS'SS(S5        U R                  SS)SS*S5        g ! , (       d  f       N= f)+Nr   z\g<ar   r  rt   z\g<r  z\gz	missing <r   z\g<a a>z!bad character in group name 'a a'z\g<>z\g<1a1>z!bad character in group name '1a1'z\g<2>invalid group reference 2r$  rs   zunknown group name 'ab'z\g<ab>z\g<-1>r  z\g<+1> bad character in group name '+1'z()()()()()()()()()()z\g<1_0>!bad character in group name '1_0'z\g< 1 >!bad character in group name ' 1 'u   \g<©>r  s   (?P<a>x)s   \g<µ>r%  r  u   \g<㊀>!   bad character in group name '㊀'u   \g<¹>    bad character in group name '¹'u   \g<१>!   bad character in group name '१')rW   r   
IndexErrorrH   rU   rZ   s    r   test_symbolic_refs_errors!ReTests.test_symbolic_refs_errorsW  s   
GT >	C
FD 4a	9
E4aH
J CQ	H
GT 4a	9
J CQ	H
Hd ;Q	@
E4 ;Q	@##J0IJFF:y$/ K
It BA	G
It BA	GT CQ	H
J CQ	H
It BA	G-=u I1	N
J CQ	H
It BA	G
J CQ	H% KJs   ?F
F,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                  [        5       nU R                  [        R                  " S	SSS5      S5        S S S 5        U R                  WR
                  [        5        U R                  [        R                  " S	SSSS9S5        U R                  [        S5         [        R                  " SSSSSS9  S S S 5        U R                  [        S5         [        R                  " SSSSSSS9  S S S 5        U R                  [        S5         [        R                  " SSSSSS5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nk= f! , (       d  f       g = f)Nr   r<   r   )r   r   zb+)zx BBBBrs   r   )r   r   r   )xxxyxzxr  r   )xxxyzr   r   z1subn\(\) got multiple values for argument 'count'r   rd   r   rs   z1subn\(\) got multiple values for argument 'flags'r   r   z@subn\(\) takes from 3 to 5 positional arguments but 6 were given)	rA   rH   r   r   r   r   r   r   r   r   s     r   test_re_subnReTests.test_re_subn|  s   3<jIsK8-HsE2J?sE2NC01QRWWT3q9<H 2X.sE;\J##IDFGGCgq2F ##IDFGGCgq!15F ##I GGCgq!Q/  21
F FF F s0   6*GG*<G;4H
G'*
G8;
H	
Hc                    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 H  u  p#nSU< SU< SU< 3nU R                  [        R                  " SU5      SX#SU/5        U R                  [        R                  " SU5      SX#U/5        U R                  [        R                  " SU5      SSUSUSU/5        M     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        S/ SQ4S/ SQ4S/ SQ4S / S!Q44 HD  u  pVU R                  US"9   U R                  [        R                  " US5      U5        S S S 5        MF     S/ S#Q4S$/ S%Q4S&/ S'Q4S(/ S)Q44 HD  u  pVU R                  US"9   U R                  [        R                  " US5      U5        S S S 5        MF     g ! , (       d  f       M  = f! , (       d  f       Mj  = f)*Nr   r   )r   r   rd   r   r   :+)r   r   rd   r   (:+))r   r   r   r   rd   ::r   s   :a:b::c   :)r   r_      br      c   :+)r   r_   rA  rB     (:+))r   r@  r_   r@  rA     ::rB  )u   àßçu   абвu   𝒜𝒞𝒵r?  r   z(?::+)z(:)+)r   r   r   r   rd   r   r   z([b:]+))r   r   r   z:b::r   z(b)|(:+))r   Nr   r   Nr   r   rd   Nr   Nr?  r   z(?:b)|(?::+))r   r   r   r   r   z:*)r   r   r   r   rd   r   r   r   z(?::*)(:*))r   r   r   r   r   r   r   r   rd   r?  r   r   r   r   r   z(:)*)r   r   r   Nr   r   r   Nrd   r   r   Nr   Nr   )sep)	r   r   r   r   rd   r   r   r   r   \b)r   r   r   rd   r?  r   r   z(?=:))r   z:az:br   z:cz(?<=:))r   a:zb:r   r   )	r   rB   rH   r   r+   r`   r   rA   rK   )r   rV   r   rd   r   rG  expecteds          r   test_re_splitReTests.test_re_split  s   9-F!!"((3"7"9;!!"((4"8"57!!"((66":"EG . "1Z=)J2G!*-/F!!"((4"8">@!!"((5&"9"9;!!"((7F";"LN/:GA!%&1-FRXXc62Rr14EFRXXdF3b!]CRXXff5 #q#q$:<: 	(I68KL&)4;	=)Y74	6*i8+	, 	.)</	1 67:;XY_`	
MC #&%%bhhsI&>I '&
 <=782334	
MC #&%%bhhsI&>I '&
 '& '&s   (M%(M,
M)	,
M;	c           	      :   U R                  [        5       nU R                  [        R                  " SSS5      / SQ5        S S S 5        U R                  WR
                  [        5        U R                  [        R                  " SSSS9/ SQ5        U R                  [        R                  " SSSS9/ SQ5        U R                  [        R                  " SSSS9/ S	Q5        U R                  [        R                  " S
SSS9/ S	Q5        U R                  [        R                  " SSSS9/ SQ5        U R                  [        S5         [        R                  " SSSSS9  S S S 5        U R                  [        S5         [        R                  " SSSSSS9  S S S 5        U R                  [        S5         [        R                  " SSSSS5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       Nk= f! , (       d  f       g = f)Nr   r   r   )r   r   b::cr   za:b:c:d)r   rd   zc:dz(:))r   r   r   r   rN  r>  rF  )r   r   r   r   za:b::cz5split\(\) got multiple values for argument 'maxsplit'z2split\(\) got multiple values for argument 'flags'r   r   zAsplit\(\) takes from 2 to 4 positional arguments but 5 were given)	r   r   rA   rH   r   r   r   r   r   r   s     r   test_qualified_re_splitReTests.test_qualified_re_split  s   01QRXXc9a8:KL 2X.#y1=?PQ#y1=?PQ%Q?4	6&)a@4	6&)a@4	6 ##IHJHHS)Q3J ##IEGHHS)Q3G ##I HHS)Q1- % 21J JG G s/   +GG*=G;4H
G'*
G8;
H	
Hc           
         U R                  [        R                  " SS5      / 5        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 H  nUS-  nUS-  nSU< SU< SU< S3nU R                  [        R                  " SU-  U5      X#U/5        U R                  [        R                  " SU-  U5      X#U/5        U R                  [        R                  " SU< SU< S3U5      US4X"4X#4/5        M     g )Nr=  r   
a:b::c:::dr   r?  z:::r>  z(:)(:*)))r   r   )r   r   )r   r?  s
   a:b::c:::drC  )r@  rE  s   :::rD  s   (:)(:*)))r@  r   )r@  r@  )r@  rE  r   r   rt   r   rd   r   dz%s+z(%s+)(z)(z*)r   )rA   rH   rj   r   rB   r+   r`   r   )r   rV   r<   r   rv   s        r   test_re_findallReTests.test_re_findall  s   D%0"5"AlO3F!!"**T6":"46!!"**VV"<"46!!"**Y"?"FH 4 %a&6	-8P!-02F!!"**UF";"79!!"**Wf"="79!!"**Z"@"LN2 2AQBa%C%&C0FRZZ	6:QCLIRZZ!V<qclKRZZq!(<fE "gvw79 2r   c                 V    U R                  [        R                  " SS5      / SQ5        g )Nz(a|(b))aba)r   r   )rd   rd   rZ  rA   rH   rj   rZ   s    r   test_bug_117612ReTests.test_bug_117612  s     J69	;r   c                 ^
   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      S5        GM     S GH  nU R                  [        R                  " X"5      R	                  5       S5        U R                  [        R                  " SU-  U5      R	                  5       U45        U R                  [        R                  " SU-  U5      R                  S5      U5        U R                  [        R                  " SU-  U5      R                  S5      U5        U R                  [        R                  " SU-  U5      R                  SS5      X"45        GM!     [        R                  " S5      nU R                  UR                  S5      R	                  5       S5        U R                  UR                  S5      R	                  5       S5        U R                  UR                  S5      R	                  5       S5        U R                  UR                  S5      R	                  5       S5        U R                  UR                  S5      R	                  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 )!Nr   r    (a)r   r   rs   r   r   r_   s   (a))r_   )r_   r_   r   z(%s)z((a)|(b))(c)?)r   r   NNrd   )rd   Nrd   Nac)r   r   Nr   bc)rd   Nrd   r   r   )rd   r   rd   r   !(?:(?P<a1>a)|(?P<b2>b))(?P<c3>c)?r   rt   r   NNa1b2c3)Nrd   N)r   Nr   )
r   rA   rH   r}   groupsr   r+   r`   r   rJ   )r   rV   r   r  s       r   test_re_matchReTests.test_re_match  s   1S6kFRXXc6299;R@RXXeV4;;=vFRXXeV4::1=sCRXXeV4::1=sCRXXeV4::1a@*M " AdGYt_j6FFFRXXdF3::<bARXXff5<<>HRXXff5;;A>ERXXff5;;A>ERXXff5;;AqA<P G 2ARXXa^224b9RXXfqj!4;;=tDRXXfqj!4::1=qARXXfqj!4::1=qARXXfqj!4::1a@1&I 2 jj)3..02HI3..02HI4//13HI4//13HI4//35HIjj<=3--aA68IJ3--dD$?*	,4..q$:<LMr   c                 Z    " S S5      n[         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                  U" S5      5      S5        U R	                  [
        UR                  S5        U R	                  [
        UR                  S	5        U R	                  [
        UR                  SS
-  5        U R	                  [
        UR                  U" SS
-  5      5        U R	                  [
        UR                  S5        U R                  UR                  SS5      S5        U R                  UR                  U" S5      U" S5      5      S5        g )Nc                        \ rS rSrS rS rSrg)!ReTests.test_group.<locals>.Indexi  c                     Xl         g r   value)r   rq  s     r   __init__*ReTests.test_group.<locals>.Index.__init__  s    "
r   c                     U R                   $ r   rp  rZ   s    r   	__index__+ReTests.test_group.<locals>.Index.__index__!  s    zz!r   rp  N)r"   r#   r$   r%   rr  ru  r&   r    r   r   Indexrn    s    #"r   rw  z(a)(b)r   r   rs   r   rt     r<   r   rd   r   )rH   r}   rA   r   rG   r4  )r   rw  r   s      r   
test_groupReTests.test_group  s8   	" 	" HHXt$D)T*S)q*C0*aggr2*aggq1*aggq$w7*agguQW~>*aggs3A
3q584jAr   c                    [         R                  " S5      nUR                  S5      nU R                  US   S5        U R                  US   S 5        U R                  US   S 5        U R                  SR	                  U5      S5        U R                  US   S5        U R                  US	   S5        U R                  US
   S 5        U R                  US   S 5        U R                  [        S5         US     S S S 5        U R                  [        S5         US     S S S 5        U R                  [        S5         US     S S S 5        U R                  [        S5         US     S S S 5        U R                  [        S5         US     S S S 5        U R                  [        S5         US     S S S 5        U R                  [        S5         SR	                  U5        S S S 5        UR                  S5      nU R                  US   S5        U R                  US   S 5        U R                  US   S5        U R                  SR	                  U5      S5        U R                  US   S5        U R                  US	   S5        U R                  US
   S 5        U R                  US   S5        U R                  [        5         S	US'   S S S 5        U R                  [        [        U5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       N= f)Nrd  r   rf  rg  rh  za1={a1} b2={b2} c3={c3}za1=a b2=None c3=Noner   rs   r   rt   zno such groupr   rx  r  r   )r   za1={a2}rb  r   za1=a b2=None c3=c)
rH   rJ   r}   rA   
format_mapr   r4  rG   r   len)r   r  r   s      r   test_match_getitemReTests.test_match_getitem2  s   jj<=IIcN4#&4$'4$'2==a@BXY1s#1s#1t$1t$##J@cF A##J@bE A##J@aD A##J@dG A##J@dG A##J@fI A##J@  # A IIdO4#&4$'4#&2==a@BUV1t$1s#1t$1s# y)AaD * 	)S!,= A@@@@@@@@@@@@@ *)s`   2K(K::LLL0&M
M>M&(
K7:
L	
L
L-0
L?
M
M#&
M4c                 f   U R                  [        R                  " SS5      R                  5       S5        S[	        S5      4 H8  nU R                  [        R                  " SU5      R                  5       S5        M:     S[        S5      [        S5      [        S5      4 H8  nU R                  [        R                  " SU5      R                  5       S5        M:     S HG  u  p#U< S	X#-   < 3nU R                  [        R                  " XBU-   5      R                  5       S5        MI     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      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      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5      R                  SSSS9R                  5       S5        U R                  [        R                  " S
5      R                  SSSS9R                  5       S5        U R                  [        R                  " S5      R                  SSSS9R                  5       S5        g ) Nr   r   r   za|abr      abs   a|ab)u   àßu   абu   𝒜𝒞r  z.*?$r   rx   z.*?za.*?babbaxxbr   r  ry   zabc$zabc
zabc\Zz(?m)abc$z	ab(?=c)cdabcdz
ab(?<=b)cdz
(?=a|ab)abrc  rs   rt   rM   endposrr   )
rA   rH   	fullmatchr{   r   r+   r`   r   r|   rJ   )r   rV   r   rd   rs        r   test_re_fullmatchReTests.test_re_fullmatch^  s   dC0557@AdGmFR\\'6:??A6J $QuXy'7E9JJFR\\(F;@@BFK KFDAqu%AR\\!U388:FC G 	gu5::<fEfe499;VDh5::<fEh6;;=vFh7<<>G",,ud34",,w89",,x9:",,{G<=lF;@@BFKmV<AACVLmT:??A6JJJu''Aa'@EEG	QJJw))&a)BGGI6	SJJv((Qq(AFFH&	Rr   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      5        U R	                  [        R                  " SS5      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        [        R
                  " S5      nU R                  UR                  S5      R                  5       S5        U R                  UR                  S5      R                  5       S5        U R	                  UR                  S5      5        U R	                  UR                  S5      5        SR                  S [        SS5       5       5      nSU-  nU R                  [        R                  " US5      R                  5       S5        g )Nz^(\()?([^()]+)(?(1)\))$r_  )rU  r   r   Nr   za)z(az^(?:(a)|c)((?(1)b|d))$r   r   rd   cd)NrT  z^(?:(a)|c)((?(1)|d))$rZ  z(?P<g1>a)(?P<g2>b)?((?(g2)c|d))r   r   rd   r   ad)r   NrT  abdrb  r  c              3   .   #    U  H  nS X4-  v   M     g7fr  r    r  s     r   r	  2ReTests.test_re_groupref_exists.<locals>.<genexpr>  r  r  rs   r  z(?:%s)(?(200)z)r  r  )	rA   rH   r}   ri  r|   rJ   r  r  r{   )r   pr  s      r   test_re_groupref_existsReTests.test_re_groupref_exists|  s   "<eDKKM#	%"<cBIIK$	&"((#=tDE"((#=tDE":DAHHJ#	%";TBIIK$	&":DAHHJ$	&":C@GGI"	$ JJ89..0(	*--/)	+!''%.)!''$-( hhKq'9JKK#%#w/446?r   c                    U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  S	S
S5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        g )Nz(?P<a>)(?(0)a|b)zbad group numberr   z()(?(-1)a|b)r  r  z()(?(+1)a|b)r.  z()()()()()()()()()()(?(1_0)a|b)r/     z()(?( 1 )a|b)r0  u   ()(?(㊀)a|b)r1  u   ()(?(¹)a|b)r2  u   ()(?(१)a|b)r3  z()(?(1r  z()(?(1)a"missing ), unterminated subpatternr   z
()(?(1)a|bz()(?(1)a|b|cz/conditional backref with more than two branchesz()(?(1)a|b|c)z	()(?(2)a)r-  r   rZ   s    r   test_re_groupref_exists_errors&ReTests.test_re_groupref_exists_errors  s@   24FKA1	FA1	F8BB	H/BA	G/BA	GA1	F/BA	Gy=q	B{CQ	H}CQ	H ./1	3 	/ ./1	3 	|:A	?r   c                     [        S5       H4  nU R                  US9   [        R                  " SU-  5        S S S 5        M6     g ! , (       d  f       MH  = f)N   )codez()(?(1)\x%02x?))r  rK   rH   rJ   r   r  s     r   &test_re_groupref_exists_validation_bug.ReTests.test_re_groupref_exists_validation_bug  s?    sA1%

-12 &% %%s   A
A	c                 x    SSK Jn  U R                  SSU-  SSU-  S5        U R                  SU-  SU-  S	5        g )
Nr   )	MAXGROUPSz()z\g<%s>r   zinvalid group reference %drt   z(?P<a>)(?(%d))r   )re._constantsr  rW   rQ   )r   r  s     r   test_re_groupref_overflow!ReTests.test_re_groupref_overflow  sJ    +i)&;T <y H!	M09<;iG	Mr   c                 j   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        U R	                  [        R                  " SS5      5        U R                  [        R                  " S	S
5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        U R                  SSS5        g )Nz^(\|)?([^()]+)\1$z|a|)r  r   z^(\|)?([^()]+)\1?$r   r  za|z|az^(?:(a)|c)(\1)$aara  z^(?:(a)|c)(\1)?$r   NNz(abc\1)r  r  )rA   rH   r}   ri  r|   rQ   rZ   s    r   test_re_grouprefReTests.test_re_groupref  s    "6>EEG#	%"7=DDF$	&"((#7>?"((#7>?"4d;BBD#	%"5s;BBD%	' 	z+JANr   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)r  r  )rA   rH   r}   	groupdictrZ   s    r   test_groupdictReTests.test_groupdict  s0    "G"022;)+")H=	?r   c                     U R                  [        R                  " SS5      R                  S5      S5        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 firstz#(?P<first>first)|(?P<second>second)r  z\2 \g<second> )rA   rH   r}   expandrZ   s    r   test_expandReTests.test_expand  s^    "G"02#)6*G#H4	6 	"G")+#)6*:#;	r   c                 .	   U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      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      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      S5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  SSS 5        g )!Nz	^(\w){1}$r   z
^(\w){1}?$z^(\w){1,2}$z^(\w){1,2}?$z	^(\w){3}$rs   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}$rv   z^x{1}?$z^x{1,2}$z	^x{1,2}?$z^x{3}$z^x{1,3}$z^x{3,3}$z^x{1,4}$z	^x{3,4}?$z^x{3}?$z	^x{1,3}?$z	^x{1,4}?$z^x{}$x{}zx{2,1}z"min repeat greater than max repeatr   )r|   rH   r}   rA   r   
assertTruerQ   rZ   s    r   test_repeat_minmaxReTests.test_repeat_minmax  s   "((<78"((=%89"((>59:"((?E:;,6<<Q?E.%8>>qA3G.%8>>qA3G/59??BCH-7==a@#F/59??BCH/59??BCH/59??BCH"((9e45"((:u56"((;67"((<78E23e45e45e45u56U34u56u56u56"((8U34512yCQ	Hr   c                    U R                  [        R                  " S5      R                  S5        U R                  [        R                  " S5      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        [        R                  " S5      nU R                  [        UR                  5      S
S/5        U R                  UR                  S   S5        U R!                  ["        5         SUR                  S'   S S S 5        U R                  UR                  S   S5        g ! , (       d  f       N.= f)Nz
(?i)(a)(b)r   z(?i)(?P<first>a)(?P<other>b)rs   )r  otherr_  r   r   )r   r   r  r  )rA   rH   rJ   rF   r   r   Uri  
groupindexr}   rM   r  rV   regsr  sortedrG   r   )r   r  s     r   test_getattrReTests.test_getattr  s   L199<HL177EL188!<L1<<bA$BCNN#$q1	3 	%-1115%-44a8%-44c:%-224DE,//0 JJ67-/ABg.2y)$%ALL! *g.2 *)s   8J00
J>c                    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[        R                  5      R                  S5      S5        U R                  [        R                  " SS[        R                  5      R                  S5      S5        U R                  [        R                  " SS[        R
                  5      R                  S	5      S
5        U R                  [        R                  " SS
[        R
                  5      R                  S	5      S
5        U R                  [        R                  " SS[        R
                  5      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[        R                  5      R                  S5      S5        U R                  [        R                  " SS[        R                  5      R                  S5      S5        U R                  [        R                  " SS[        R
                  5      R                  S	5      S5        U R                  [        R                  " SS[        R
                  5      R                  S	5      S5        U R                  [        R                  " SS[        R
                  5      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[        R                  5      R                  S	5      S5        U R                  [        R                  " SS[        R                  5      R                  S	5      S5        g )Nz\b(b.)\bzabcd abc bcd bxrs   bxz\B(b.)\Bzabc bcd bc abxdz^abc$z
abc
r   r   z	^\Aabc\Z$s   \b(b.)\bs   abcd abc bcd bxs   bxs   \B(b.)\Bs   abc bcd bc abxds   ^abc$s   
abc
   abcs	   ^\Aabc\Z$z\d\D\w\W\s\Sz1aa! as   \d\D\w\W\s\Ss   1aa! a)rA   rH   rz   r   ASCIIMr|   LOCALErZ   s    r   test_special_escapesReTests.test_special_escapes  s   ;#466;eAh	F;#466;eAh	F;#4bhh@@Ea$	P;#4bhh@@Ea$	P8Y=CCAFN<=CCAFN"))L)RTTBC<#577<uQx	H<#577<uQx	H<#5ryyBBG%(E	S<#5ryyBBG%(E	S9j"$$?EEaH&Q=&"$$?EEaH&Q"))M:rttDE?#+--2U1Xx	A#3#,..3eAh		C?#+RXX77<uQx	K#3#,bii99>q9	Nr   c                 2   U R                  SSS5        U R                  [        R                  " SS5      R	                  5       S5        U R                  [        R                  " SS5      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        U R                  [        R                  " SS5      R	                  5       S5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      R	                  5       S5        U R                  [        R                  " SS5      5        [        R                  " 5         S HO  nU R                  U5         U R                  [        R                  [        R                  SU-  5        S S S 5        MQ     S HO  nU R                  U5         U R                  [        R                  [        R                  SU-  5        S S S 5        MQ     g ! , (       d  f       M  = f! , (       d  f       Mu  = f)Nr   zbad escape (end of pattern)r   z\(rU  )r   z[\]]][z[a\-c]-rd   z[\^a]+za^!ceghijklmopqyzCEFGHIJKLMNOPQRTVXYz\%c$ceghijklmopqyzABCEFGHIJKLMNOPQRTVXYZz[\%c])rQ   rA   rH   r}   r   r|   purgerK   rG   rI   rJ   )r   r   s     r   test_other_escapesReTests.test_other_escapes<  s   t%BAF%-335s;"((5#./%.446='3/557="((7C01)S17793?"((9c23)T288:DA"((9c23

4Aa!!"//2::vzJ ! 5 8Aa!!"//2::x!|L ! 8 ! !s    3I553J5
J	
J	c                    U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " S	S
5      5        U R                  [        R                  " S	S5      5        U R	                  SSS5        U R	                  SSS5        U R	                  SSS5        U R	                  SSS5        U R	                  SSS5        U R	                  SSS5        U R	                  SSS5        U R	                  SSS5        U R	                  SSS5        U R	                  SSS5        U R	                  SSS5        U R	                  SS S!5        U R	                  S"S S5        U R	                  S#S$S!5        U R	                  S%S$S5        U R	                  S&S'S!5        U R	                  S(S'S5        g ))Nz\N{LESS-THAN SIGN}<z\N{less-than sign}>z	\N{SNAKE}u   🐍zW\N{ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM}u   ﯹz*[\N{LESS-THAN SIGN}-\N{GREATER-THAN SIGN}]=;z\Nz	missing {r   z[\N]rt   z\N{zmissing character namez[\N{r  z\N{}z[\N{}]z\NSNAKE}z
[\NSNAKE}]z\N{SNAKEzmissing }, unterminated namez
[\N{SNAKE]z[\N{SNAKE]}z!undefined character name 'SNAKE]'rs   z\N{SPAM}zundefined character name 'SPAM'r   z
[\N{SPAM}]z\N{KEYCAP NUMBER SIGN}z-undefined character name 'KEYCAP NUMBER SIGN'z[\N{KEYCAP NUMBER SIGN}]s   \N{LESS-THAN SIGN}zbad escape \Ns   [\N{LESS-THAN SIGN}])r  rH   r}   r|   rQ   rZ   s    r   test_named_unicode_escapes"ReTests.test_named_unicode_escapesO  s   !6<=!6<="((#8#>?|<= "Q!)+ 	, 	!N!$& 	'"((#P#&( 	) 	uk15wQ7v'?Cw(@!Dw(@!Dy*BAF{K;}k1={=q	B}=q	B~BA	G{@!	E}@!	E8KQ	P:KQ	P57GK79I1Mr   c           	      L)   U R                  [        R                  " SS5      R                  S5      S5        U R                  [        R                  " SS[        R                  5      R                  S5      S5        U R                  [        R                  " SS5      R                  S5      S5        U R                  [        R                  " SS[        R
                  5      R                  S5      S5        U R                  [        R                  " SS5      R                  S5      S5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS	5      5        U R                  [        R                  " SS	[        R                  5      5        U R                  [        R                  " S
S5      5        U R                  [        R                  " S
S[        R
                  5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " S
S5      5        U R                  [        R                  " S
S[        R
                  5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " S
S5      5        U R                  [        R                  " S
S[        R
                  5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " S
S5      5        U R                  [        R                  " S
S[        R
                  5      5        U R                  [        R                  " SS	5      5        U R                  [        R                  " SS	[        R                  5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS[        R
                  5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS[        R
                  5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS[        R
                  5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS[        R
                  5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS[        R
                  5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS[        R
                  5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS[        R                  5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS[        R
                  5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS[        R                  5      R                  5       S5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS[        R
                  5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " S S5      5        U R                  [        R                  " S S[        R
                  5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS!5      5        U R                  [        R                  " SS![        R                  5      5        U R                  [        R                  " SS"5      5        U R                  [        R                  " SS"[        R
                  5      5        U R                  [        R                  " SS!5      5        U R                  [        R                  " SS![        R                  5      5        U R                  [        R                  " SS"5      5        U R                  [        R                  " SS"[        R
                  5      5        U R                  [        [        R                  " SS#5      5      S$5        U R                  [        [        R                  " SS#[        R                  5      5      S$5        U R                  [        [        R                  " SS%5      5      S$5        U R                  [        [        R                  " SS%[        R
                  5      5      S$5        U R                  [        [        R                  " SS#5      5      S&5        U R                  [        [        R                  " SS#[        R                  5      5      S&5        U R                  [        [        R                  " SS%5      5      S&5        U R                  [        [        R                  " SS%[        R
                  5      5      S&5        U R                  [        [        R                  " SS'5      5      S&5        U R                  [        [        R                  " SS'[        R                  5      5      S&5        U R                  [        [        R                  " SS(5      5      S&5        U R                  [        [        R                  " SS([        R
                  5      5      S&5        U R                  [        [        R                  " SS)5      5      S&5        U R                  [        [        R                  " SS)[        R                  5      5      S&5        U R                  [        [        R                  " SS*5      5      S&5        U R                  [        [        R                  " SS*[        R
                  5      5      S&5        U R                  [        [        R                  " SS'5      5      S$5        U R                  [        [        R                  " SS'[        R                  5      5      S$5        U R                  [        [        R                  " SS(5      5      S$5        U R                  [        [        R                  " SS([        R
                  5      5      S$5        g )+Nz	\b(abc)\br   rs   s	   \b(abc)\br  u   \b(ьюя)\bu   ьюяz.\bza=s   .\bs   a=u   я=z=as   =au   =яr   r  u   юяz=-s   =-z.\Bs   .\BrH  s   \bz.+\bs   .+\b\Brs   rs   s   \Brq   z.+\Bs   .+\Br   r   r   r   r_   r   r      z   s      )rA   rH   rz   r   r  r  r|   r  r}   r  r{   r  rj   rZ   s    r   test_word_boundariesReTests.test_word_boundariesw  s   <7==a@%H<AGGJER=&9??BFK=&"))DJJ1MvV?H=CCAFQ"))OXrxxHI./rxx89%01%;</0"((65"((;<./rxx89%01%;</0"((65"((;<"((6401"((64:;"((7E23"((7E299=>"((6623"((66288<="((6401"((64:;"((7E23"((7E299=>"((6401"((64:;"((7E23"((7E299=>"((65129:"((6401"((64:;"((7E23"((7E299=>"((65129:./rxx89%01%;<01:;./rxx89%01%;<./rxx8901;<12"((5(BHH=>We45WeRXX>?Xv67XvryyABWh78"))E8RXX>?5%0557@5%:??A6J6627796B66299=BBDfM5(388:FC5(BHH=BBDfM"((5%01"((5%:;"((6623"((66299=>"((5(34"((;<",,w67",,wrxx@A",,x89",,xCD",,w9:WhAB 	"))E2./"))E2rxx89"))FC01"))FC;< 	"))E2./"))E2rxx89"))FC01"))FC;< 	RZZs34a8RZZsBHH=>BRZZ56:RZZbii@A1ERZZs34a8RZZsBHH=>BRZZ56:RZZbii@A1ERZZs34a8RZZsBHH=>BRZZ56:RZZbii@A1ERZZu56:RZZubhh?@!DRZZ78!<RZZ		BCQGRZZs34a8RZZsBHH=>BRZZ56:RZZbii@A1Er   c                 4   U R                  [        R                  " SS5      R                  S5      S5        SSR	                  [        [        [        SSS5      5      5      -  nU R                  [        R                  " US	5      R                  5       S	5        g )
Nu
   ([∢∣])u   ∢rs   z[%s]r   r        u   ！)rA   rH   r}   r   r  mapr   r  r   r  s     r   test_bigcharsetReTests.test_bigcharset  st    "4"*,,1E!Hh	@RWWSeC&<=>>!X.446Ar   c                     [         R                  " SR                  S [        S5       5       5      5      nU R	                  UR                  S5      5        U R	                  UR                  S5      5        g )Nr  c              3   ,   #    U  H
  nS U-  v   M     g7f)z%dNr    )r  r<   s     r   r	  ,ReTests.test_big_codesize.<locals>.<genexpr>  s      >Aas   '  10009999)rH   rJ   r  r  r  r}   r  s     r   test_big_codesizeReTests.test_big_codesize  sK    JJsxx >u >?@((r   c                    U R                  [        R                  " SS[        R                  5      R	                  S5      S5        U R                  [        R                  " SS[        R                  5      R	                  S5      S5        g )Nza.bza
br   za.*bza

b)rA   rH   r}   DOTALLr   rZ   s    r   test_anyallReTests.test_anyall  s`    %;AA!D	!&(BII>DDQG!	#r   c                    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      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      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      5        U R                  [        R                  " SS5      5        U R	                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R	                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R	                  [        R                  " SS5      5        U R	                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R	                  [        R                  " SS5      5        g )Nz(a(?=\s[^a]))a brs   r   z(a(?=\s[^a]*))z(a(?=\s[abc]))z(a(?=\s[abc]*))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))z(a)b(?=\1)arY  z(a)b(?=\1)cabacz(?:(a)|(x))b(?=(?(2)x|c))cr   z(?:(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))rA   rH   r}   r   r  r|   rZ   s    r   test_lookaheadReTests.test_lookahead  s   "2E:@@CSI"3U;AA!DcJ"3U;AA!DcJ"4f=CCAFL.%8>>qA3G/6:@@CSI"5u=CCAFL"2E:@@CSI"3U;AA!DcJ.%8>>qA3G"5u=CCAFL 	78"((>6:;!>FG"((#@%HI!>FG"((#@%HI!>FG!8%@A"((#:EBC!8%@Ar   c                 N   U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS	5      5        U R                  [        R                  " S
S5      5        U R                  [        R                  " SS	5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R	                  [        R
                  [        R                  S5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R	                  [        R
                  [        R                  S5        U R	                  [        R
                  [        R                  S5        U R	                  [        R
                  [        R                  S5        U R	                  [        R
                  [        R                  S5        g )Nz	ab(?<=b)cr   z	ab(?<=c)cz	ab(?<!b)cz	ab(?<!c)cz(a)a(?<=\1)caacz(a)b(?<=\1)aabaaz(a)a(?<!\1)cz(a)b(?<!\1)az(?:(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)b(?<=(?(2)b|x))(c)z(a)b(?<=(?(1)c|x))(c)z(a)b(?<=(?(1)b|x))(c)z(a)b(?<=(.)\2)(c)z(a)b(?<=(?P<a>.)(?P=a))(c)z(a)b(?<=(a)(?(2)b|x))(c)z(a)b(?<=(.)(?<=\2))(c))r  rH   r}   r|   rG   rI   rJ   rZ   s    r   test_lookbehindReTests.test_lookbehind)  s   u56"((<78"((<78u56%89"((?F;<"((?E:;&9:"((#A5IJ"((#A5IJ!?GH"((#A5IJ!?GH"//2::7OP"((#;UCD!95AB"//2::7KL"//2::7TU"//2::7RS"//2::7PQr   c                    U R                  [        R                  " SS[        R                  5      R	                  S5      S5        U R                  [        R                  " SS[        R                  5      R	                  S5      S5        U R                  [        R                  " SS[        R                  5      R	                  S5      S5        U R                  [        R                  " S	S
[        R                  5      R	                  S5      S
5        U R                  [        R                  " SS[        R                  5      R	                  S5      S5        U R                  [        R                  " SS
[        R                  5      R	                  S5      S
5        U R                  [        R                  " SS[        R                  5      R	                  S5      S5        U R                  [        R                  " SS[        R                  5      R	                  S5      S5        U R                  [        R                  " SS[        R                  5      R	                  S5      S5        U R                  [        R                  " SS[        R                  5      R	                  S5      S5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " S S[        R                  5      5        U R                  [        R                  " S S[        R                  5      5        U R                  [        R                  " S!S"[        R                  5      5        U R                  [        R                  " S#S$[        R                  5      5        g )%Nr   ABCr   r  s   ABCz	(a\s[^a])r  rs   z
(a\s[^a]*)za bbz
(a\s[abc])z(a\s[abc]*)z	((a)\s\2)r  z
((a)\s\2*)r  z((a)\s(abc|a))z((a)\s(abc|a)*)K   Kkz\u212ar      ſrk   z\u017fz\u0412   в   ᲀz\u0432   Вz\u1c80z\ufb05   ﬆz\ufb06   ﬅ)rA   rH   r}   r   r   r  rZ   s    r   test_ignore_caseReTests.test_ignore_caseC  s   %5;;A>F&&"$$7==a@&I,rtt<BB1EuM->DDQGP-=CCAFN.&"$$?EEaH&Q,rtt<BB1EuM->DDQGP"3UBDDAGGJER"4fbddCII!LfU 	x67x67C67C67 	x67x67C67C67 	Hbdd;<Hbdd;<Hbdd;<Hbdd;<Hbdd;<Hbdd;< 	Hbdd;<Hbdd;<r   c                 T   U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " S	S
[        R                  5      5        U R                  [        R                  " S	S[        R                  5      5        U R                  [        R                  " SS
[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  [        R                  -  5      5        U R                  [        R                  " SS[        R                  [        R                  -  5      5        U R                  [        R                  " SS[        R                  [        R                  -  5      5        U R                  [        R                  " SS[        R                  [        R                  -  5      5        U R                  [        R                  " S	S
[        R                  [        R                  -  5      5        U R                  [        R                  " S	S[        R                  [        R                  -  5      5        U R                  [        R                  " SS
[        R                  [        R                  -  5      5        U R                  [        R                  " SS[        R                  [        R                  -  5      5        U R                  [        R                  " SS[        R                  [        R                  -  5      5        U R                  [        R                  " SS[        R                  [        R                  -  5      5        U R                  [        R                  " SS[        R                  [        R                  -  5      5        U R                  [        R                  " SS[        R                  [        R                  -  5      5        U R                  [        R                  " SS[        R                  [        R                  -  5      5        U R                  [        R                  " SS[        R                  [        R                  -  5      5        U R                  [        R                  " SS[        R                  [        R                  -  5      5        U R                  [        R                  " SS[        R                  [        R                  -  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS [        R                  5      5        U R                  [        R                  " S!S"[        R                  5      5        U R                  [        R                  " S!S#[        R                  5      5        U R                  [        R                  " S$S%[        R                  5      5        U R                  [        R                  " S$S#[        R                  5      5        U R                  [        R                  " S&S%[        R                  5      5        U R                  [        R                  " S&S"[        R                  5      5        U R                  [        R                  " S'S([        R                  5      5        U R                  [        R                  " S)S*[        R                  5      5        g )+Nz[19A]r   z[19a]r   s   [19A]   As   [19a]r_   z[19\xc7]   Ç   çz[19\xe7]z
[19\u0400]   Ѐ   ѐz
[19\u0450]z[19\U00010400]   𐐀   𐐨z[19\U00010428]z[19K]r  z[19k]z
[19\u212a]r
  r  z[19S]r  z[19s]z
[19\u017f]r   rk   z
[19\u0412]r  r  z
[19\u0432]r  z
[19\u1c80]z
[19\ufb05]r  z
[19\ufb06]r  )r  rH   r}   r   r   r|   rZ   s    r   test_ignore_case_setReTests.test_ignore_case_setk  s   356356356356D"$$78D"$$78D"$$78D"$$78fbdd;<fbdd;<fbdd;<fbdd;<"$$?@"$$?@"$$?@"$$?@!2L"$$GH!2L"$$GH!2L"$$GH!2L"$$GHD"$$78D"$$78D"$$78D"$$783RTT	:;3RTT	:;3RTT	:;3RTT	:;fbdd244i@A"((;RTT	BC"((;RTT	BCfbdd244i@A"$$rtt)DE"((=(BDDIFG"((=(BDDIFG"$$rtt)DE!2L"$$rtt)LM"((#4lBDDINO"((#4lBDDINO!2L"$$rtt)LM 	8RTT:;8RTT:;RTT:;RTT:; 	8RTT:;8RTT:;RTT:;RTT:; 	"$$?@"$$?@"$$?@"$$?@"$$?@"$$?@ 	"$$?@"$$?@r   c                    U R                  [        R                  " SS[        R                  5      5        U R	                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R	                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS	[        R                  5      5        U R	                  [        R                  " SS
[        R                  5      5        U R                  [        R                  " SS
[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R	                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  [        R
                  -  5      5        U R	                  [        R                  " SS	[        R                  [        R
                  -  5      5        U R                  [        R                  " SS
[        R                  [        R
                  -  5      5        U R	                  [        R                  " SS[        R                  [        R
                  -  5      5        U R                  [        R                  " SS[        R                  [        R
                  -  5      5        U R	                  [        R                  " SS[        R                  [        R
                  -  5      5        U R	                  [        R                  " SS[        R                  [        R
                  -  5      5        U R                  [        R                  " SS[        R                  [        R
                  -  5      5        U R                  [        R                  " SS[        R                  [        R
                  -  5      5        U R	                  [        R                  " SS[        R                  [        R
                  -  5      5        U R	                  [        R                  " SS[        R                  [        R
                  -  5      5        U R                  [        R                  " SS[        R                  [        R
                  -  5      5        U R                  [        R                  " SS[        R                  [        R
                  -  5      5        U R                  [        R                  " SS[        R                  [        R
                  -  5      5        U R                  [        R                  " SS[        R                  [        R
                  -  5      5        U R                  [        R                  " SS[        R                  [        R
                  -  5      5        U R                  [        R                  " SS[        R                  [        R
                  -  5      5        U R                  [        R                  " SS[        R                  [        R
                  -  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " S S![        R                  5      5        U R                  [        R                  " S S"[        R                  5      5        U R                  [        R                  " S#S$[        R                  5      5        U R                  [        R                  " S%S$[        R                  5      5        U R                  [        R                  " S&S'[        R                  5      5        U R                  [        R                  " S&S([        R                  5      5        U R                  [        R                  " S)S*[        R                  5      5        U R                  [        R                  " S)S+[        R                  5      5        U R                  [        R                  " S,S-[        R                  5      5        U R                  [        R                  " S,S+[        R                  5      5        U R                  [        R                  " S.S-[        R                  5      5        U R                  [        R                  " S.S*[        R                  5      5        U R                  [        R                  " S/S0[        R                  5      5        U R                  [        R                  " S1S2[        R                  5      5        g )3Nz[9-a]_z[9-A]s   [9-a]   _s   [9-A]z[\xc0-\xde]   ×r     ÷z[\xe0-\xfe]r  z[\u0430-\u045f]r  r  z[\u0400-\u042f]z[\U00010428-\U0001044f]r  r  z[\U00010400-\U00010427]z[N-\x7f]r   z[n-\x7f]Zz
[N-\uffff]z
[n-\uffff]z[N-\U00010000]z[n-\U00010000]z[J-M]r  z[j-m]z[\u2129-\u212b]r
  r  z[R-T]r  z[r-t]z[\u017e-\u0180]r   rk   z[\u0411-\u0413]r  r  z[\u0431-\u0433]r  z[\u1c80-\u1c82]z[\ufb04-\ufb05]r  z[\ufb06-\ufb07]r  )r  rH   r}   r   r|   r   rZ   s    r   test_ignore_case_rangeReTests.test_ignore_case_range  s   356"((8S"$$78D"$$78"((9dBDD9:>?>?"((>6244@A>?>?"((>6244@A!3XrttDE!3XrttDE!3XrttDE!3XrttDE!;\244PQ!;\244PQ!;\244PQ!;\244PQbddCD"((>62449EFbddCD"((>62449EF!3XrttBDDyIJ"((#5xbddKL"((#5xbddKL!3XrttBDDyIJ!;\244PRPTPT9UV"((#=|RTTRTRVRVYWX"((#=|RTTRTRVRVYWX!;\244PRPTPT9UVc2449=>c2449=>RTT"$$Y?@RTT"$$Y?@!2CbddCD!2CbddCD 	8RTT:;8RTT:;!3S"$$?@!3S"$$?@ 	8RTT:;8RTT:;!3S"$$?@!3S"$$?@ 	!3XrttDE!3XrttDE!3XrttDE!3XrttDE!3XrttDE!3XrttDE 	!3XrttDE!3XrttDEr   c                 p    U R                  [        R                  " SS5      R                  S5      S5        g )Nz(\s)r  rs   rA   rH   r}   r   rZ   s    r   test_categoryReTests.test_category  s(    '3/55a8#>r   c                     U R                  [        R                  " SS5      R                  S5      S5        U R                  [        R                  " SS5      R                  S5      S5        g )Nz\s([^a]) brs   rd   z	\s([^a]*)z bbbbrA   rH   rz   r   rZ   s    r   test_not_literalReTests.test_not_literal  sN    ;5;;A>D<7==a@$Gr   c                 D   [        [        S5      5      R                  5       nU R                  [        S5       n[
        R                  " S5      nS S S 5        U R                  WR                  [        5        U R                  WR                  U5      [        S5      5        U R                  [        S5       nU R                  [
        R                  " SU5      [        S5      5        S S S 5        U R                  UR                  [        5        U R                  [
        R                  " SU5      [        S5      5        U R                  [        S5       n[
        R                  " S5      nS S S 5        U R                  UR                  [        5        U R                  UR                  U5      [        S	5      5        U R                  [        S
5       n[
        R                  " S5      nS S S 5        U R                  UR                  [        5        U R                  UR                  U5      [        S5      5        U R                  [        S5       n[
        R                  " S5      nS S S 5        U R                  UR                  [        5        U R                  UR                  U5      [        S5      5        U R                  [        S5       nU R                  [
        R                  " SU5      [        S5      5        S S S 5        U R                  UR                  [        5        U R                  [        S5       n[
        R                  " S5      nS S S 5        U R                  UR                  [        5        U R                  UR                  U5      [        S5      5        U R                  [
        R                  " SU5      [        S5      5        U R                  [        S5       n[
        R                  " S5      nS S S 5        U R                  UR                  [        5        U R                  UR                  U5      [        S5      5        U R                  [        S5       n[
        R                  " S5      nS S S 5        U R                  UR                  [        5        U R                  UR                  U5      [        S5      5        U R                  [
        R                  " SU5      [        S5      5        U R                  [        S5       n[
        R                  " S5      nS S S 5        U R                  UR                  [        5        U R                  UR                  U5      [        S5      5        U R                  [        S5       n[
        R                  " S5      nS S S 5        U R                  UR                  [        5        U R                  UR                  U5      [        S5      5        U R                  [
        R                  " SU5      [        S 5      5        U R                  [        S!5       n[
        R                  " S"5      nS S S 5        U R                  UR                  [        5        U R                  UR                  U5      [        S#5      5        U R                  [        S!5       nU R                  [
        R                  " S$U5      [        S%5      5        S S S 5        U R                  UR                  [        5        U R                  [        S!5       n[
        R                  " S&5      nS S S 5        U R                  UR                  [        5        U R                  UR                  U5      [        S'5      5        g ! , (       d  f       GN]= f! , (       d  f       GN= f! , (       d  f       GNc= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN"= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GND= f)(N   zPossible set differencez[0-9--1]z-./0123456789z[0-9--2]z[--1]z-./01z[%--1]z
%&'()*+,-1zPossible set difference z[%--]z	%&'()*+,-zPossible set intersection z[0-9&&1]z&0123456789z[0-8&&1]z
&012345678z[\d&&1]z[&&1]z&1zPossible set union z[0-9||a]z0123456789a|z[\d||a]z[||1]z1|z"Possible set symmetric difference z[0-9~~1]z0123456789~z[\d~~1]z[~~1]z1~zPossible nested set z[[0-9]|]z0123456789[]z[[0-8]|]z012345678[]z[[:digit:]|]z:[]dgit)bytesr  decodeassertWarnsRegexFutureWarningrH   rJ   rA   r   r   rj   r6   )r   rk   r   r  s       r   test_possible_set_operations$ReTests.test_possible_set_operations  s   %*$$&""=2KLPQ

;'A MX.1tO'<=""=2KLPQRZZQ7o9NO MX.Ha0$w-@""=2KLPQ

9%A MX.1tL'9:""=2LMQR

8$A NX.1tK'89""=2NOST

;'A PX.1tM':;""=2NOSTRZZQ7l9KL PX.""=2NOST

:&A PX.1tM':;Ha0$t*=""=2GHA

;'A IX.1tN';<""=2GHA

:&A IX.1tN';<Ha0$t*=""=2VW[\

;'A XX.1tM':;""=2VW[\

:&A XX.1tM':;Ha0$t*=""=2HIQ

;'A JX.1tN';<""=2HIQRZZQ7m9LM JX.""=2HIQ

?+A JX.1tI7M ML ML ML
 NM
 PO PO PO IH
 IH XW
 XW JI JI JIs   ^&81^8_
__.1` `2`$1`6 aaa,1a><b&
^58
_

_
_+.
_= 
`
`!$
`36
a
a
a),
a;>
b
bc                     U R                  [        R                  " SS5      R                  S5      S5        U R                  [        R                  " SS5      R                  S5      S5        g )Nz\s(b)r,  rs   rd   za\sza r   r.  rZ   s    r   test_search_coverageReTests.test_search_coverageH  sN    8T288;SA64066q94@r   c                    Uc  Uc  UnS[        U5      4nOUb  Uc  [        S5      eU" X5      nU R                  U5        U R                  UR	                  5       U5        U R                  UR                  5       U5        g )Nr   z@If match is not None, span should be specified (and vice versa).)r  r   r  rA   r   r{   )r   rF   textr}   r{   matcherr   s          r   assertMatchReTests.assertMatchL  sz    =T\Es4y>D]dl 1 2 2G"E*4(r   z!"%',/:;<=>@_`c                 b   SR                  S [        S5       5       5      nU H~  nU R                  [        R                  " U5      U5        U R                  S[        R                  " U5      -   S-   U5        U R                  S[        R                  " U5      -   U5        M     U R                  [        R                  " U5      U5        S H,  nU R                  [        R                  " U5      S S S	5        M.     U R                  nU R                  [        R                  " U5      U5        g )
Nr   c              3   8   #    U  H  n[        U5      v   M     g 7fr   )r   r  s     r   r	  )ReTests.test_re_escape.<locals>.<genexpr>]  s     /JqCFFJs   r  r  r  z(?x)z-.]{}rs   r   )r  r  r?  rH   escaperA   LITERAL_CHARS)r   r  r   literal_charss       r   test_re_escapeReTests.test_re_escape\  s    GG/E#J//ARYYq\1-S299Q</#5q9Vbiil2A6  	1q)ARYYq\"1-t4 **=1=Ar   c                    [        [        S5      5      nU H  n[        U/5      nU R                  [        R                  " U5      U5        U R                  S[        R                  " U5      -   S-   U5        U R                  S[        R                  " U5      -   U5        M     U R                  [        R                  " U5      U5        S H8  n[        U/5      nU R                  [        R                  " U5      S S S5        M:     U R                  R                  S5      nU R                  [        R                  " U5      U5        g )	Nr     [   ]s   (?x)s   -.]{}rs      \ascii)r3  r  r?  rH   rD  rA   rE  encode)r   r  r  rd   rF  s        r   test_re_escape_bytesReTests.test_re_escape_bytesh  s    %*Aqc
ARYYq\1-TBIIaL047;Wryy|3Q7	 
 	1q)Aqc
ARYYq\"1-u5  **11':=1=Ar   c                     Sn[         R                  " U5      nU R                  X!5        U R                  X!5        U R                  S[         R                  " S5      -  USS[         R                  5        g )Nu   xxx☠☠☠xxxz.%s+.   ☠u   x☠☠☠x)r   r   )rH   rD  rA   r?  rz   )r   rk   	s_escapeds      r   test_re_escape_non_ascii ReTests.test_re_escape_non_asciiv  s\    &IIaL	&&299X#66/	Dr   c                 @   SR                  S5      n[        R                  " U5      nU R                  X!5        U R	                  X!5        [        R
                  " [        R                  " SR                  S5      5      U5      nU R                  [        U5      S5        g )Nu	   y☠y☠yzutf-8rR  r   )rN  rH   rD  rA   r?  rj   r  )r   rd   	b_escapedress       r   test_re_escape_non_ascii_bytes&ReTests.test_re_escape_non_ascii_bytes~  sq    $$W-IIaL	&&jj8??7#;<a@S1%r   c                    SS K n[        R                  " S[        R                  5      n[	        UR
                  S-   5       H6  nUR                  X#5      nUR                  U5      nU R                  XR5        M8     SSKJ	n  g )Nr   za(?:b|(c|e){1,2}?|d)+?(.)rs   )_compile)
picklerH   rJ   UNICODEr  HIGHEST_PROTOCOLdumpsloadsrA   r\  )r   r]  oldpatprotopicklednewpatr\  s          r   test_picklingReTests.test_pickling  sc    7D622Q67Ell61G\\'*FV, 8
 	 r   c                 b   SS K n[        R                  " S5      nU R                  UR                  U5      U5        U R                  UR	                  U5      U5        UR                  S5      nU R                  UR                  U5      U5        U R                  UR	                  U5      U5        g )Nr   z (?P<int>\d+)(?:\.(?P<frac>\d*))?z12.34)copyrH   rJ   r8   deepcopyr}   )r   ri  r  r   s       r   test_copyingReTests.test_copying  s|    JJ:;diilA&dmmA&*GGGdiilA&dmmA&*r   c                    U R                  [        R                  [        R                  5        U R                  [        R                  [        R
                  5        U R                  [        R                  [        R                  5        U R                  [        R                  [        R                  5        U R                  [        R                  [        R                  5        g r   )rA   rH   r   
IGNORECASELr  r  	MULTILINEr   r  r   VERBOSErZ   s    r   test_constantsReTests.test_constants  sz    r}}-ryy)r||,ryy)rzz*r   c                 (   [         R                  [         R                  [         R                  [         R                  [         R
                  [         R                  4 H)  nU R                  [         R                  " SU5      5        M+     [         R                  [         R                  [         R                  [         R                  [         R
                  [         R                  4 H)  nU R                  [         R                  " SU5      5        M+     g )Nz	^pattern$s	   ^pattern$)
rH   r   r  r   r   r   r  r  rJ   ro  )r   flags     r   
test_flagsReTests.test_flags  s    TT244rttRTT2448DOOBJJ{D9: 9TT244rttRTT2448DOOBJJ|T:; 9r   c           	         S GH  nUS:  Ga8  U R                  [        R                  " SU-  [        U5      5      5        U R                  [        R                  " SU-  [        U5      S-   5      5        U R                  [        R                  " SU-  [        U5      S-   5      5        U R                  [        R                  " SU-  [        U5      5      5        U R                  [        R                  " S	U-  [        U5      S-   5      5        U R                  [        R                  " S
U-  [        U5      S-   5      5        US:  a  U R                  [        R                  " SU-  [        U5      5      5        U R                  [        R                  " SU-  [        U5      S-   5      5        U R                  [        R                  " SU-  [        U5      S-   5      5        U R                  [        R                  " SU-  [        U5      5      5        U R                  [        R                  " SU-  [        U5      S-   5      5        U R                  [        R                  " SU-  [        U5      S-   5      5        GM     U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R	                  SSS5        U R	                  SSS 5        U R	                  S!S"S5        U R	                  S#S"S5        U R	                  S$S%S5        U R	                  S&S%S5        U R	                  S'S(S5        U R	                  S)S(S5        U R	                  S*S+S5        g ),Nr   r          @      r2  r  r    r  i r  \%03o\%03o00\%03o88\x%02x\x%02x0\x%02xzzr  z\u%04xz\u%04x0z\u%04xzz\U%08xz\U%08x0z\U%08xzr   r   r   r   z\01r   z\018z8z\5670octal escape value \567 outside of range 0-0o377r   z\911invalid group reference 91rs   z\x1incomplete escape \x1z\x1zz\u123incomplete escape \u123z\u123zz	\U0001234incomplete escape \U0001234z
\U0001234zz
\U00110000bad escape \U00110000r  rH   r}   r   rQ   r  s     r   test_sre_character_literals#ReTests.test_sre_character_literals  s   RA3wAs1v >?QAs
 CDQAs
 CDQA ?@aQ DEaQ DE7{QA ?@aQ DEaQ DEOOBHHY]CF;<OOBHHZ!^SVCZ@AOOBHHZ!^SVCZ@A S 	/01201'23w 012	4 	w(DaHv'?Cw(@!Dx)CQGy*DaH|-KQO}.LaP}.FJr   c           	         S GH  nUS:  Ga  U R                  [        R                  " SU-  [        U5      5      5        U R                  [        R                  " SU-  [        U5      5      5        U R                  [        R                  " SU-  [        U5      5      5        U R                  [        R                  " SU-  [        U5      5      5        U R                  [        R                  " SU-  [        U5      5      5        U R                  [        R                  " SU-  [        U5      5      5        U R                  [        R                  " S	U-  [        U5      5      5        U R                  [        R                  " S
U-  [        U5      5      5        US:  a  U R                  [        R                  " SU-  [        U5      5      5        U R                  [        R                  " SU-  [        U5      5      5        U R                  [        R                  " SU-  [        U5      5      5        U R                  [        R                  " SU-  [        U5      5      5        U R                  [        R                  " SU-  [        U5      S-   5      5        U R                  [        R                  " SU-  [        U5      S-   5      5        GM     U R	                  SSS5        U R	                  SSS5        U R	                  SSS5        U R	                  SSS5        U R	                  SSS5        U R	                  SS S5        U R                  [        R                  " S!S"5      5        g )#Nry  r  [\%o][\%o8][\%03o][\%03o0][\%03o8][\x%02x]	[\x%02x0]	[\x%02xz]r  z[\u%04x]z	[\u%04x0]z	[\u%04xz]z[\U%08x]z	[\U%08x0]r  z	[\U%08xz]r  z[\567]r  rs   z[\911]bad escape \9z[\x1z]r  z[\u123z]r  z[\U0001234z]r  z[\U00110000]r  z[\U0001d49c-\U0001d4b5]u   𝒞r  r  s     r   !test_sre_character_class_literals)ReTests.test_sre_character_class_literals  so   RA3wAs1v >?QA ?@aQ @Aq#a& ABq#a& ABq#a& AB)93q6 BC)93q6 BC7{q#a& AB)93q6 BC)93q6 BCOOBHH[1_c!f=>OOBHH\A%5s1vczBCOOBHH\A%5s1vczBC! S" 	y 012	4 	y*:A>y*BAF{,FJ0NPQR0H!L!;\JKr   c           	         S GH  nU R                  [        R                  " SU-  R                  5       [	        U/5      5      5        U R                  [        R                  " SU-  R                  5       [	        U/5      S-   5      5        U R                  [        R                  " SU-  R                  5       [	        U/5      S-   5      5        U R                  [        R                  " SU-  R                  5       [	        U/5      5      5        U R                  [        R                  " SU-  R                  5       [	        U/5      S-   5      5        U R                  [        R                  " S	U-  R                  5       [	        U/5      S
-   5      5        GM     U R                  [        R                  [        R                  S5        U R                  [        R                  [        R                  S5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        g )Nr   r   rz  r{  r|  r}  r2  r  r  r     0r     8r  r  r     zs   \u1234s
   \U00012345s   \0    s   \08s    8s   \01   s   \018s   8s   \567r  r   s   \911r  rs   s   \x1r  s   \x1z	r  rH   r}   rN  r3  rG   rI   rJ   rQ   r  s     r   test_sre_byte_literalsReTests.test_sre_byte_literals  s   2AOOBHHhl%:%:%<eQCjIJOOBHHi!m%;%;%=uaSz$OPOOBHHi!m%;%;%=uaSz$OPOOBHHi!m%;%;%=uaSzJKOOBHHj1n%<%<%>qc
4PQOOBHHj1n%<%<%>qc
4PQ 3 	"//2::zB"//2::~F12(34'23845x 012	4 	x)EqIw(@!Dx)A1Er   c           	      X   S GH  nU R                  [        R                  " SU-  R                  5       [	        U/5      5      5        U R                  [        R                  " SU-  R                  5       [	        U/5      5      5        U R                  [        R                  " SU-  R                  5       [	        U/5      5      5        U R                  [        R                  " SU-  R                  5       [	        U/5      5      5        U R                  [        R                  " SU-  R                  5       [	        U/5      5      5        U R                  [        R                  " SU-  R                  5       [	        U/5      5      5        U R                  [        R                  " SU-  R                  5       [	        U/5      5      5        U R                  [        R                  " S	U-  R                  5       [	        U/5      5      5        GM     U R                  [        R                  [        R                  S
5        U R                  [        R                  [        R                  S5        U R                  SSS5        U R                  SSS5        U R                  SSS5        g )Nr  r  r  r  r  r  r  r  r  s   [\u1234]s   [\U00012345]s   [\567]r  rs   s   [\911]r  s   [\x1z]r  r  r  s     r   test_sre_byte_class_literals$ReTests.test_sre_byte_class_literals  s   2AOOBHHhl%:%:%<eQCjIJOOBHHi!m%;%;%=uaSzJKOOBHHj1n%<%<%>qc
KLOOBHHkAo%=%=%?sLMOOBHHkAo%=%=%?sLMOOBHHkAo%=%=%?sLMOOBHHlQ&6%>%>%@%*MNOOBHHlQ&6%>%>%@%*MN 3 	"//2::|D"//2::7GHz 012	4 	z+;Q?z+CQGr   c                    U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS	5        U R                  S
SS	5        U R                  SSS	5        g )Nr  zunterminated character setr   z[^z[az[a-z[\w-b]zbad character range \w-brs   z[a-\w]zbad character range a-\wz[b-a]zbad character range b-ar   rZ   s    r   test_character_set_errors!ReTests.test_character_set_errors	  s    t%A1Eu&BAFu&BAF 	v'CQGy*EqIy*EqIx)BAFr   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)rd   rs   rx  )rx  rx  )rA   rH   r}   startendr{   rZ   s    r   test_bug_113254ReTests.test_bug_113254  st    *c288;R@*c266q92>*c277:HEr   c                    U R                  [        R                  " SS5      R                  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)?ar   z(a)(b)?br   rs   z(?P<a>a)(?P<b>b)?bz(?P<a>a(b))z((a)))r|   rH   r}   	lastindexrA   	lastgrouprZ   s    r   test_bug_527371ReTests.test_bug_527371  s    "((8C0::;+d3==qA"7=GGM.$7AA3G(C0::A>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.*?cr  r   r  r   i!N  z.*?cdi  r   cdei#N  i N  r   deia  z(a|b)*?c)rA   rH   r}   r  rz   rZ   s    r   test_bug_418626ReTests.test_bug_418626!  s     	&%*T/:>>qA5I'49S=d+B5+HIMMaP	 '5;t+;<@@CUK 	:uTz$?CCAFNr   c                     S[         R                  " S5      -   S-   nU R                  [         R                  " U5      =(       a    SS5        g )Nr  u   ‹r  rs   )rH   rD  rA   rJ   r  s     r   test_bug_612074ReTests.test_bug_612074-  s7    		(##C'C.Q2r   c                 f   U R                  [        R                  " 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(x)*iP  r<   rs   z(x)*yr=   z(x)*?yr(  rZ   s    r   test_stack_overflowReTests.test_stack_overflow1  s     	&%)4::1=sC'59S=9??BCH(E#IcM:@@CSIr   c                     S H@  nS H7  nU R                  U< U< 3SS5        U R                  SU< U< S3SS5        M9     MB     g )N*+?z{1,2}r   r  znothing to repeatr   (?:r  rt   r   )r   repsmods      r   test_nothing_to_repeatReTests.test_nothing_to_repeat8  sJ    *D&&s';':A?&&T3'?':A?  +r   c                     S HV  nS HM  nX-   nS H@  nS H7  nXQ-   S;   a  M  XE-   nU R                  SU< U< 3SS[        U5      -   5        M9     MB     MO     MX     g )Nr  )r   r  r  )r  r  r<   zmultiple repeatrs   )rQ   r  )r   
outer_reps	outer_modouter_op
inner_reps	inner_modinner_ops          r   test_multiple_repeatReTests.test_multiple_repeat@  sl    0J)	%1"8J%1	$1Z?$#-#9..8X/N 11s8}3DF	 &2 #9 * 1r   c                    U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        g )Nz(?:a?)*yr  z(?:a?)+yz(?:a?){2,}yz	(?:a?)*?yz	(?:a?)+?yz(?:a?){2,}?y)r|   rH   r}   rZ   s    r    test_unlimited_zero_width_repeat(ReTests.test_unlimited_zero_width_repeatL  s    "((;45"((;45"((>378"((<56"((<56"((?C89r   c                     S nS nS nS n[        SU4SU4SU4SU4S	/5      nU R                  UR                  R                  S
5      R                  5        U R	                  UR                  S5      / SQS
45        g )Nc                     U$ r   r    scannertokens     r   s_ident%ReTests.test_scanner.<locals>.s_identV  s    E\r   c                     SU-  $ )Nzop%sr    r  s     r   
s_operator(ReTests.test_scanner.<locals>.s_operatorW  s    v~(=r   c                     [        U5      $ r   )floatr  s     r   s_float%ReTests.test_scanner.<locals>.s_floatX  s    E%L%8r   c                     [        U5      $ r   )r   r  s     r   s_int#ReTests.test_scanner.<locals>.s_intY  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=rt   zop*fooop+g     s@r  bar)r   r  r  rF   rA   scan)r   r  r  r  r  r  s         r   test_scannerReTests.test_scannerU  s    1=84g&'"UOZ(  	//3;;<&BC)*,.	/r   c                     S Hs  nU R                  [        R                  " SU-  S5      R                  5       S5        U R                  [        R                  " SU-  S5      R                  5       S5        Mu     g )N)r   r  r  z
((.%s):)?zr  r  za:z)rI  r   rA   rH   r}   ri  )r   ops     r   test_bug_448951ReTests.test_bug_448951i  sf     BRXXmB&6<CCE)+RXXmB&6>EEG(* r   c                 T   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        g )Nz	^((a)|b)*r   rz  z^(([ab])|c)*)r   rd   z^((d)|[ab])*rd   Nz^((a)c|[ab])*z^((a)|b)*?cz^(([ab])|c)*?dr  z^((d)|[ab])*?cz^((a)c|[ab])*?cr  rZ   s    r   test_bug_725106ReTests.test_bug_725106r  s=   +u5<<>#	%.%8??A#	%.%8??A$	&/59@@B$	&-7>>@#	%"2F;BBD#	%"2E:AAC$	&"3U;BBD$	&r   c                     U R                  [        R                  " SS5      R                  5       S5        U R                  [        R                  " SS5      R                  5       S5        g )Nz(a)(?:(?=(b)*)c)*r  )r   Nz(a)((?!(b)*))*re  r  rZ   s    r   test_bug_725149ReTests.test_bug_725149  sR    "5u=DDF$	&"2E:AAC*	,r   c                      " S S[         5      n[        R                  " U" S5      5      nU R                  UR	                  S5      5        g )Nc                       \ rS rSrSrg)+ReTests.test_bug_764548.<locals>.my_unicodei  r    Nr"   r#   r$   r%   r&   r    r   r   
my_unicoder    s    tr   r  r   r   )r   rH   rJ   r|   r}   )r   r  r  s      r   test_bug_764548ReTests.test_bug_764548  s4    ##jjE*+#))E*+r   c                    [         R                  " SS5      nU R                  U Vs/ s H  o"R                  S5      PM     sn/ SQ5        [         R                  " S5      nUR                  SSS5      nU R                  U Vs/ s H  o"R                  S5      PM     sn/ SQ5        [         R                  " S5      nUR                  SSSS9nU R                  U Vs/ s H  o"R                  S5      PM     sn/ SQ5        [         R                  " S5      nUR                  SSSS9nU R                  U Vs/ s H  o"R                  S5      PM     sn/ SQ5        [         R                  " S5      nUR                  SS	S
S9nU R                  U Vs/ s H  o"R                  S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 )Nr=  rR  r   rS  rs   r   r  )r  rM   rt   r   r?  )rH   ra   rA   r   rJ   )r   iteritemr  s       r   test_finditerReTests.test_finditer  s   {{5,/D9DD**Q-D9+	- jj||L!R0D9DD**Q-D9+	- jj||La|;D9DD**Q-D9+	- jj||L|;D9DD**Q-D9+	- jj||La|:D9DD**Q-D9	') :
 :
 :
 :
 :s   F6F;G 7GG
c                 x    U R                  [        R                  " S5      [        R                  " S5      5        g )N
bug_926075s
   bug_926075)assertIsNotrH   rJ   rZ   s    r   test_bug_926075ReTests.test_bug_926075  s'    L1M2	4r   c                 v    SnU R                  [        R                  " U5      R                  S5      / SQ5        g )Nu   [.。．｡]za.b.cr  )rA   rH   rJ   r   r   s     r   test_bug_931848ReTests.test_bug_931848  s.    .G,227;&	(r   c                    [         R                  " SS5      nU R                  [        U5      R	                  5       S5        U R                  [        [        U5        [         R                  " S5      R                  S5      nU R                  UR                  5       R	                  5       S5        U R                  UR                  5       5        g )Nz\sr  )rs   r   )rH   ra   rA   nextr{   rG   StopIterationrJ   r  rz   r|   )r   r  r  s      r   test_bug_581080ReTests.test_bug_581080  s    {{5%(d*E2-t4**U#++E2)..0&9'..*+r   c                    [         R                  " SS5      nU R                  [        U5      R	                  5       S5        U R                  [        U5      R	                  5       S5        U R                  [        [        U5        g )Nz.*asdfr  )r  r  )rH   ra   rA   r  r{   rG   r  )r   r  s     r   test_bug_817234ReTests.test_bug_817234  sZ    {{5&)d*F3d*F3-t4r   c                     / SQnU H9  nU R                  [        R                  " SU5      R                  S5      U5        M;     / SQnU H)  nU R	                  [        R                  " SU5      5        M+     g )N)7u   ๘u   ０z^\d$r   )u   Ⅵu   〹u   ₂u   ㊴)rA   rH   r}   r   r|   )r   decimal_digitsr<   not_decimal_digitss       r   test_bug_6561ReTests.test_bug_6561  sh    
  ARXXgq177:A>   $Abhhw23 $r   )categoryc                 .   SS K nS H  nUR                  U5      nU R                  [        R                  " S5      R	                  U5      5        U R                  [        R                  " S5      R	                  U5      R                  5       S5        M     g )Nr   bBhuwHiIlLfds   blar   r    )arrayr|   rH   rJ   r}   rA   ri  )r   r#  typecoder   s       r   test_empty_arrayReTests.test_empty_array  sm     	&HH%Abjj066q9:RZZ_2215<<>C 'r   c                    SnSn[         R                  " SU-   [         R                  [         R                  -  5      nUR	                  SU-   5      nU R                  U5        [         R                  " SU-   [         R                  [         R                  -  5      nUR	                  SU-   5      nU R                  U5        [         R                  " SU-   [         R                  5      nUR	                  SU-   5      nU R                  U5        [         R                  " SU-   [         R                  5      nUR	                  SU-   5      nU R                  U5        [         R                  " SU-   5      nUR	                  SU-   5      nU R                  U5        [         R                  " SU-   5      nUR	                  SU-   5      nU R                  U5        [         R                  " SU-   5      nUR	                  SU-   5      nU R                  U5        [         R                  " SU-   5      nUR	                  SU-   5      nU R                  U5        U R                  [         R                  " SU-   U5      5        U R                  [         R                  " SU-   U5      5        U R                  [         R                  " S	U-   U[         R                  5      5        U R                  [         R                  " S
U-   U5      5        U R                  [         R                  " SU-   U[         R                  5      5        SnU R                  US-   US5        [        R                  " 5          [        R                  " S[        5        U R                  SUS5        S S S 5        U R                  SU-   US5        U R                  SU-   S-   US5        U R                  SU-   US5        U R                  SU-   US5        U R                  SU-   US5        U R                  SU-   S-   US5        U R                  SU-   S-   US5        U R                  SU-   S-   US5        g ! , (       d  f       N= f) Nu   Ạu   ạr   r   z(?i).z(?is).z	(?s)(?i).z(?ix) z (?i) z
(?x) (?i) z (?x) (?i) z/global flags not at the start of the expressionz(?i)rs   errors   A(?i)z	(?s).(?i)r  z(?i) z (?x)r   z^(?i)z$|(?i)r   z(?:(?i)r  rt   z(^)?(?(1)(?i)r   z($)?(?(1)|(?i)r   )rH   rJ   r   r   r}   r  r   rQ   warningscatch_warningssimplefilterBytesWarning)r   
upper_char
lower_charr  qr>   s         r   test_inline_flagsReTests.test_inline_flags  s   

JJsZ'5GGD:%&JJsZ'5GGD:%&JJw+RTT2GGD:%&JJw+RTT2GGD:%&JJx*,-GGD:%&JJx*,-GGD:%&JJ{Z/0GGD:%&JJ{Z/0GGD:%&J!6
CDJ!6
CDJ!6
BDDIJ
!:JGH!;ZNO?zF2C; $$&!!'<8""8S!4 ' 	{Z7a@w3g=sAF}z93Bw3S!<x*4c1=y:5;S!D;cA3J/*<sBCL '&s   +/Q
Q-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#r   z#
#za#
b#
#za#
b#
c#)rH   rJ   rA   rU   rp  r   s     r   test_dollar_matches_twice!ReTests.test_dollar_matches_twice  s     **S/S(3Z@S)4jAS$/8**S",,/S(4kCS)4lCS$/8r   c                 x   [         R                  " S5      n[         R                  " S5      nU R                  [        UR                  S5        U R                  [        UR                  S5        U R                  [        UR
                  SS5        U R                  [        UR
                  SS5        U R                  [        UR
                  SS5        U R                  [        UR
                  SS5        U R                  [        UR
                  SS5        U R                  [        UR
                  SS5        g )Nr      .rA  rd   r   rB  )rH   rJ   rG   r   r}   rU   )r   r  bpats      r   test_bytes_str_mixingReTests.test_bytes_str_mixing+  s    jjozz$)SYY5)TZZ5)SWWdC8)SWWc48)SWWdD9)TXXtS9)TXXsD9)TXXsC8r   c                    S[         R                  4 H  n[         R                  " SU[         R                  -  5      nU R	                  UR                  S5      5        [         R                  " SU5      nU R	                  UR                  S5      5        M     [         R                  " S[         R                  [         R                  -  5      nU R                  UR                  S5      5        [         R                  " S[         R                  5      nU R                  UR                  S5      5        [         R                  " S[         R                  5      nU R                  UR                  S5      5        [         R                  " S5      nU R                  UR                  S5      5        S[         R                  4 H  n[         R                  " SU[         R                  -  5      nU R                  UR                  S5      5        [         R                  " S	U5      nU R                  UR                  S5      5        M     U R                  [        [         R                  S	[         R                  5        U R                  [         R                  [         R                  S
5        U R                  [        [         R                  S[         R                  [         R                  -  5        U R                  [        [         R                  S[         R                  5        U R                  [        [         R                  S[         R                  5        U R                  [         R                  [         R                  S5        g )Nr      Àr   z\wu   (?a)Àz(?a)\w         \ws   (?u)\wz(?u)\wz(?au)\w)rH   r^  rJ   rn  r  r}   r  r|   rG   r   rI   )r   r   r  s      r   test_ascii_and_unicode_flag#ReTests.test_ascii_and_unicode_flag8  s0   _E**VUR]]%:;COOCIIf-.**UE*COOCIIf-.	 %
 jjBMM!9:#))F+,jjR]]3#))F+,jj)#))F+,jj##))F+,]E**Webmm&;<Ccii01**VU+Ccii01	 # 	*bjj&"**E"//2::zB*bjj%bhh9NO*bjj)RXXF*bjj)RZZH"//2::zBr   c                    [         R                  " 5       n[        SS5       H  n [        U/5      R	                  U5      nUR                  5       nXC:X  a  M6  UR                  U5      n[        U5      S:w  a  MX  UR	                  U5      U:w  a  Mo  [        R                  " [        U/5      5      n  O   S nSn[        R                  " U[        R                  [        R                  -  5      nU(       a   U R                  UR!                  U5      5        [        R                  " SU-   [        R                  5      nU(       a   U R                  UR!                  U5      5        [        R                  " U[        R                  5      nU(       a   U R#                  UR!                  U5      5        [        R                  " S[        R                  5      nU(       a   U R                  UR!                  U5      5        [        R                  " S5      nU(       a   U R                  UR!                  U5      5        [        R                  " S5      nU(       a   U R#                  UR!                  U5      5        U R%                  [&        [        R                  S[        R                  5        U R%                  [        R(                  [        R                  S	5        U R%                  [&        [        R                  S
[        R                  [        R*                  -  5        U R%                  [&        [        R                  S[        R*                  5        U R%                  [&        [        R                  S[        R                  5        U R%                  [        R(                  [        R                  S5        g ! [        [        4 a     GM  f = f)Nr2  r  rs   r  s   (?L)r@  s   (?L)\wr   z(?L)r   s   (?a)s   (?aL))localegetpreferredencodingr  r3  r4  lowerrN  r  rH   rD  UnicodeErrorr   rJ   r  rn  r  r}   r|   rG   r   rI   r  )r   encr  r   sletterbletterr9  r  s           r   test_locale_flagReTests.test_locale_flagU  sr   ))+sCA
1#J%%c*'')<!..-w<1$h>>#&'18yys, ! GDjjryy2==89OOCIIg./jj47OOCIIg./jjr}}-cii01jj+OOCIIg./jj$OOCIIg./jj cii01*bjj"bii@"//2::v>*bjj#ryy2887KL*bjj'288D*bjj'299E"//2::x@= !), s#   0N7 N7:N7 N77OOc                 D   U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " S	S[        R
                  5      5        U R                  S
SS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SS S!5        U R                  S"S#S5        U R                  S$S#S5        U R                  S%SS5        g )&Nz(?i:a)bAbaBz(?-i:a)bz(?i:(?-i:a)b)z\w(?a:\W)\wu   àààz(?a:\W(?u:\w)\W)z\W(?u:\w)\Wz(?a)(?-a:\w)z8bad inline flags: cannot turn off flags 'a', 'u' and 'L'r   z(?i-i:a)z(bad inline flags: flag turned on and offr  z(?au:a)z9bad inline flags: flags 'a', 'u' and 'L' are incompatibler  s   (?aL:a)z(?-zmissing flagrt   z(?-+z(?-zunknown flagz(?-iz	missing :z(?-i)z(?-i+z(?-izz(?i:r  r   (?imissing -, : or )z(?i+z(?iz)r  rH   r}   r|   rn  r  rQ   rZ   s    r   test_scoped_flagsReTests.test_scoped_flags  s   T23"((:t45"((;bmmDEdBMMBC"((#3T:;!1489@A!4nEFJKJA	O{:A	?zKQ	P{KQ	P 	v~q9w:w:wQ7xa8xa8x;w(LaPv':A>w(;Q?w:r   c                    S H;  nU R                  [        R                  " US-   S[        R                  5      5        M=     S H;  nU R                  [        R                  " US-   S[        R                  5      5        M=     U R                  [        R                  " SS5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS	5      5        U R                  [        R                  " S
S[        R                  5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        g )Nz 	
r   )r     	   
         r_   z(?x) az (?x) az(?x) (?x) az a(?x: b) cz ab cz a(?-x: b) cr  z(?x) a(?-x: b) cz	(?x) a| brd   r  rH   r  rq  )r   spaces     r   test_ignore_spacesReTests.test_ignore_spaces  s   "EOOBLLc2::FG #<EOOBLLtRZZHI =Xs34YRZZ@A]C89]G<=^VRZZHI%7@A[#67[#67r   c                 t   U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS[        R                  5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS	5      5        U R                  [        R                  " S
S[        R                  5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        g )Nz#x
ar   s   #x
ar_   z(?x)#x
az#x
(?x)#y
az(?x)#x
(?x)#y
az#x
a(?x:#y
b)#z
cz	#x
ab#z
cz#x
a(?-x:#y
b)#z
cza#y
bcz(?x)#x
a(?-x:#y
b)#z
cz(?x)#x
a|#y
brd   r[  rZ   s    r   test_commentsReTests.test_comments  s   Wc2::>?XtRZZ@A[#67_c2::FG%8#>?%;]KL%<i%'ZZ1 	2%@)LM%6<=%6<=r   c                    [         R                  " S5      nU R                  UR                  SS5      S5        [         R                  " S5      nU R                  UR                  SS5      S5        [         R                  " S5      nU R                  UR                  S	 S
5      S5        [         R                  " S5      nU R                  UR                  SS5      S5        [         R                  " S5      nU R                  UR                  SS5      S5        [         R                  " S5      nU R                  UR                  S S5      S5        g )Nza(\w)zb\1rb  rc  za(.)u   aሴu   bሴz..c                     g)Nr   r    r   s    r   r   'ReTests.test_bug_6509.<locals>.<lambda>  s    5r   a5r   s   a(\w)s   b\1s   acs   bcs   a(.)s   as   bs   ..c                     g)N   bytesr    r   s    r   r   rd    s    8r   s   a5rg  )rH   rJ   rA   rU   r  s     r   test_bug_6509ReTests.test_bug_6509  s     jj".5jj 3Y?jj$7? jj#%0%8jj!(3X>jj!3U;XFr   c                    U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        g )Nz123.*-z123abc-u   123é-u   123€-u   123􏿿-u   123é€􏿿-)r  rH   rz   rZ   s    r   test_search_dot_unicodeReTests.test_search_dot_unicode  sw    		(I67		(J78		(L9:		(,<=>		(,FGHr   c                 H   [         R                  " S5      nU R                  U[         R                  5        [         R                  " U5      nU R                  U[         R                  5        U R	                  X!5        U R                  [        [         R                  S5        g )Nrandom patternr   )rH   rJ   assertIsInstancePatternr8   rG   r   )r   rF   same_patterns      r   test_compileReTests.test_compile  si    **-.grzz2zz'*lBJJ7l,)RZZ3r   rs   )sizememusec                     SU-  n[         R                  " SU5      nU R                  U5        U R                  UR	                  5       U5        U R                  UR                  5       U5        g )Nr   r3  )rH   rz   assertIsNotNonerA   r  r  )r   rt  rk   r   s       r   test_large_searchReTests.test_large_search  sW     $JIIc1QD)$'r      c                     SU-  n[         R                  " SSU5      u  p4U R                  X25        U R                  XAS-   5        g )Nr   r   rs   )rH   r   rA   )r   rt  rk   r  ns        r   test_large_subnReTests.test_large_subn  sA     $Jwwr2q!1H%r   c                     U R                  [        R                  " SS5      S/5        U R                  [        R                  " SS5      R	                  5       S5        g )Nz	(?i)(a)\1u   aa Ār   z
(?s).{1,3}u   ĀĀr   )rA   rH   rj   r}   r{   rZ   s    r   test_bug_16688ReTests.test_bug_16688  sE     	L+>F-@EEGPr   c                    SS-  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                  5       S5        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                  5       S5        U R	                  [
        [        R                  SSS-  -  5        U R	                  [
        [        R                  SSS-  -  5        U R	                  [
        [        R                  SSS-  -  5        U R	                  [
        [        R                  SSS-  SS-  4-  5        g )Nr<   順 z.{65535})r   r~  z	.{,65535}z
.{65535,}?z.{65536})r   r  z	.{,65536}z
.{65536,}?.{%d}r   r2  .{,%d}.{%d,}?z.{%d,%d}   )rA   rH   r}   r{   rG   OverflowErrorrJ   )r   rV   s     r   test_repeat_minmax_overflow#ReTests.test_repeat_minmax_overflow  sh   v+v6;;=zJ,7<<>
K-8==?L+v6;;=zJ,7<<>
K-8==?L-X35FG-YC5GH-Z!S&5HI-[AsFAsFCS5STr   c                    SS-  nSnSnU R                  [        R                  " US-  U5      R                  5       S5        U R                  [        R                  " US-  U5      R                  5       S5        [        R                  " US-  5        [        R                  " US	-  5        [        R                  " US
-  5        [        R                  " US-  5        [        R                  " US	-  5        [        R                  " US
-  5        SnU R                  [        R                  U[        R                  US-  5        U R                  [        R                  U[        R                  US-  5        g )Nr<   i%& z(?<=((.{%d}){%d}){%d})z(?<!((.{%d}){%d}){%d}))r2  r2  r2  )    r  rq   )  @ rs   rs   )rs   r  rs   )rs   rs   r  zlooks too much behind)r  r  r  )rA   rH   rz   r{   rJ   r   r(  )r   rV   p1p2rN   s        r   test_look_behind_overflow!ReTests.test_look_behind_overflow	  s"   y&& 	2(:#:FCHHJ'	)2(:#:FCHHJ	! 	

2%&


2%&


2%&


2%&


2%&


2%&(rxxRBW=WXrxxRBW=WXr   c                 *    U R                  SSS5        g )Nz
(?P=<foo>)z#bad character in group name '<foo>'r  r   rZ   s    r   $test_backref_group_name_in_exception,ReTests.test_backref_group_name_in_exception   s    |Da	Ir   c                 *    U R                  SSS5        g )Nz
(?P<?foo>)z"bad character in group name '?foo'r  r   rZ   s    r   test_group_name_in_exception$ReTests.test_group_name_in_exception%  s    |CQ	Hr   c                 n   S H  nS H  nSU-   U-   S-   nU R                  [        R                  " U[        R                  5      R	                  S5      S/US9  UR                  5       nU R                  [        R                  " U[        R                  5      R	                  S5      S/US9  M     M     g )N)r  r  r  z{1}r  r   yzr   )r>   r   )rA   rH   rJ   r   rj   rN  )r   r  r  rF   s       r   test_issue17998ReTests.test_issue17998*  s    (D*s*T1  GRTT!:!B!B5!I"'g ! 7!..*  GRTT!:!B!B6!J"(w ! 8  )r   c                 |   S[        S5      4 Hf  n[        R                  " SU5      nS[        U5      R                  < S[        U5      R
                  < S3nU R                  [        U5      U5        Mh     S[        S5      [        S5      [        S5      4 Hf  n[        R                  " SU5      nS[        U5      R                  < S[        U5      R
                  < S3nU R                  [        U5      U5        Mh     [        [        R                  " S	S
5      5      u  pES[        U5      R                  < S[        U5      R
                  < S3nU R                  [        U5      U5        S[        U5      R                  < S[        U5      R
                  < S3nU R                  [        U5      U5        g )Nz[abracadabra]z(.+)(.*?)\1z<(z\.)?z- object; span=\(1, 12\), match='abracadabra'>s   [abracadabra]s   (.+)(.*?)\1z. object; span=\(1, 12\), match=b'abracadabra'>z	(aa)|(bb)zaa bbz# object; span=\(0, 2\), match='aa'>z# object; span=\(3, 5\), match='bb'>)r   rH   rz   r9   r#   r$   assertRegexreprr+   r`   r   r6   ra   )r   rV   r   rF   r  r  s         r   test_match_reprReTests.test_match_repr4  sV   %q'99F		.&1AQ""DG$8$8G T!Wg. : (+;)< !12!"235F 		/62AQ""DG$8$8G T!Wg.5 R[[g>?vL##T&\%>%>
 	eg.L##T&\%>%>
 	fw/r   c                    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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      / SQ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 s  snf s  snf )NrH  za::bc)r   r   r?  rc  r   z\b|:+)r   r   r   r   rc  r   z(?<!\w)(?=\w)|:+)r   r   r   rc  z(?<=\w)(?!\w)|:+)r   r   rc  r   r  z	-a-::-bc-z-a---bc-z(\b|:+)z[\1]z[]a[][::][]bc[])r   r   r?  r   r   z\b|\w+)rq   r  rr   rt   rt   r  r  )rq   r   r  r  )rt   r  r  )rA   rH   r   rU   rj   ra   r{   r   r   s     r   test_zerowidthReTests.test_zerowidthN  sy   %13LM(G46QR"5w?ATU"5w?ATUsG4kB#w7D
GW=?PQHg68NOIw74	6 	BKK',JK,Jq&&(,JKA	CBKK	7,KL,Kq&&(,KLI	K LLs   G>Hc                 L   S H  nS H  n[         R                  " SU< SU< 35      nUR                  S5      nU R                  UR	                  S5      S5        U R                  UR	                  S5      S	5        U R                  UR	                  S
5      S5        M     M     g )N){0,}r  r  z{1,187})r  r  r  z^((x|y)r  xyyzyr   xyyrs   r   r   r=   )rH   rJ   r}   rA   r   )r   r  r  r  r   s        r   test_bug_2537ReTests.test_bug_2537b  s    5H.JJ8DEGGG$  U3  R0  S1 / 6r   c                 L   [         R                  " S5      nU R                  UR                  SSSS9R	                  5       S5        U R                  UR                  SSSS9R	                  5       S5        U R                  UR                  SSSS9R	                  5       S5        U R                  UR                  SSSS9S	/5        U R                  UR                  SS
S9/ SQ5        U R                  UR                  SSSS9R                  5       R	                  5       S5        g )Nz(ab)abracadabrar   r   )rV   rM   r  )r   r   r   rt   r   rs   )rV   r   )r   r   	racadabra)
rH   rJ   rA   r}   r{   r  rz   rj   r   r  r  s     r   test_keyword_parametersReTests.test_keyword_parametersl  s   jj!II]"I=BBDf	NMMAaM@EEG	QJJm2J>CCEv	OKK}!BK?$	III]QI7#	% 	KK}!BK?FFHMMO	r   c                     U R                  [        R                  " SS[        R                  5      R	                  5       S5        g )Nz[a-c]+r	  rx   )rA   rH   r  r   r{   rZ   s    r   test_bug_20998ReTests.test_bug_20998~  s.     	hrtt<AACVLr   z-musl libc issue on Emscripten/WASI, bpo-46390c                 :   [         R                  " [         R                  5      nU R                  [         R                  [         R                  U5        S H)  n [         R                  " [         R                  U5        M+     [        R                  " 5         U R                  5         U R                  5         [        R                  " 5         U R                  5         U R                  5         g ! [         R                   a    U R                  SU-  5         M  f = f)Nen_US.iso88591
en_US.utf8test needs %s locale)
rD  	setlocaleLC_CTYPE
addCleanupErrorskipTestrH   r  check_en_US_iso88591check_en_US_utf8)r   	oldlocalelocs      r   test_locale_cachingReTests.test_locale_caching  s     $$V__5	((&//9E1C<  #6 2 	
!!#

!!# << <4s:;<s   %C..(DDc                    [         R                  " [         R                  S5        U R                  [        R
                  " SS[        R                  [        R                  -  5      5        U R                  [        R
                  " SS[        R                  [        R                  -  5      5        U R                  [        R
                  " SS[        R                  [        R                  -  5      5        U R                  [        R
                  " SS5      5        U R                  [        R
                  " SS5      5        U R                  [        R
                  " SS5      5        g )Nr              (?Li)   (?Li)   (?Li))rD  r  r  r  rH   r}   ro  r   rZ   s    r   r  ReTests.check_en_US_iso88591  s    *:;k2449EF'2449=>'2449=>!1;?@w78w78r   c                    [         R                  " [         R                  S5        U R                  [        R
                  " SS[        R                  [        R                  -  5      5        U R                  [        R
                  " SS[        R                  [        R                  -  5      5        U R                  [        R
                  " SS[        R                  [        R                  -  5      5        U R                  [        R
                  " SS5      5        U R                  [        R
                  " SS5      5        U R                  [        R
                  " SS5      5        g )Nr  r  r  r  r  r  r  )	rD  r  r  r  rH   r}   ro  r   r|   rZ   s    r   r  ReTests.check_en_US_utf8  s    ,7k2449EF"((7GRTT"$$Y?@"((7GRTT"$$Y?@!1;?@"((<9:"((<9:r   c                    [         R                  " [         R                  5      nU R                  [         R                  [         R                  U5        S H)  n [         R                  " [         R                  U5        M+     [         R                  " [         R                  S5        [        R                  " S[        R                  [        R                  -  5      n[        R                  " S[        R                  [        R                  -  5      n[        R                  " S[        R                  [        R                  -  5      n[        R                  " S[        R                  [        R                  -  5      nX4U4 Hc  nU R                  UR                  S5      5        U R                  UR                  S5      5        U R                  UR                  S	5      5        Me     U R                  UR                  S
5      5        U R                  UR                  S5      5        U R                  UR                  S	5      5        [         R                  " [         R                  S5        X4U4 Hc  nU R                  UR                  S5      5        U R                  UR                  S5      5        U R                  UR                  S	5      5        Me     U R                  UR                  S
5      5        U R                  UR                  S5      5        U R                  UR                  S	5      5        g ! [         R                   a    U R                  SU-  5         GM  f = f)Nr  r  r  r  s   [a][a]s
   [az][az]s   [^][^]s   s   s   r  )rD  r  r  r  r  r  rH   rJ   ro  r   r  r}   r|   )r   r  r  r  r  p3p4r  s           r   test_locale_compiledReTests.test_locale_compiled  sG   
 $$V__5	((&//9E1C<  #6 2 	*:;ZZRTT"$$Y/ZZ)24495ZZ+RTT"$$Y7ZZ)24495AOOAGGK01OOAGGK01OOAGGK01  	"((;/0"((;/0"((;/0,7AOOAGGK01aggk23aggk23  	-."((;/0"((;/01 << <4s:;;<s   %L<<(M)(M)c                 .   U R                  [        R                  5       n[        R                  " S5        S S S 5        WR                  nU R                  UR                  [        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                  [        U5      5        U R                  S[        U5      5        U R                  SUR                  5        U R                  [        R                  5       n[        R                  " S5        S S S 5        UR                  nU R                  UR                  [        5        U R                  UR                  S5        U R                  UR                  S5        U R                  [        R                  5       n[        R                  " S[        R                   5        S S S 5        UR                  nU R                  UR                  S5        U R                  UR                  S	5        U R                  UR                  S
5        U R                  UR                  [        U5      5        U R                  S[        U5      5        U R                  S[        U5      5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       N= f)Nu   (€))rt   rs   r  z at position 3s   ())zq
                (
                    abc
                )
                )
                (
                M   r     z at position 77z(line 5, column 17))rG   rH   rI   rJ   rL   ro  rF   r   rA   rM   linenocolnoassertInr>   assertNotInr3  rq  )r   rO   rP   s      r   
test_errorReTests.test_error  s   r/2JJ{# 0llckk3/k2!$Q'A&cggs3x(&C1)3773r/2JJz" 0llckk51j1!$r/2JJ  ZZ! 0 ll"%Q'B'cggs3x('S2+SX6C 0/ 0/ 0/s#   K"K48&L"
K14
L
Lc                    U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SS	S
5        U R                  SSS5        U R                  SSS
5        U R                  SSS
5        U R                  SSS5        U R                  SS	S
5        U R                  SSS5        U R                  SS	S5        g )NrU  r  r   z((a|b)z(a|b))zunbalanced parenthesisr  z(?Pzunexpected end of patternrt   z(?z)zunknown extension ?zrs   z(?iz)rP  rQ  rR  z(?#abczmissing ), unterminated commentz(?<z(?<>)zunknown extension ?<>z(?r   r   rZ   s    r   test_misc_errorsReTests.test_misc_errors  s    t%I1My*NPQRy*BAFv'BAFw(>Bx;v':A>y*KQOv'BAFx)@!Du&A1Er   c                     U R                  S[        [        R                  5      5        U R                  S[        [        R                  5      5        g )Nr  r  )r  r   rH   r   r   rZ   s    r   	test_enumReTests.test_enum 	  s0     	gs244y)hBDD	*r   c                    [         R                  " S[         R                  5      nU R                  X5        U R	                  X:g  5        [         R
                  " 5         [         R                  " S[         R                  5      nU R                  [        U5      [        U5      5        U R                  X!5        [         R
                  " 5         [         R                  " S[         R                  5      nU R                  X15        [         R
                  " 5         [         R                  " S5      nU R                  XA5        U R                  [        5         X:    S S S 5        g ! , (       d  f       g = f)Nr   XYZ)
rH   rJ   rn  rA   assertFalser  hashassertNotEqualrG   r   )r   pattern1pattern2pattern3pattern4s        r   test_pattern_compareReTests.test_pattern_compare	  s    ::eR]]3 	,-. 	
::eR]]3hh8, 	
::eR]]3 	H/ 	
::e$H/ y) *))s   E##
E1c                    [         R                  " S5      n[         R                  " 5         [         R                  " S5      nU R                  [	        U5      [	        U5      5        U R                  X!5        [         R                  " 5         [         R                  " S5      n[
        R                  " 5          [
        R                  " S[        5        U R                  X15        S S S 5        g ! , (       d  f       g = f)Nr  r   r(  )
rH   rJ   r  rA   r  r)  r*  r+  r,  r  )r   r  r  r  s       r   test_pattern_compare_bytes"ReTests.test_pattern_compare_bytes#	  s    ::f% 	
::f%hh8, 	
::e$$$&!!'<83 '&&s   7-C--
C;c                    [        S5      n[        R                  " SU5      n[        R                  " SU5      nU R                  UR	                  5       S5        U R                  UR	                  5       S5        SUS S & U R                  UR	                  5       S5        U R                  UR	                  5       S5        g )Ns   abcdefghs   [a-h]+s   [e-h]+s   efghr   r   )r`   rH   rz   rA   r   )r   rk   r   m2s       r   test_bug_29444ReTests.test_bug_294444	  s    k"IIi#YYy!$K0W-!F+S)r   c                    SnSnU R                  [        R                  " X!5      R                  5       S5        SnSnU R                  [        R                  " X!5      SS/5        U R                  [        R
                  " X!5       Vs/ s H  o3R                  5       PM     snSS/5        S	nS
nU R                  [        R                  " X!5      SS/5        U R                  [        R
                  " X!5       Vs/ s H  o3R                  5       PM     snSSS.SS S./5        SnU R                  [        R
                  " X!5       Vs/ s H  o3R                  5       PM     snSSS.SS S./5        SnU R                  [        R
                  " X!5       Vs/ s H  o3R                  5       PM     snSSS.SS S.SS S./5        g s  snf s  snf s  snf s  snf )Nza	xz\b(?=(\t)|(x))x)Nr<   r   z(?=(.)(.)?)r  )rd   r   r  z1(?=<(?P<tag>\w+)/?>(?:(?P<text>.+?)</(?P=tag)>)?)z<test><foo2/></test>)r   <foo2/>)foo2r   r   r  )tagr=  r  z<test>Hello</test><foo/>Hellor  z<test>Hello</test><foo/><foo/>)rA   rH   rz   ri  rj   ra   r  r   rk   r  r   s       r   test_bug_34294ReTests.test_bug_34294>	  s    1//1;? A)$i0	2bkk!.?@.?((*.?@$k2	4 A"A)-|<	>Q1BC1BA++-1BC"()<"($79	: 'Q1BC1BA++-1BC"(':"'68	9 -Q1BC1BA++-1BC"(':"'6"'68	9! A D D Ds   G:G	GG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        g )Nz	(ab|a)*?br   r`  z	(ab|a)+?bz(ab|a){0,2}?bz	(.b|a)*?br  rZ   s    r   test_MARK_PUSH_macro_bug ReTests.test_MARK_PUSH_macro_bug`	  s     	,5<<>G,5<<>G"2D9@@BFK,5<<>Gr   c                 j   SnSnU R                  [        R                  " X!5      R                  5       S5        SnSn[        R                  " X!5      nU R                  UR	                  5       S5        U R                  UR	                  S5      S5        U R                  UR                  5       S	5        g )
Naxxzbczz(?:(?:a|bc)*?(xx)??z)*r   xtcxyzxcz((x|yz)+?(t)??c)*)r   r   r   )   r   )xyzxcr<   trA   rH   r}   ri  r{   r  s       r   test_MIN_UNTIL_mark_bugReTests.test_MIN_UNTIL_mark_bugh	  s     %!..0':  HHQN6*F+%89r   c                 Z   SnSn[         R                  " X!5      nU R                  UR                  5       S5        U R                  UR                  S5      S5        U R                  UR	                  5       S5        SnSn[         R                  " X!5      nU R                  UR                  5       S	5        U R                  UR                  S5      S
5        U R                  UR	                  5       S5        U R                  [         R                  " SS5      R	                  5       S5        g )Naabaabz(?:[^b]*a(?=(b)|(a))ab)*)r   r  r   )r  r  r  ababz(?:[^b]*(?=(b)|(a))ab)*r  )r   rt   z(ab?)*?br   r`  rH   r}   rA   r{   ri  r  s       r   test_REPEAT_ONE_mark_bug ReTests.test_REPEAT_ONE_mark_bugw	  s     'HHQN6*F+[1 &HHQN6*F+[1+t4;;=vFr   c                 j   SnSn[         R                  " X!5      nU R                  UR                  5       S5        U R                  UR                  S5      S5        U R                  UR	                  5       S5        SnSnU R                  [         R                  " X!5      R	                  5       S	5        g )
Nr  z(?:.*?(?=(a)|(b))b)*r  r   rt   r  )Nrd   axxzazz(?:a*?(xx)??z)*r  r  r  s       r   test_MIN_REPEAT_ONE_mark_bug$ReTests.test_MIN_REPEAT_ONE_mark_bug	  s     #HHQN6*F+[1!..0':r   c                    U R                  [        R                  " SS5      R                  5       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                  5       S
5        g )Nz	(?!(..)c)r   r   z((?!(ab)c)(.))*r  r  rs   r  rt   )rd   Nrd   r  r  s     r   test_ASSERT_NOT_mark_bug ReTests.test_ASSERT_NOT_mark_bug	  s     	,5<<>H HH'06*F+F+%56r   c                 (   U R                  [        S5         [        R                  " SS5        S S S 5        U R                  [        S5         [        R                  " S[        5        S S S 5        g ! , (       d  f       NI= f! , (       d  f       g = f)Nz	got 'int'ro   r  z
got 'type')r   r   rH   rz   r9   rZ   s    r   test_bug_40736ReTests.test_bug_40736	  s[    ##I{;IIdA <##I|<IIdD! =< <;<<s   A2B2
B 
Bcpuc           
      2   SS-  n[        5        nS H  nU R                  [        R                  " X15      5        U R	                  [        R
                  " X15      U/5        U R	                  [        R                  " X15      / 5        U R	                  [        [        R                  " X15      5      / 5        U R	                  [        R                  " USU5      U5        M     S S S 5        U R                  WR                  S5        g ! , (       d  f       N+= f)Nr<   i )z\Ayz^yr   g?)r   r|   rH   rz   rA   r   rj   r6   ra   rU   
assertLessseconds)r   rk   	stopwatchr  s       r   test_search_anchor_at_beginning'ReTests.test_search_anchor_at_beginning	  s    I^y"!!"))A/2  !!5  A!126  bkk!&7!8"=  2q!115 #  		))3/ ^s   CD
Dc                 l	   U R                  [        R                  " SS5      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      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      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      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      5        U R                  [        R                  " S&S5      5        U R                  [        R                  " S'S5      5        U R                  [        R                  " S(S5      5        U R                  [        R                  " S)S5      5        U R                  [        R                  " S*S5      5        U R                  [        R                  " S*S+5      5        g ),Nze*+eeeeeze++aeeear   ze?+aeaze{2,4}+az(.)++.eez(ae)*+aaea)aez([ae][ae])?+az(e?){2,4}+a)r   z()*+ar   zx*+rp   rq   zx++rr   a*+rv   rw   rx   a++z
^(\w){1}+$r   z^(\w){1,2}+$z
^(\w){3}+$rs   r   z^(\w){1,3}+$z^(\w){1,4}+$z^x{1}+$z	^x{1,2}+$z^x{3}+$z	^x{1,3}+$z	^x{1,4}+$z^x{}+$r  )	r|   rH   r}   rA   r   ri  rz   r{   r  rZ   s    r   test_possessive_quantifiers#ReTests.test_possessive_quantifiers	  s2    	"((6623&&177:FC&$/55a8$?*f5;;A>G"((8T23)U3::<gF/59@@B 	"-8??A	 '3/668%@5%0557@5%0557@%/446?%0557@"((5%01"((=%89"((?E:;-7==a@#F/59??BCH/59??BCH"((9e45"((;67E23e45e45"((8U34512r   c                 $   U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " S	S5      5        U R                  [        R                  " S
S5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        g )Nr*  r   r)  a?+a{1,3}+r   za++bza*+bza?+bza{1,3}+b(?:ab)++(?:ab)*+(?:ab)?+(?:ab){1,3}+r   z	(?:ab)++cz	(?:ab)*+cz	(?:ab)?+cz(?:ab){1,3}+cr  rH   r  r|   rZ   s    r   %test_fullmatch_possessive_quantifiers-ReTests.test_fullmatch_possessive_quantifiers	  s;   VS12VS12VS12Z56",,vt45",,vt45",,vt45",,z489Wd34Wd34Wd34[$78[$78[$78[$78_d;<",,{E:;",,{E:;",,{E:;",,>?\59:\59:\59:%5u=>r   c                    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/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/5        g )Nr*  aabr  r)  r  r   r   r.  r   r   r   r   r/  r0  ababcr  r1  r  r   r   r2  r   r   r   r   r3  r[  rZ   s    r   #test_findall_possessive_quantifiers+ReTests.test_findall_possessive_quantifiers	  s    FE2TF;FE2NCFE24FGJ6?K9F8DK9;KLK9;OPOW=xHr   c                 ,   [         R                  " S5      nU R                  UR                  S5      5        U R	                  UR                  S5      5        U R                  [         R                  " SS5      5        U R	                  [         R                  " SS5      5        U R	                  [         R                  " SS5      5        U R                  [         R                  " SS5      5        U R                  [         R                  " S	S5      5        g )
Nz
a(?>bc|b)cr   abccz(?>.*).z(?>x)++rv   z(?>x++)z(?>x)++xz(?>x++)x)rH   rJ   r|   r}   r  )r   r  s     r   test_atomic_groupingReTests.test_atomic_grouping
  s    
 ::m,(../0v./"((:u56U34U34"((;67"((;67r   c                 $   U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " S	S5      5        U R                  [        R                  " S
S5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        g )N(?>a+)r   (?>a*)(?>a?)
(?>a{1,3})r   z(?>a+)bz(?>a*)bz(?>a?)bz(?>a{1,3})b(?>(?:ab)+)(?>(?:ab)*)(?>(?:ab)?)(?>(?:ab){1,3})r   z(?>(?:ab)+)cz(?>(?:ab)*)cz(?>(?:ab)?)cz(?>(?:ab){1,3})cr4  rZ   s    r   test_fullmatch_atomic_grouping&ReTests.test_fullmatch_atomic_grouping
  s=   Y45Y45Y45]C89",,y$78",,y$78",,y$78",,}d;<Z67Z67Z67^T:;^T:;^T:;^T:;%7>?",,~u=>",,~u=>",,~u=>",,'95AB_e<=_e<=_e<=%8%@Ar   c                    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/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/5        g )NrE  r8  r  rF  r9  rG  r:  rH  rI  r;  r  rJ  r<  rK  r=  rL  r[  rZ   s    r   test_findall_atomic_grouping$ReTests.test_findall_atomic_grouping1
  s    Iu5v>Iu5~FIu57IJM59D6BNG<vhGNG<>NONG<>RS$6@6(Kr   c                     U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        g )Nz(?s:(?>.*?\.).*)\Zza.txtz!(?s:(?=(?P<g0>.*?\.))(?P=g0).*)\Z)r  rH   r  rZ   s    r   test_bug_gh91616ReTests.test_bug_gh91616<
  s2    %:GDE%I7STr   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        g )Nz(?>(?:.(?!D))+)ABCDEr   z(?:.(?!D))++z(?>(?:.(?!D))*)z(?:.(?!D))*+z(?>(?:.(?!D))?)CDErq   z(?:.(?!D))?+z(?>(?:.(?!D)){1,3})z(?:.(?!D)){1,3}+z(?>(?:ab?c)+)acaz
(?:ab?c)++z(?>(?:ab?c)*)z
(?:ab?c)*+z(?>(?:ab?c)?)r   z
(?:ab?c)?+z(?>(?:ab?c){1,3})z(?:ab?c){1,3}+r   rZ   s    r   test_bug_gh100061ReTests.test_bug_gh100061@
  sI   "3W=BBDfM.':??A6J"3W=BBDfM.':??A6J"3U;@@BFK.%8==?H"7AFFH&Q"4g>CCEvN/59>>@&I,6;;=vF/59>>@&I,6;;=vF/37<<>G,499;VD"5u=BBDfM"2E:??A6Jr   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((x)|y|z)*+r   )r  r<   z((x)|y|z){3}+z((x)|y|z){3,}+r  rZ   s    r   test_bug_gh101955ReTests.test_bug_gh101955T
  so    -7>>@*M/59@@BJO"2E:AACZPr   ztest requires multiprocessingc                    [         R                  " S5      nSn[        R                  " UR                  SU4S9nUR                  5         UR                  [        5         U R                  UR                  5       S5        UR                  5       (       a!  UR                  5         UR                  5         g g ! UR                  5       (       a!  UR                  5         UR                  5         f f = f)Nz(?<=[({}])(((//[^\n]*)?[\n])([\000-\040])*)*((/[^/\[\n]*(([^\n]|(\[\n]*(]*)*\]))[^/\[]*)*/))((((//[^\n]*)?[\n])([\000-\040]|(/\*[^*]*\*+([^/*]\*+)*/))*)+(?=[^\000-\040);\]}]))zja(function() {
            ///////////////////////////////////////////////////////////////////
        });r   )targetargszpattern.sub() timed out)rH   rJ   multiprocessingProcessrU   r  r  r   r  is_alive	terminate)r   rF   input_jsr  s       r   test_regression_gh94675ReTests.test_regression_gh94675Z
  s    ** H I
 ##7;;b(^L			}	QZZ\+DEzz|| qzz|| s     B7 78C/c                 X    U R                  [        R                  " SS5      S   S5        g )Nz12(?!)|3123r   3)rA   rH   rz   rZ   s    r   	test_failReTests.test_failn
  s"    ;6q93?r   c                 B   SnS H  nU R                  US9   U R                  [        R                  " X!5      [	        U5      5        U R                  [        R
                  " SU-   S-   U5      R                  5       U5        S S S 5        M     g ! , (       d  f       M  = f)N1x
)z[\s\S]z[\d\D]z[\w\W]z[\S\s]z\s|\SrE   r  z)+)rK   rA   rH   rj   r6   r  r   r   rk   r  s      r   test_character_set_anyReTests.test_character_set_anyq
  s{     EAa(  A!147;  eai$.>!B!H!H!JAN )( F((s   A+B
B	c                 
   SnS Hi  nU R                  US9   U R                  [        R                  " X!5      5        U R                  [        R                  " SU-   U5      5        S S S 5        Mk     g ! , (       d  f       M}  = f)Nrn  )z[^\s\S]z[^\d\D]z[^\w\W]z[^\S\s]rE   z(?s:.))rK   r|   rH   rz   ro  s      r   test_character_set_noneReTests.test_character_set_nonez
  sd     ?Aa(!!"))A/2!!"))HqL!"<= )( @((s   AA33
B	c                 P    " S S[         5      n[        R                  " U5      n[        U5       H:  n UR	                  Xd5        UR                  U5        UUR	                  SS 5        s  $    g ! U a     Of = f UR	                  SS 5        M`  ! UR	                  SS 5        f = f)Nc                       \ rS rSrSrg)*ReTests.check_interrupt.<locals>.Interrupti
  r    Nr   r    r   r   	Interruptrw  
  s    r   rx  rx  )	ExceptionrH   rJ   r  _fail_afterr}   )r   rF   rV   maxcountrx  r  r|  s          r   check_interruptReTests.check_interrupt
  s    		 	JJwxA(a+ b$' !
  b$'b$'s#   #A00A96B8A99BB%rz  zrequires debug buildc                     U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        g )	Nz(.)*:zabc:d   z	([^:])*?:z	([^:])*+:z	(.){2,4}:z([^:]){2,4}?:z([^:]){2,4}+:)r|  rZ   s    r   test_memory_leaksReTests.test_memory_leaks
  sp    Xvs3\637\637\637-vs;-vs;r   r    r   )r"   r#   r$   r%   rB   rQ   rW   r[   rf   rl   r~   r   r   r   r   r   r   r   r   r   r   r   r  r!  r*  r5  r:  rK  rO  rV  r\  rj  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/  r7  r:  rH   r  r?  rV   ascii_lettersdigitsrE  rG  rO  rT  rY  rf  rk  rr  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   ignore_warningsr   r%  r0  r5  r:  rA  rK  rS  r]  r`  rh  rk  rr  r   r   rx  r}  r  r  r  r  r  r  r  r  r  r  r  unittestskipIfr	   r
   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r+  r5  r>  rB  rM  rP  rS  rY  r\  ra  rf  rk  rp  rs  r|  
skipUnlesshasattrrp  r  r&   r    r   r   r0   r0   %   sR    //+	E
1H""+@Z%
	'A,. `/$/((@"MH	H#HJ0*3Jj.094;NBB**-XR<@<?>3
MO?
"HH3,N@M&&NPBFHB)#B8R4&=PEANCFJ?HH8TA 04$LL) ((6==8;LLM
BBD& ++<K@L8F*H$	GF
?
O3J?
F:/(*&&,,'24(
,54* $$.@AD BD:Mz99C:+AZ;B8>G$I4 S#( $( S(& )&QUY.I
H
804K(2$M
 __ 7$	$$9; __ 71	1@"7HF+ :4"* 9DH:G(;
7" u0 0%3N?6	I8B6	LUK(Q ___,.MN O&@O>( ];=ST< U<r   r0   c                     [        5        n[        R                  " U [        R                  5        S S S 5        UR	                  5       $ ! , (       d  f       WR	                  5       $ = fr   )r   rH   rJ   DEBUGgetvalue)r  outs     r   get_debug_outr  
  sB    		c


3! 
<<> 
	<<>s   &A		
A&c                   0    \ rS rSrSrS rS rS rS rSr	g)
DebugTestsi
  Nc                 x    SnSnU R                  [        U5      U5        U R                  [        U5      U5        g )Nz(\.)(?:[ch]|py)(?(1)$|: )a  SUBPATTERN 1 0 0
  LITERAL 46
BRANCH
  IN
    LITERAL 99
    LITERAL 104
OR
  LITERAL 112
  LITERAL 121
GROUPREF_EXISTS 1
  AT AT_END
ELSE
  LITERAL 58
  LITERAL 32

 0. INFO 8 0b1 2 5 (to 9)
      prefix_skip 0
      prefix [0x2e] ('.')
      overlap [0]
 9: MARK 0
11. LITERAL 0x2e ('.')
13. MARK 1
15. BRANCH 10 (to 26)
17.   IN 6 (to 24)
19.     LITERAL 0x63 ('c')
21.     LITERAL 0x68 ('h')
23.     FAILURE
24:   JUMP 9 (to 34)
26: branch 7 (to 33)
27.   LITERAL 0x70 ('p')
29.   LITERAL 0x79 ('y')
31.   JUMP 2 (to 34)
33: FAILURE
34: GROUPREF_EXISTS 0 6 (to 41)
37. AT END
39. JUMP 5 (to 45)
41: LITERAL 0x3a (':')
43. LITERAL 0x20 (' ')
45: SUCCESS
rA   r  )r   r  dumps      r   test_debug_flagDebugTests.test_debug_flag
  s=    *(R 	s+T2 	s+T2r   c                 :    U R                  [        S5      S5        g )Nz(?>ab?)zATOMIC_GROUP
  LITERAL 97
  MAX_REPEAT 0 1
    LITERAL 98

 0. INFO 4 0b0 1 2 (to 5)
 5: ATOMIC_GROUP 11 (to 17)
 7.   LITERAL 0x61 ('a')
 9.   REPEAT_ONE 6 0 1 (to 16)
13.     LITERAL 0x62 ('b')
15.     SUCCESS
16:   SUCCESS
17: SUCCESS
r  rZ   s    r   test_atomic_groupDebugTests.test_atomic_group
  s    z2 5 	r   c                 :    U R                  [        S5      S5        g )Nr.  zPOSSESSIVE_REPEAT 0 1
  LITERAL 97

 0. INFO 4 0b0 0 1 (to 5)
 5: POSSESSIVE_REPEAT_ONE 6 0 1 (to 12)
 9.   LITERAL 0x61 ('a')
11.   SUCCESS
12: SUCCESS
r  rZ   s    r   test_possesive_repeat_one$DebugTests.test_possesive_repeat_one
  s    v. 	1 		r   c                 :    U R                  [        S5      S5        g )Nr2  zPOSSESSIVE_REPEAT 0 1
  LITERAL 97
  LITERAL 98

 0. INFO 4 0b0 0 2 (to 5)
 5: POSSESSIVE_REPEAT 7 0 1 (to 13)
 9.   LITERAL 0x61 ('a')
11.   LITERAL 0x62 ('b')
13: SUCCESS
14. SUCCESS
r  rZ   s    r   test_possesive_repeat DebugTests.test_possesive_repeat
  s    {3 6 	r   r    )
r"   r#   r$   r%   maxDiffr  r  r  r  r&   r    r   r   r  r  
  s    G.3`"
r   r  c                   b    \ 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g)PatternReprTestsi  c                 b    U R                  [        [        R                  " U5      5      U5        g r   rA   r  rH   rJ   )r   rF   rJ  s      r   checkPatternReprTests.check  s     bjj12H=r   c                 b    U R                  [        [        R                  " X5      5      U5        g r   r  )r   rF   r   rJ  s       r   check_flagsPatternReprTests.check_flags  s     bjj898Dr   c                 (    U R                  SS5        g )Nrn  re.compile('random pattern')r  rZ   s    r   test_without_flags#PatternReprTests.test_without_flags  s    

#1	3r   c                 F    U R                  S[        R                  S5        g )Nrn  z+re.compile('random pattern', re.IGNORECASE))r  rH   rn  rZ   s    r   test_single_flag!PatternReprTests.test_single_flag  s    )2==9	;r   c                     U R                  S[        R                  [        R                  -  [        R                  -  S5        g )Nrn  z@re.compile('random pattern', re.IGNORECASE|re.DOTALL|re.VERBOSE))r  rH   r   r   r   rZ   s    r   test_multiple_flags$PatternReprTests.test_multiple_flags  s.    )2449RTT>2	3r   c                     U R                  S[        R                  S5        U R                  S[        R                  [        R                  -  [        R                  -  S5        g )Nrn  r  z5re.compile('random pattern', re.IGNORECASE|re.DOTALL))r  rH   r  r   r   rZ   s    r   test_unicode_flag"PatternReprTests.test_unicode_flag  sH    )2447	9)2449RTT>4	5r   c                 (    U R                  SS5        g )Nz(?i)patternz(re.compile('(?i)pattern', re.IGNORECASE)r  rZ   s    r   r0  "PatternReprTests.test_inline_flags  s    

==	?r   c                 r    U R                  SSS5        U R                  SS[        R                  -  S5        g )Nrn  i 0 z&re.compile('random pattern', 0x123000)z4re.compile('random pattern', re.IGNORECASE|0x123000))r  rH   r   rZ   s    r   test_unknown_flags#PatternReprTests.test_unknown_flags   s8    )8A	C)8BDD=B	Dr   c                 j    U R                  SS5        U R                  S[        R                  S5        g )N   bytes patternzre.compile(b'bytes pattern')z&re.compile(b'bytes pattern', re.ASCII))r  r  rH   r   rZ   s    r   
test_bytesPatternReprTests.test_bytes&  s/    

#1	3)244A	Cr   c                 F    U R                  S[        R                  S5        g )Nr  z're.compile(b'bytes pattern', re.LOCALE))r  rH   ro  rZ   s    r   test_localePatternReprTests.test_locale,  s    )244B	Dr   c                 p    U R                  SS5        U R                  SS5        U R                  SS5        g )Nzrandom "double quoted" patternz,re.compile('random "double quoted" pattern')zrandom 'single quoted' patternz,re.compile("random 'single quoted' pattern")z!both 'single' and "double" quotesz1re.compile('both \'single\' and "double" quotes')r  rZ   s    r   test_quotesPatternReprTests.test_quotes0  s;    

3>	@

3>	@

:E	Gr   c                    SSS-  -  n[        [        R                  " U5      5      nU R                  [	        U5      S5        U R                  US S S5        [        [        R                  " U[        R                  5      5      nU R                  [	        U5      S5        U R                  US S S5        U R                  USS  S5        g )	NzVery %spatternzlong ry  i,     zre.compile('Very long long loniz, re.IGNORECASE))r  rH   rJ   r  r  rA   r   )r   rF   r  s      r   test_long_pattern"PatternReprTests.test_long_pattern8  s    "gn5G$%A$3B!ABGRTT*+A$3B!AB34"45r   c                    U R                  [        [        R                  5      S5        U R                  [        [        R                  [        R                  -  [        R
                  -  5      S5        U R                  [        [        R                  [        R                  -  [        R
                  -  S-  5      S5        U R                  [        [        R                  ) 5      S5        U R                  [        [        R                  [        R                  -  [        R
                  -  ) 5      S5        U R                  [        [        R                  [        R                  -  [        R
                  -  S-  ) 5      S5        g )Nzre.IGNORECASEz"re.IGNORECASE|re.DOTALL|re.VERBOSEi   z+re.IGNORECASE|re.DOTALL|re.VERBOSE|0x100000zLre.ASCII|re.LOCALE|re.UNICODE|re.MULTILINE|re.DOTALL|re.VERBOSE|re.DEBUG|0x1z7re.ASCII|re.LOCALE|re.UNICODE|re.MULTILINE|re.DEBUG|0x1z;re.ASCII|re.LOCALE|re.UNICODE|re.MULTILINE|re.DEBUG|0xffe01)rA   r  rH   r   r   r   rZ   s    r   test_flags_repr PatternReprTests.test_flags_reprB  s    bdd_5bdd244in-=	?bdd244ine45F	HbddU^	` 	RTT	"$$/0R	TRTT	"$$ 678V	Xr   r    N)r"   r#   r$   r%   r  r  r  r  r  r  r0  r  r  r  r  r  r  r&   r    r   r   r  r    sI    >E3;3
5?DCDG6Xr   r  c                       \ rS rSr\S 5       rS rS r\S 5       rS r	\S 5       r
\S 5       r\S	 5       r\S
 5       rSrg)ImplementationTestiQ  c                    U R                  [        5         S[        R                  l        S S S 5        U R                  [        5         S[        R
                  l        S S S 5        U R                  [        5         [        R                  " S5      n[        UR                  S5      5      nSUl        S S S 5        g ! , (       d  f       N= f! , (       d  f       Nu= f! , (       d  f       g = f)Nrs   r   )	rG   r   rH   Matchr  rp  rJ   r9   r  )r   r  tps      r   test_immutable!ImplementationTest.test_immutableV  s     y)BHHL *y)BJJN *y)**R.Cckk"o&BBF *)	 *)))))s#   B=	C<8C=
C
C
C-c                 j   [         R                  R                  nU R                  U" S5      / 5        U R                  U" S5      S/5        U R                  U" S5      / SQ5        U R                  U" S5      / SQ5        U R                  U" S5      / S	Q5        U R                  U" S
5      / SQ5        g )Nr   r   r   r  )r   r   r   r   aaaa)r   rs   r   rt   ababba)r   r   rs   r   r   rs   abcabdac)r   r   r   rs   r   r   rs   r   )rH   	_compiler_generate_overlap_tablerA   )r   fs     r   test_overlap_table%ImplementationTest.test_overlap_tableb  s    LL002#3!%6L16L18&89:(@Ar   c                     U R                  [        R                  R                  S5        U R                  [        R                  R                  S5        g )Nr   )assertGreaterEqualrH   r  	MAXREPEATr  rZ   s    r   test_signedness"ImplementationTest.test_signednessk  s6     6 6: 6 6:r   c                     [        U [        R                  5        [        U [        R                  5        [        R                  " S5      n[        U [        UR                  S5      5      5        g )Nr   )r   rH   r  rp  rJ   r9   r  r  s     r   test_disallow_instantiation.ImplementationTest.test_disallow_instantiationo  sD     	%T2884$T2::6jjn$T4B+@Ar   c           	         / SQ/ SQ/ SQS.nU GHP  nU R                  US9   [        R                  R                  US 5        U R	                  [
        5       n[        U5        S S S 5        U R                  [        WR                  5      SU< S35        U R                  UR                  [        5        U R                  U[        R                  5        [        R                  U   nU R                  UR                  U5        U R                  UR                  S5        X    H  nU R                  [!        XE5      5        M     [        R                  U	 S S S 5        GMS     g ! , (       d  f       GN= f! , (       d  f       GMx  = f)	N)rJ   r(  SRE_FLAG_IGNORECASE
SUBPATTERN_compile_info)r(  r  r  _NamedIntConstant)
SubPatternparser  r  
_parse_sub)sre_compilesre_constants	sre_parse)modulezmodule z is deprecatedr   )rK   sysmodulespopr   r   
__import__rA   r   r   r   r   r  r"   __package__r  r  )r   
deprecatednamer   r  attrs         r   test_deprecated_modules*ImplementationTest.test_deprecated_modulesw  s'   -3(	

 DT*d+%%&89Qt$ :  QYY#*4(.!AC  X6dCKK0kk$'  t4  "5&,DOOGC$67 -KK% +*  :9 +*s$   6E7E%$C3E7%
E4/E77
F	c                     SS K n[        S5       H  n[        U5      n[        UR	                  5       5      nU R                  UR                  U5      U5        U R                  UR                  U5      U5        U[        R                  ;   nU R                  UR                  U5      U5        U R                  UR                  U5      U5        M     [        [        SS5      5      SS/-    GH  n[        U5      nU R                  UR                  U5      U5        US:w  a8  U R                  UR                  U5      [        UR	                  5       5      5        X3R	                  5       :g  =(       d    X3R                  5       :g  nU R                  UR                  U5      5        U R                  UR                  U5      X3R	                  5       :g  =(       d    X3R                  5       :g  5        GM     U R                  UR                  S5      S5        U R                  UR                  S5      [        S5      5        U R                  UR                  S5      5        U R                  UR                  S5      5        g )Nr   r2  i   i  i( i0  r  )_srer  r   ordrF  rA   ascii_tolowerunicode_tolowerrV   r  ascii_iscasedunicode_iscasedr6   upperr  r  )r   r  r  r   loiscaseds         r   test_case_helpers$ImplementationTest.test_case_helpers  s   sAAAQWWYBT//2B7T11!4b96///GT//2G<T11!4g>  eC()Wg,>>AAAT//2A6F{  !5!5a!8#aggi.I779n6WWYGT//23T11!4'')^=qGGI~? ? 	++F3V<--f5s3x@++F34,,V45r   c           	         SS K nSS-  nU R                  [        [        R                  S0 5        U R                  [
        5         UR                  SSU/S0 S5        S S S 5        U R                  [        5         UR                  0 S/ S/ / 5        S S S 5        U R                  [        5         UR                  SSS/S0 S5        S S S 5        g ! , (       d  f       Nx= f! , (       d  f       NU= f! , (       d  f       g = f)Nr   r   r2  r   r   r    r   )r  rG   r   rH   ra   r  rJ   )r   r  long_overflows      r   test_deallocImplementationTest.test_dealloc  s     	
 3)R[[#r:}-LLM?Ar2> .y)LLQAr2. * y)LLQB3 *) .-)) *)s$   C:C .C1
C 
C.1
C?c                 v    SSK Jn  SS-  nU R	                  [
        R                  " SWS-
  -  U5      5        U R                  [
        R                  " SUS-
  -  U5      R                  5       S	5        U R	                  [
        R                  " S
US-
  -  U5      5        U R                  [        [
        R                  SU-  5        U R                  [        [
        R                  SU-  5        U R                  [        [
        R                  S
U-  5        g ! [         a    U R                  S5         GN/f = f)Nr   )r  z requires _sre.MAXREPEAT constantr<   r  r  rs   r  )r   r  r  )r  r  ImportErrorr  r|   rH   r}   rA   r{   rG   r  rJ   )r   r  rV   s      r   %test_repeat_minmax_overflow_maxrepeat8ImplementationTest.test_repeat_minmax_overflow_maxrepeat  s    	>& v"((8y1}#=vFG)y1}"=vFKKM$	&"((:Q#?HI-X	5IJ-Y5JK-Z)5KL  	>MM<=	>s   D D87D8c                    SS K nU R                  [        5       nUR                  S/ SQ5        S S S 5        U R	                  S[        WR                  5      5        U R                  [        5       nUR                  S/ SQ5        S S S 5        U R	                  S[        UR                  5      5        g ! , (       d  f       N= f! , (       d  f       NE= f)Nr   r   )r   rx  r   zinvalid template)r   r    r   zan integer is required)r  rG   r   templater  r   rL   )r   r  rO   s      r   %test_sre_template_invalid_group_index8ImplementationTest.test_sre_template_invalid_group_index  s     	y)RMM"l+ *(#bll*;<y)RMM"l+ *.BLL0AB *) *)s   B41C4
C
Cr    N)r"   r#   r$   r%   r   r  r  r  r  r  r  r  r  r  r&   r    r   r   r  r  Q  s    
 	 	B; B B&6 6 64 4 4" M M C Cr   r  c                        \ rS rSrS rS rSrg)ExternalTestsi  c                    SSK Jn  U GH?  u  p#U R                  X#S9   [        R                  " U5      nU R                  UR                  U5      5        U R                  UR                  U5      5        U R                  UR                  U5      5        SS-  U-   SS-  -   nU R                  UR                  U5      5        U R                  UR                  US5      5        U R                  UR                  USS[        U5      -   5      5        U R                  UR                  USS[        U5      -   5      5        S S S 5        GMB     g ! , (       d  f       GMU  = f)Nr   )
benchmarksrF   rV   r  r  )
test.re_testsr  rK   rH   rJ   r  rz   r}   r  r  )r   r  rF   rk   r  s2s         r   test_re_benchmarks ExternalTests.test_re_benchmarks  s    ,$JGg8JJw',
+A/Y]SY.-E 23E53q6> BCBus1v~ FG 98 %88s   D"E
E	c                 	   SSK JnJnJn  U GH  nS =n=n=n=p[	        U5      S:X  a  Uu  pVpxn	O![	        U5      S:X  a  Uu  pVnO[        SU5      eU R                  XVS9   Xs:X  aI  U R                  [        R                  5         [        R                  " U5        S S S 5         S S S 5        M  [        R                  " U5      n
U
R                  U5      nXr:X  a  U R                  US5         S S S 5        M  U R                  5          U R                  US5        UR                  S5      u  pUR                  S5      UR                  5       UR                  R                   S	.n[#        S
S5       H"  n UR                  U5      nUc  SnUUSU-  '   M$     UR                  R&                  R)                  5        H  n UR                  U5      nUc  SnUX'   M      U R+                  [-        X5      U	S5        S S S 5         [/        US5      n[/        US5      nU R                  S5         [        R                  " U5      n
U R                  U
R                  U5      5        S S S 5        U R                  S5         [        R                  " U[        R0                  5      n
U
R                  U5      nUc  [3        SU5        S S S 5        US S S:w  aa  USS  S:w  aX  UbU  U R                  S5         [        R                  " U5      n
U R                  U
R                  UWWS
-   5      5        S S S 5        U R                  S5         [        R                  " U[        R6                  5      n
U R                  U
R                  U5      5        S S S 5        U R                  S5         [        R                  " U[        R8                  5      n
U R                  U
R                  U5      5        S S S 5        S S S 5        GM     g ! , (       d  f       GNj= f! [$         a    Sn GNf = f! [$         a    Sn GN^f = f! , (       d  f       GNE= f! , (       d  f       GN= f! , (       d  f       GN= f! [4         a     GNf = f! , (       d  f       GNZ= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       GM  = f)Nr   )testsFAILSYNTAX_ERRORr  rt   z%Test tuples should have 3 or 5 fieldsr  zSucceeded incorrectlyzFailed incorrectly)foundri  r   rs   r  Noner  zg%dzgrouping errorrM  zbytes pattern matchzlocale-sensitive matchz#=== Fails on locale-sensitive matchr   r  zrange-limited matchzcase-insensitive matchzunicode-sensitive match)r  r  r  r  r  r   rK   rG   rH   rI   rJ   rz   r|   r  r{   r   r   r  r4  r  keysrA   evalr3  r  printUnicodeEncodeErrorrn  r^  )r   r  r  r  r  rF   rk   outcomerT   rJ  objr   r  r  vardictr  gir9  bss                      r   test_re_testsExternalTests.test_re_tests  s   ;;A6::G:a:':D1v{673G8Q1&'#G !H!LLg8***2??;

7+ <	 98 jj)A?%%f.EF 98 \\^OOF,@A "(QJE(.Q)/(.		9G #1c])!'aB!z%+ .0	* + $YY11668)!'aB!z%+ &(
 9 $$T$%8(%573 $<L '2Dq'*B
 &;< jj.

27 = &>? jjryy9!$B!>!"GK	 @ BQK5(WRS\U-B & 2&;< jj1

1eS1W(EF = \\":;**Wbmm<COOCJJqM2 < \\";<**Wbjj9COOCJJqM2 =_ 98  <;0  * )!(B)  * )!(B)- $^J =< @? * , =< <; =<_ 98s0   %R3O?	R3/?R38R3A,P75P3P7?P$$P79R3Q-R3+7Q	"R3;AQ.R3/<Q>+R3AR
R3#AR")R3?
P	R3P!P7 P!!P7$P40P73P44P77
QR3	
QR3
Q*%R3-
Q;7R3:Q;;R3>
RR3
RR3"
R0,R33
S	r    N)r"   r#   r$   r%   r  r+  r&   r    r   r   r  r    s    H]3r   r  __main__)'test.supportr   r   r   r   r   r   r	   r
   r   r   r   r   rD  rH   rV   r  timer  r)  r   weakrefr   _multiprocessingra  r  r   r   r3  r+   TestCaser0   r  r  r  r  r  r"   mainr    r   r   <module>r4     s  [ [ [ [  	  
      - -- -s)<h s)<lS \"" \ \~MXx(( MX`FC** FCRn3H%% n3b zMMO sa  Os   C. .C98C9