python (3.12.0)

(root)/
lib/
python3.12/
test/
__pycache__/
test_re.cpython-312.pyc

ΑeddlmZmZmZmZmZmZmZmZm	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlmZddlmZ	ddlZddlZGddeZGddeZGd	d
ej6ZdZeGdd
ej6ZGddej6ZGddej6Z Gddej6Z!e"dk(rejFyy#e$rdZYwxYw))	
gc_collect
bigmemtest_2Gcpython_onlycaptured_stdoutcheck_disallow_instantiation
is_emscriptenis_wasi
SHORT_TIMEOUTN)Scanner)proxyceZdZfdZxZS)Sc4tt|	|SN)rsuper__getitem__selfindex	__class__s  @/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/test/test_re.pyrz
S.__getitem__$U+,,__name__
__module____qualname__r
__classcell__rs@rrr
--rrceZdZfdZxZS)Bc4tt|	|Sr)r#rrrs  rrz
B.__getitem__"rrrr s@rr#r#!r!rr#cteZdZddZddZddZdZdZdZdZ	d	Z
d
ZdZdZ
d
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ d Z!d!Z"d"Z#d#Z$d$Z%d%Z&d&Z'd'Z(d(Z)d)Z*d*Z+d+Z,d,Z-d-Z.d.Z/d/Z0d0Z1d1Z2d2Z3d3Z4d4Z5d5Z6d6Z7d7Z8dde9jtfd8Z;e<jze<j|zd9zZ?d:Z@d;ZAd<ZBd=ZCd>ZDd?ZEd@ZFdAZGdBZHdCZIdDZJdEZKdFZLdGZMdHZNdIZOdJZPdKZQdLZRdMZSdNZTdOZUdPZVdQZWdRZXdSZYdTZZdUZ[dVZ\dWZ]dXZ^dYZ_dZZ`d[Zad\Zbd]Zcd^Zdd_Zed`ZfdaZgdbZhdcZiddZjdeZkelemdfgdhZnelemdigdjZodkZpdlZqdmZrdnZsdoZtdpZudqZvdrZwdsZxdtZyezje|xse}dudvZ~dwZdxZezje|xse}dudyZdzZd{Zd|Zd}Zd~ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZezjeduddZy)ReTestsNcPj||fd||y)Nct|ttfrt||D]\}}||yj	t|t|yr)
isinstancetuplelistzipassertIstype)actualexpectxymsgrecursers    rr4z)ReTests.assertTypedEqual.<locals>.recurse)sN&5$-0/"DAqAqM"

d6lDL#>r)assertEqual)rr/r0r3r4s`  `@rassertTypedEqualzReTests.assertTypedEqual's&-	?	rcp|jtj5}tj|ddd|j	|5j
}|j
|j|||j
|j|dddy#1swYkxYw#1swYyxYw)N)pattern)	assertRaisesreerrorcompilesubTest	exceptionr5r3pos)rr8errmsgr?cmerrs      rcheckPatternErrorzReTests.checkPatternError1s


rxx
(	 BJJw	 
\\'\
*	/,,CSWWf-  #.		/	/	 	 	/	/sB AB, B),B5cv|jtj5}tj|||ddd|j	||5j
}|j
|j|||j
|j|dddy#1swYlxYw#1swYyxYw)N)r8repl)	r9r:r;subr=r>r5r3r?)rr8rEstringr@r?rArBs        rcheckTemplateErrorzReTests.checkTemplateError:s


rxx
(	*BFF7D&)	*
\\'\
5	/,,CSWWf-  #.		/	/	*	*	/	/sB#AB/#B,/B8c
td}tjd|}|jt5|jddddt
|~t|jdy#1swY1xYw)Nxasxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)	bytearrayr:finditerr9BufferErrorextendr+r)rbits   rtest_keep_bufferzReTests.test_keep_bufferCsedO
[[q
!


{
+	
HHX	R			sA99Bcd}tjd}t|}|j|j	d|j	dy)NQabbbcRzab+c)r:r<r
r5findall)rsr1r2s    rtest_weakrefzReTests.test_weakrefNs@JJv!H9-qyy/CDrc|jtjddjdd|jtjddjd|jtjddjdd|jtjddjd|j	tjdd|jtj
d	d
jdd|jtj
d	d
jd|jtj
ddjdd|jtj
ddjd|j	tj
d
d
y)Nx*axxrrrzx+r1aaaza*xxxxxxarr^a+)r5r:searchspanassertIsNonematchrs rtest_search_star_pluszReTests.test_search_star_plusTs\4/44Q7@4/446?4/44Q7@4/446?"))C/0$.33A6?$.335v>$/44Q7@$/446?"((4/0rc|jtjddjd|jtjddjd|jtjddjd|jtjddjd|jtjdd	jd|jtjdd
jd|jtjddjd
|jtjddjd
|jtjddjd
y)zDTest Branching
        Test expressions using the OR ('|') operator.z(ab|ba)abrbaz(abc|bac|ca|cb)abcrbbaccacbz
((a)|(b)|(c))arr]rPcNr5r:rgrerhs rtest_branchingzReTests.test_branching`sX	
)T27796B)T27796B"3U;@@B	!"3U;@@B	!"3T:??A	!"3T:??A	!/37<<>G/37<<>G/37<<>GrcRt|jd}t|dzS)Nrr])intgroupstr)rmatchobj	int_values   rbump_numzReTests.bump_numqs$q)*	9q=!!rc
t
|jtjdddd|jtjdtdtdd|jtjdddd|jtjdt	dt	dd|jtjdtdtdd|jtjdt
dt
ddd	D],}|jtj|dd
|zd.|jtjddd
d|jtjd|jdd|jtjd|jddd|jtjd|jddd|jtjdddd|jtjddddd|jtjddd|jtjdjddd|jtjdfdd|jtjdd dd!|jtjdd"dd!|jtjd#d$dd!|jtjd#d%dd!|jtjd&d'dd!|jtjdd(dd)|jtjdd)dd)|jtjdd)dtd*td+ztd,ztd-ztd.ztd/ztd0zd1D]q}|j|5|jtj5|jtjdd|zdd|zdddddds|jtjd2d3d4d5y#1swY;xYw#1swYxYw)6Nr2rsxyzxazyrKxyzsxazàuаu𝒜zx%sz(?i)b+r1	bbbb BBBBx x\d+z08.2 -2 23x99yz9.3 -3 24x100yr^z
9.3 -3 23x99ycount.cy)N\nms r<lambda>z+ReTests.test_basic_re_sub.<locals>.<lambda>rr
z\1\1z(.)xx\\\cSrr)rrVs rrz+ReTests.test_basic_re_sub.<locals>.<lambda>sr(?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*XtestXtest)r6r:rFrr#rL
memoryviewr5r~replacechrr=r9r;)rr2rurVs   @rtest_basic_re_subzReTests.test_basic_re_subusbffS#u5u=bffS!C&!E(;UCbffT48&AbffT1T7AfI>GbffT9T?If<MNPVWbffT:d+;Z=OPRXY1	@ARVVAsFQJ7?	@	
#{;UC

7GH)	+

7GK(	*

7GqQ(	*	
_c:EBUC0$7q#.5qyyu'=sCQG{C8!<
M4@&I
M4@&I.?FOmTBFK}d;VD%6<>NO%5s;=MN%5s;a&R.R0R8R@QGAN	Q?	KAa
K&&rxx0K$$RVVC3%?JK
K
K	K
	
f5w?KK
K
Ks$ T.:.T"(T."T+'T..T7	cR|jtjddddy)Nrz\g<1>\g<1>\brzxxxxr5r:rFrhs rtest_bug_449964zReTests.test_bug_449964s"
E#	%rc<|jtjdddd|jtjdddd|jtjdddd|jtjddddy)Nz\r\nrz
abc
def
zabc
def
z
rrrhs rtest_bug_449000zReTests.test_bug_449000s0@A%	'/?@%	'/?@%	'.>?%	'rctjd}|jttj|dtj
|jttj|dtj
|jttj|dtj
|jttj|tj
y)NrA)r:r<r9
ValueErrorrgIrdrUrr8s  r
test_bug_1661zReTests.test_bug_1661s**S/*bhhbddC*bii#rttD*bjj'3E*bjj'244@rc.tjdy)Nz(?P<quote>)(?(quote)))r:r<rhs r
test_bug_3629zReTests.test_bug_3629s


*+rc|jtjdddd|jtjdddd|jtjdddd|jtjdddd|jtjdd	dd
|jtjdddd|jtjdd
dd|jtjdddd|jtjdddd|jtjdddd|jtjdddd|jtjdddd|jtjdddd|jtjdddd
|jtjdddd|jddddd|jddddd|jdddd d!|jdd"dd#d!|jdd$dd%d!|jdd&dd'd!|jdd(dd)d!|jdd*dd d!|jdd+dd,d!|jdd-dd.d!|jdd/dd'd!|jdd0dd'd!|jdd1dd)d!|jdd2dd3d!|jdd"d4d#d!|jtjd5d&dd|jtjd6d/d7d8|jtjd6d0d7d9y):Nr1\0z\000z\001z\0088z\009z9z\111rz\117Oz\377ÿz\1111I1z\00z\07\08z\09z\0azaz\400z0octal escape value \400 outside of range 0-0o377rz\777z0octal escape value \777 outside of range 0-0o377z\1zinvalid group reference 1r]z\8zinvalid group reference 8z\9zinvalid group reference 9z\11zinvalid group reference 11z\18zinvalid group reference 18z\1az\90zinvalid group reference 90z\99zinvalid group reference 99z\118z\11az\181z\800zinvalid group reference 80z(((((((((((x)))))))))))z((((((((((y))))))))))(.)rxz8xza)r5r:rFrHrhs r test_sub_template_numeric_escapez(ReTests.test_sub_template_numeric_escapesUC0$7Wc2F;Wc2F;Wc2J?Wc2J?Wc2F;Wc2F;Wc2F;Xs3W=Xs3\BVS16:VS16:VS1:>VS1:>VS1:>Wc!123	5	
Wc!123	5	
UC1LaPUC1LaPUC1LaPVS2NPQRVS2NPQRVS2MqQVS2NPQRVS2NPQRWc3OQRSWc3OQRSWc3OQRSWc3OQRSUB0KQO	
 963GM :GUK	  :GUK	 rc|jtjdddd|jtjddddd|jtjdddddy)NrsrPaaaaabbbbbr]baaaarrrhs rtest_qualified_re_subzReTests.test_qualified_re_subs]S'2G<S'15w?S';WErcR|jtjddddy)Nz(\S)\s+(\S)z\1 \2zhello  therezhello thererrhs rtest_bug_114660zReTests.test_bug_114660s".I&	(rctjdtjdtjdtjdtjdtjddjdtd	d
D}d|z}|j	tj
|dj
d
y)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)|c3*K|]}d||fz
ywz
x(?P<a%d>%x)yNr.0is  r	<genexpr>z/ReTests.test_symbolic_groups.<locals>.<genexpr>KA!Q/Kr]z(?:%s)(?(200)z|t)xc8yzr)r:r<joinranger5rgrerpats  rtest_symbolic_groupszReTests.test_symbolic_groupss


+,


./


()


./


-.


{|hhKq'9JKK!C'#w/446?rc$|jdd|jddd|jdd|jdd	d
|jddd
|jddd
|jddd
|jdd|jdd|jddd
|jddd
|jddd
|jddd
|jddd
|jddd
|jddd
|jddd|jd dd|jd!dd|jd"d#d|jd$d%d|jd&dd|jd'd(d
|jd)d(d
|jd*d(d|jd+d,d
|jd-d,d
|jd.d,dy)/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 grouprz(?Pxy)zunknown extension ?Pxz(?P<a>)(?P=amissing ), unterminated namerz(?P=missing group namez(?P=)z(?P=1)zbad character in group name '1'z(?P=a)zunknown group name 'a'z(?P=a1)zunknown 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(?(r^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)rCrhs rtest_symbolic_groups_errorsz#ReTests.test_symbolic_groups_errorss(0 -	.	
/>	Dy*AB0NPRSw(<a@x)=qAy*KQOy*BCz+DEz+MqQx)GKx)GKw(<a@y*>Bz+LaP{,NPQRv';Q?x)=qAy*BAFz+MqQz+MqQz+MqQ{,NPQRy*LaPz+MqQ1H!	M/H!	M0H!	Mrc|jtjdddd|jtjdddd|jtjdddd|jtjd	d
dd|jtjddddd
jdt	ddD}|jtj|dddy)Nz(?P<a>x)|(?P<b>y)z\g<b>rr\2s	(?P<a1>x)s\g<a1>xxu	(?P<µ>x)u\g<µ>u#(?P<𝔘𝔫𝔦𝔠𝔬𝔡𝔢>x)u \g<𝔘𝔫𝔦𝔠𝔬𝔡𝔢>rc3*K|]}d||fz
ywrrrs  rrz-ReTests.test_symbolic_refs.<locals>.<genexpr>.rrr]rz\g<200>	xc8yzxc8yc8zc8)r5r:rFrrrs  rtest_symbolic_refszReTests.test_symbolic_refs&s 3XtDbI 3UDA2Fj%@%HY=tD EGjlpqswxhhKq'9JKKZ=wGrcR|jddddd|jddddd|jdddd	d
|jddddd|jdd
ddd|jddddd|jddddd|jddddd|jtd5tjdddddd|jddddd|jddddd|jddddd|jddddd|jdddd d|jd!d"d#d$d|jdd%dd&d|jdd'dd(d|jdd)dd*dy#1swYxYw)+Nrz\g<arrr^z\g<rz\gz	missing <rmz\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 2rr]zunknown group name 'ab'z\g<ab>z\g<-1>rz\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<©>rs(?P<a>x)s\g<µ>rru\g<㊀>!bad character in group name '㊀'u\g<¹> bad character in group name '¹'u\g<१>!bad character in group name '१')rHassertRaisesRegex
IndexErrorr:rFrhs rtest_symbolic_refs_errorsz!ReTests.test_symbolic_refs_errors1s
GT >	C
FD 4a	9
E4aH
J CQ	H
GT 4a	9
J CQ	H
Hd ;Q	@
E4 ;Q	@

#
#J0I
J	0FF:y$/	0
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%	0	0s?FF&c|jtjdddd|jtjdddd|jtjdddd|jtjd	ddd
|jtjd	dddd|jtjd	ddd
dy)Nrr1r)rrmzb+)zx BBBBr]r)rrzb*)xxxyxzxrrm)xxxyzrmr)r5r:subnrhs rtest_re_subnzReTests.test_re_subnVs3<jIsK8-HsE2J?sE2NCsE15|DsE;\JrcdtdfD]z}|jtjd|gd|jtjd|gd|jtjd|gd|dt	dtdt
dfD]z}|jtjd	|gd
|jtjd|gd|jtjd
|gd|dD]\}}}d|d|d|}|jtjd|d||d|g|jtjd|d|||g|jtjd|dd|d|d|g|jtjddgd|jtjddgd|jtjddgd|jtjddgd|jtjddgddgdfdgdfdgdfd gd!ffD]F\}}|j|"5|jtj|d|dddHdgd#fd$gd%fd&gd'fd(gd)ffD]F\}}|j|"5|jtj|d|dddHy#1swYxYw#1swY_xYw)*N:a:b::c:)rrsrPrru:+)rrsrPru(:+))rrrsrrP::rus:a:b::c:)rrKbrc:+)rrKr	r
(:+))rrrKrr	::r
)uàßçuабвu𝒜𝒞𝒵rrz(?::+)z(:)+)rrrsrrPrruz([b:]+))rrrsz:b::ruz(b)|(:+))
rNrrsNrrrPNrNrruz(?:b)|(?::+))rrsrrruz:*)rrrsrrPrrurz(?::*)(:*))rrrrrsrrrrPrrrrurrz(:)*)rrrNrsrrNrPrrNruNr)sep)	rrrsrrPrrrur\b)rrsrrPrrurz(?=:))rz:az:brz:cz(?<=:))ra:zb:rru)	rr6r:splitr#rLrr5r=)rrGrsrPrurexpecteds       r
test_re_splitzReTests.test_re_split^sA9-	GF!!"((3"7"9
;!!"((4"8"5
7!!"((66":"E
G	G"1Z=)J2G!*-/	NF!!"((4"8">
@!!"((5&"9"9
;!!"((7F";"L
N
	N:	<GAq!%&1-FRXXc62RAr14EFRXXdF3b!Q]CRXXff5 #q#q$:
<	<	
(I68KL&)4;	=)Y74	6*i8+	,	
.)</	167
:;
XY
_`	
	JMC#&
J%%bhhsI&>I
J
J
	J<=
78
23
34	
	JMC#&
J%%bhhsI&>I
J
J
	J
J
J
J
Js7'M'MM	M	c|jtjdddgd|jtjdddgd|jtjdddgd|jtjdddgd	|jtjd
ddgd	|jtjdddgdy)
Nrrrm)rrsb::c)maxsplitza:b:c:d)rsrPzc:dz(:))rrrsrrrr)rrrrza:b::c)r5r:rrhs rtest_qualified_re_splitzReTests.test_qualified_re_splits#y!46GH#y1=?PQ#y1=?PQ%Q?4	6&)a@4	6&)a@4	6rc
|jtjddgdtdfD]z}|j	tjd|gd|j	tjd|gd|j	tjd|gd|dtdt
dtdfD]z}|j	tjd	|gd
|j	tjd|gd
|j	tjd|gd
|dD]}|dz}|dz}d|d|d|d}|jtjd|z||||g|jtjd|z||||g|jtjd|d|d||df||f||fgy)Nrro
a:b::c:::drrz:::rz(:)(:*)))rr)rr)rrs
a:b::c:::dr)rr
s:::rs(:)(:*)))rr)rr)rr
rrmr^rsrPrudz%s+z(%s+)(z)(z*)r)r5r:rUrr6r#rLr)rrGr1rr`s     rtest_re_findallzReTests.test_re_findallsD%0"5"AlO3	HF!!"**T6":"4
6!!"**VV"<"4
6!!"**Y"?"F
H	H%a
&6	-8P!-02	NF!!"**UF";"7
9!!"**Wf"="7
9!!"**Z"@"L
N
	N2	9AQBa%C%&C0FRZZ	6:QCLIRZZ!V<q"clKRZZq!(<fE "g1v2w7
9
	9rcT|jtjddgdy)Nz(a|(b))aba)rsr)rPrPr!r5r:rUrhs rtest_bug_117612zReTests.test_bug_117612s J69	;rc4
dtdfD]}|jtjd|j	d|jtjd|j	d|jtjd|jdd|jtjd|jdd|jtjd|jddddt
dtdtdfD]}|jtjd|j	d|jtjd	|j	d
|jtjd	|jdd|jtjd	|jdd|jtjd	|jddddD]}|jtj||j	d|jtjd
|z|j	|f|jtjd
|z|jd||jtjd
|z|jd||jtjd
|z|jdd||ftjd}|j|jdj	d|j|jdj	d|j|jdj	d|j|jdj	d|j|jdj	ddtjd}|j|jdjdddd|j|jdjdddd|j|jdjdddd y)!Nrsr(a)rsrr]rsrsrKs(a))rK)rKrKrz(%s)z
((a)|(b))(c)?)rsrsNNrP)rPNrPNac)rsrsNrubc)rPNrPrur)rPrrPru!(?:(?P<a1>a)|(?P<b2>b))(?P<c3>c)?rmr^rsNNa1b2c3)NrPN)rsNru)
rr5r:rggroupsrzr#rLrr<)rrGrsrs    r
test_re_matchzReTests.test_re_matchs1S6k	NFRXXc6299;R@RXXeV4;;=vFRXXeV4::1=sCRXXeV4::1=sCRXXeV4::1a@*M	NAdGYt_j6FF	QFRXXdF3::<bARXXff5<<>HRXXff5;;A>ERXXff5;;A>ERXXff5;;AqA<P	Q2	JARXXa^224b9RXXfqj!4;;=tDRXXfqj!4::1=qARXXfqj!4::1=qARXXfqj!4::1a@1a&I	Jjj)3..02HI3..02HI4//13HI4//13HI4//35HIjj<=3--aA68IJ3--dD$?*	,4..q$:<LMrcXGdd}tjdd}|j|jd|j|jdd|j|jdd|j|j|dd|j	t
|jd|j	t
|jd	|j	t
|jdd
z|j	t
|j|dd
z|j	t
|jd|j|jddd
|j|j|d|dd
y)NceZdZdZdZy)!ReTests.test_group.<locals>.Indexc||_yrvalue)rr6s  r__init__z*ReTests.test_group.<locals>.Index.__init__s	"
rc|jSrr5rhs r	__index__z+ReTests.test_group.<locals>.Index.__index__szz!rN)rrrr7r9rrrIndexr3s
#
"rr:z(a)(b)rkrr]rsr^r1rmrPrs)r:rgr5rzr9r)rr:rs   r
test_groupzReTests.test_groups8	"	"
HHXt$D)T*S)q*C0*aggr2*aggq1*aggq$w7*agguQW~>*aggs3A
3q584jArctjd}|jd}|j|dd|j|dd|j|dd|jdj	|d|j|dd|j|d	d|j|d
d|j|dd|jtd5|d
ddd|jtd5|dddd|jtd5|dddd|jtd5|dddd|jtd5|dddd|jtd5|dddd|jtd5dj	|ddd|jd}|j|dd|j|dd|j|dd|jdj	|d|j|dd|j|d	d|j|d
d|j|dd|jt5d	|d<ddd|jtt|y#1swYxYw#1swYxYw#1swYxYw#1swYxYw#1swYxYw#1swYxYw#1swY\xYw#1swYxYw)Nr*rsr,r-r.za1={a1} b2={b2} c3={c3}za1=a b2=None c3=Nonerr]rmr^z
no such grouprr;rrt)rza1={a2}r(ruza1=a b2=None c3=c)
r:r<rgr5
format_maprrr9	TypeErrorlen)rrrs   rtest_match_getitemzReTests.test_match_getitemsjj<=IIcN4#&4$'4$'2==a@BXY1s#1s#1t$1t$

#
#J
@	
cF	

#
#J
@	
bE	

#
#J
@	
aD	

#
#J
@	
dG	

#
#J
@	
dG	

#
#J
@	
fI	

#
#J
@	$  #	$
IIdO4#&4$'4#&2==a@BUV1t$1s#1t$1s#

y
)	AaD		
)S!,=													$	$		s`1K'K49LLL%L(	L5=M'K14K>LLL%(L25L?McH|jtjddjddt	dfD]6}|jtjd|jd8dtdt
dtdfD]6}|jtjd|jd8dD]F\}}|d	||z}|jtj|||zjdH|jtjd
djd|jtjd
djd|jtjddjd|jtjddjd|jtjddjd|jtjdd|jtjdd|jtjdd|jtjdd|jtjddjd|jtjddjd|jtjddjd|jtjdjdddjd|jtjd
jdddjd|jtjd
jdddjdy) Nrsrtrkza|abrlsabsa|ab)uàßuабu𝒜𝒞rz.*?$rorbz.*?za.*?babbaxxbrrrczabc$zabc
zabc\Zz(?m)abc$z	ab(?=c)cdabcdz
ab(?<=b)cdz
(?=a|ab)abr)r]r^r?endposr\)
r5r:	fullmatchrerr#rLrrfr<)rrGrsrPrs     rtest_re_fullmatchzReTests.test_re_fullmatchs(dC0557@AdGm	KFR\\'6:??A6J	KQuXy'7E9JJ	LFR\\(F;@@BFK	LF	DDAqq1u%AR\\!QU388:FC	D	
gu5::<fEfe499;VDh5::<fEh6;;=vFh7<<>G",,ud34",,w89",,x9:",,{G<=lF;@@BFKmV<AACVLmT:??A6JJJu''Aa'@EEG	QJJw))&a)BGGI6	SJJv((Qq(AFFH&	Rrc$|jtjddjd|jtjddjd|j	tjdd|j	tjdd|jtjdd	jd
|jtjddjd|jtjd
djd|jtjd
djdtj
d}|j|jdjd|j|jdjd|j	|jd|j	|jddj
dtddD}d|z}|jtj|djdy)Nz^(\()?([^()]+)(?(1)\))$r%)rrsrsNrsza)z(az^(?:(a)|c)((?(1)b|d))$rkrsrPcd)Nrz^(?:(a)|c)((?(1)|d))$r!z(?P<g1>a)(?P<g2>b)?((?(g2)c|d))rorsrPruad)rsNrabdr(rc3*K|]}d||fz
ywrrrs  rrz2ReTests.test_re_groupref_exists.<locals>.<genexpr>Vrrr]rz(?:%s)(?(200)z)rr)	r5r:rgr/rfr<rrre)rprs   rtest_re_groupref_existszReTests.test_re_groupref_exists<s"<eDKKM#	%"<cBIIK$	&"((#=tDE"((#=tDE":DAHHJ#	%";TBIIK$	&":DAHHJ$	&":C@GGI"	$
JJ89..0(	*--/)	+!''%.)!''$-(hhKq'9JKK#%#w/446?rc|jddd|jddd|jddd|jd	d
d|jdd
d|jddd|jddd|jddd|jddd|jddd|jddd|jddd|jddd|jdddy)Nz(?P<a>)(?(0)a|b)zbad group numberrz()(?(-1)a|b)rrz()(?(+1)a|b)rz()()()()()()()()()()(?(1_0)a|b)rz
()(?( 1 )a|b)ru
()(?(㊀)a|b)ru()(?(¹)a|b)ru
()(?(१)a|b)rz()(?(1rz()(?(1)a"missing ), unterminated subpatternrmz
()(?(1)a|bz()(?(1)a|b|cz/conditional backref with more than two branchesz
()(?(1)a|b|c)z	()(?(2)a)rrrhs rtest_re_groupref_exists_errorsz&ReTests.test_re_groupref_exists_errorsZs@24FKA1	FA1	F8BB	H/BA	G/BA	GA1	F/BA	Gy=q	B{CQ	H}CQ	H ./1	3	
/ ./1	3	
|:A	?rctdD]5}|j|5tjd|zddd7y#1swYBxYw)N)codez()(?(1)\x%02x?))rr=r:r<rrs  r&test_re_groupref_exists_validation_bugz.ReTests.test_re_groupref_exists_validation_bugysOs	3A1%
3

-12
3
3	3
3
3sAA	cxddlm}|jdd|zdd|zd|jd|zd|zd	y)
Nr)	MAXGROUPSz()z\g<%s>rzinvalid group reference %dr^z(?P<a>)(?(%d))r)
re._constantsrbrHrC)rrbs  rtest_re_groupref_overflowz!ReTests.test_re_groupref_overflow~sJ+i)&;T <y H!	M09<;iG	Mrc^|jtjddjd|jtjddjd|j	tjdd|j	tjdd|jtjd	d
jd|jtjdd
jd|jdddy)Nz^(\|)?([^()]+)\1$z|a|)rrsz^(\|)?([^()]+)\1?$rsrOza|z|az^(?:(a)|c)(\1)$aar'z^(?:(a)|c)(\1)?$ruNNz(abc\1)rr)r5r:rgr/rfrCrhs rtest_re_grouprefzReTests.test_re_grouprefs"6>EEG#	%"7=DDF$	&"((#7>?"((#7>?"4d;BBD#	%"5s;BBD%	'	
z+JANrcr|jtjddjdddy)N#(?P<first>first) (?P<second>second)first secondfirstsecond)rlrm)r5r:rg	groupdictrhs rtest_groupdictzReTests.test_groupdicts0"G"022;)+")H=	?rc|jtjddjdd|jtjddjddy)	Nrjrkz\2 \1 \g<second> \g<first>zsecond first second firstz#(?P<first>first)|(?P<second>second)rlz
\2 \g<second> )r5r:rgexpandrhs rtest_expandzReTests.test_expands^"G"02#)6*G#H4	6	
"G")+#)6*:#;	rc|jtjdd|jtjdd|jtjdd|jtjdd|jtjddj	dd|jtjd	dj	dd|jtjd
dj	dd|jtjddj	dd|jtjddj	dd|jtjd
dj	dd|jtjddj	dd|jtjddj	dd|jtjdd|jtjdd|jtjdd|jtjdd|jtjdd|jtjdd|jtjdd|jtjdd|jtjdd|jtjdd|jtjdd|jtjdd|jtjdd|jtjdd|jtjdd|j
ddd y)!Nz	^(\w){1}$roz
^(\w){1}?$z^(\w){1,2}$z^(\w){1,2}?$z	^(\w){3}$r]ruz^(\w){1,3}$z^(\w){1,4}$z^(\w){3,4}?$z
^(\w){3}?$z^(\w){1,3}?$z^(\w){1,4}?$z^x{1}$r`z^x{1}?$z^x{1,2}$z	^x{1,2}?$z^x{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{}zx{2,1}z"min repeat greater than max repeatrm)rfr:rgr5rz
assertTruerCrhs rtest_repeat_minmaxzReTests.test_repeat_minmaxs"((<78"((=%89"((>59:"((?E:;,6<<Q?E.%8>>qA3G.%8>>qA3G/59??BCH-7==a@#F/59??BCH/59??BCH/59??BCH"((9e45"((:u56"((;67"((<78E23e45e45e45u56U34u56u56u56"((8U34512yCQ	Hrcb|jtjdjd|jtjdjtj
tjz|jtjdjd|jtjdji|jtjdjddd|jtjddjd|jtjddjd|jtjddjd|jtjddjd	|jtjddjtjd}|jt|jd
dg|j|jdd|j!t"5d|jd<ddd|j|jddy#1swY)xYw)Nz
(?i)(a)(b)rmz(?i)(?P<first>a)(?P<other>b)r])rlotherr%rsr)rtrtrlry)r5r:r<r8flagsrUr/
groupindexrgr?rJrGregsrvsortedr9rA)rrVs  rtest_getattrzReTests.test_getattrsL199<HL177EL188!<L1<<bA$BCNN#$q1	3	
%-1115%-44a8%-44c:%-224DE,//0
JJ67-/ABg.2


y
)	&$%ALL!	&g.2	&	&s-J%%J.c|jtjddjdd|jtjddjdd|jtjddtjjdd|jtjddtjjdd|jtjddtj
jd	d
|jtjdd
tj
jd	d
|j
tjddtj
|jtjdd
jdd|jtjddjdd|jtjdd
tjjdd|jtjddtjjdd|jtjddtj
jd	d|jtjddtj
jd	d|j
tjddtj
|jtjddjd	d|jtjddjd	d|jtjddtjjd	d|jtjddtjjd	dy)Nz\b(b.)\bzabcd abc bcd bxr]bxz\B(b.)\Bzabc bcd bc abxdz^abc$z
abc
rroz	^\Aabc\Z$s\b(b.)\bsabcd abc bcd bxsbxs\B(b.)\Bsabc bcd bc abxds^abc$s
abc
abcs	^\Aabc\Z$z\d\D\w\W\s\Sz1aa! as\d\D\w\W\s\Ss1aa! a)r5r:rdrzASCIIMrfLOCALErhs rtest_special_escapeszReTests.test_special_escapess;#466;eAh	F;#466;eAh	F;#4bhh@@Ea$	P;#4bhh@@Ea$	P8Y=CCAFN<=CCAFN"))L)RTTBC<#577<uQx	H<#577<uQx	H<#5ryyBBG%(E	S<#5ryyBBG%(E	S9j"$$?EEaH&Q=&"$$?EEaH&Q"))M:rttDE?#+--2U1Xx	A#3#,..3eAh		C?#+RXX77<uQx	K#3#,bii99>q9	Nrc|jddd|jtjddj	d|jtjdd|jtjddj	d|jtjdd	j	d	|jtjdd
|jtjddj	d|jtjdd
|jtjddj	d|jtjdd
tjdD]N}|j|5|jtjtjd|zdddPdD]N}|j|5|jtjtjd|zdddPy#1swYxYw#1swYgxYw)Nrzbad escape (end of pattern)rz\(r)rz[\]]][z[a\-c]-rPz[\^a]+za^!ceghijklmopqyzCEFGHIJKLMNOPQRTVXYz\%c$ceghijklmopqyzABCEFGHIJKLMNOPQRTVXYZz[\%c])rCr5r:rgrzrfpurger=r9r;r<)rrus  rtest_other_escapeszReTests.test_other_escapesst%BAF%-335s;"((5#./%.446='3/557="((7C01)S17793?"((9c23)T288:DA"((9c23

4	DAa
D!!"((BJJ
C
D
D	D8	FAa
F!!"((BJJ1E
F
F	F
D
D
F
Fs3I')3I3'I0	3I<	c|jtjdd|jtjdd|jtjdd|jtjdd|jtjdd|jtjd	d
|jtjd	d|j	dd
d|j	dd
d|j	ddd|j	ddd|j	ddd|j	ddd|j	dd
d|j	dd
d|j	ddd|j	ddd|j	ddd|j	dd d!|j	d"d d|j	d#d$d!|j	d%d$d|j	d&d'd!|j	d(d'dy))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 {rmz[\N]r^z\N{zmissing character namez[\N{rz\N{}z[\N{}]z\NSNAKE}z
[\NSNAKE}]z\N{SNAKEzmissing }, unterminated namez
[\N{SNAKE]z[\N{SNAKE]}z!undefined character name 'SNAKE]'r]z\N{SPAM}zundefined character name 'SPAM'rz
[\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}])rvr:rgrfrCrhs rtest_named_unicode_escapesz"ReTests.test_named_unicode_escapess!6<=!6<="((#8#>?|<="Q!)+	,	
!N!$&	'"((#P#&(	)	
uk15wQ7v'?Cw(@!Dw(@!Dy*BAF{K;}k1={=q	B}=q	B~BA	G{@!	E}@!	E8KQ	P:KQ	P57GK79I1Mrc|jtjddjdd|j	tj
dd|j	tjdd|j
tj
dd|jtjdd|jtjdd|jttjddd|jttjddd	|jttjdd
d	|jttjddd	|jttjdd
dy)Nz	\b(abc)\bror]r\Brrsrmrrqz   )
r5r:rdrzrvrgassertFalserfrBrUrhs rtest_string_boundarieszReTests.test_string_boundaries7sL<7==a@	 	
./		%/0%/0	
"))E2./	
"))E2./	
RZZs34a8RZZs34a8RZZs34a8RZZu56:RZZs34a8rc0|jtjddjddddj	tttdddz}|jtj|d	jd	y)
Nu
([∢∣])u∢r]z[%s]rr]u!)r5r:rgrzrmaprrrrLs  rtest_bigcharsetzReTests.test_bigcharsetQst"4"*,,1E!Hh	@RWWSeC&<=>>!X.446ArctjdjdtdD}|j	|jd|j	|jdy)Nrc3&K|]	}d|zyw)z%dNr)rr1s  rrz,ReTests.test_big_codesize.<locals>.<genexpr>Ys >Aa >s'10009999)r:r<rrrvrgrs  rtest_big_codesizezReTests.test_big_codesizeWsKJJsxx >u >?@((rc|jtjddtjj	dd|jtjddtjj	ddy)Nza.bza
brza.*bza

b)r5r:rgDOTALLrzrhs rtest_anyallzReTests.test_anyall]s`%;AA!D	!&(BII>DDQG!	#rcv|jtjddjdd|jtjddjdd|jtjddjdd|jtjddjdd|jtjd	d
jdd|jtjddjdd|jtjd
d
jdd|jtjdd
jdd|jtjddjdd|jtjddjdd|jtjddjdd|j	tjdd|jtjdd|j	tjdd|jtjdd|j	tjdd|jtjdd|j	tjdd|j	tjdd|jtjdd|j	tjddy)Nz
(a(?=\s[^a]))a br]rsz(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]))za dz(a)(?!\s\1)z(a)(?!\s(abc|a))z(a)b(?=\1)ar z(a)b(?=\1)cabacz(?:(a)|(x))b(?=(?(2)x|c))croz(?:(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))r5r:rgrzrvrfrhs rtest_lookaheadzReTests.test_lookaheadcs"2E:@@CSI"3U;AA!DcJ"3U;AA!DcJ"4f=CCAFL.%8>>qA3G/6:@@CSI"5u=CCAFL"2E:@@CSI"3U;AA!DcJ.%8>>qA3G"5u=CCAFL	
78"((>6:;!>FG"((#@%HI!>FG"((#@%HI!>FG!8%@A"((#:EBC!8%@Arc0|jtjdd|jtjdd|jtjdd|jtjdd|jtjdd|jtjdd	|jtjd
d|jtjdd	|jtjdd|jtjd
d|jtjdd|jtjdd|jtjdd|j	tj
tjd|jtjdd|jtjdd|j	tj
tjd|j	tj
tjd|j	tj
tjd|j	tj
tjdy)Nz	ab(?<=b)croz	ab(?<=c)cz	ab(?<!b)cz	ab(?<!c)cz(a)a(?<=\1)caacz(a)b(?<=\1)aabaaz(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))rvr:rgrfr9r;r<rhs rtest_lookbehindzReTests.test_lookbehindsu56"((<78"((<78u56%89"((?F;<"((?E:;&9:"((#A5IJ"((#A5IJ!?GH"((#A5IJ!?GH"((BJJ0HI"((#;UCD!95AB"((BJJ0DE"((BJJ0MN"((BJJ0KL"((BJJ0IJrc4
|jtjddtjj	dd|jtjddtjj	dd|jtjddtjj	dd|jtjd	d
tjj	dd
|jtjddtjj	dd|jtjdd
tjj	dd
|jtjd
dtjj	dd|jtjddtjj	dd|jtjddtjj	dd|jtjddtjj	dddjdjcxk(rdk(sJJ|j
tjddtj|j
tjddtj|j
tjddtj|j
tjddtjdjdjcxk(rdk(sJJ|j
tjddtj|j
tjddtj|j
tjddtj|j
tjddtjdjdjcxk(rdk(sJJ|j
tjddtj|j
tjddtj|j
tjddtj|j
tjddtj|j
tjd dtj|j
tjd dtjd!jd"jcxk(rd#k(sJJ|j
tjd$d"tj|j
tjd%d!tjy)&NroABCrrsABCz	(a\s[^a])rr]z
(a\s[^a]*)za bbz
(a\s[abc])z(a\s[abc]*)z	((a)\s\2)rz
((a)\s\2*)rz((a)\s(abc|a))z((a)\s(abc|a)*)KKkz\u212arVſrz\u017fвᲀВz\u0412z\u0432z\u1c80ſtstSTz\ufb05z\ufb06)r5r:rgrrzlowerrvupperrhs rtest_ignore_casezReTests.test_ignore_cases"%5;;A>F&&"$$7==a@&I,rtt<BB1EuM->DDQGP-=CCAFN.&"$$?EEaH&Q,rtt<BB1EuM->DDQGP"3UBDDAGGJER"4fbddCII!LfUyy{hnn.5#5555x67x67C67C67yy{hnn.5#5555x67x67C67C67~~8>>#3?x????Hbdd;<Hbdd;<Hbdd;<Hbdd;<Hbdd;<Hbdd;<~~8>>#3;t;;;;Hbdd;<Hbdd;<rc$|jtjddtj|jtjddtj|jtjddtj|jtjddtj|jtjddtj|jtjddtj|jtjddtj|jtjddtjd	j	d
j	cxk(rdk(sJJ|jtjdd
tj|jtjd
d
tj|jtjdd	tj|jtjddtjdjdjcxk(rdk(sJJ|jtjddtj|jtjddtj|jtjddtj|jtjddtjdjdjcxk(rdk(sJJ|jtjddtj|jtjddtj|jtjddtj|jtjddtj|jtjddtj|jtjddtjdjdjcxk(rdk(sJJ|jtjddtj|jtjddtjy) Nz[19A]rz[19a]rss[19A]As[19a]rKrrrz[19K]z[19k]z
[19\u212a]rVrrz[19S]z[19s]z
[19\u017f]rrrz
[19\u0412]z
[19\u0432]z
[19\u1c80]rrrz
[19\ufb05]z
[19\ufb06])rvr:rgrrrrhs rtest_ignore_case_setzReTests.test_ignore_case_setsP356356356356D"$$78D"$$78D"$$78D"$$78yy{hnn.5#55558RTT:;8RTT:;RTT:;RTT:;yy{hnn.5#55558RTT:;8RTT:;RTT:;RTT:;~~8>>#3?x????"$$?@"$$?@"$$?@"$$?@"$$?@"$$?@~~8>>#3;t;;;;"$$?@"$$?@rcd|jtjddtj|j	tjddtj|jtjddtj|j	tjddtj|jtjddtj|j	tjdd	tj|jtjd
d	tj|j	tjd
dtj|jtjddtj|jtjdd
tj|jtjddtj|jtjdd
tj|jtjddtj|jtjddtj|jtjddtj|jtjddtjdjdjcxk(rdk(sJJ|jtjddtj|jtjddtj|jtjddtj|jtjddtjdj
dj
cxk(rdk(sJJ|jtjddtj|jtjddtj|jtjddtj|jtjddtjdj
d j
cxk(rd!k(sJJ|jtjd"dtj|jtjd"d tj|jtjd#d!tj|jtjd#d tj|jtjd$d!tj|jtjd$dtjd%j
d&j
cxk(rd'k(sJJ|jtjd(d&tj|jtjd)d%tjy)*Nz[9-a]_z[9-A]s[9-a]_s[9-A]z[\xc0-\xde]×÷z[\xe0-\xfe]z[\u0430-\u045f]uѐuЀz[\u0400-\u042f]z[\U00010428-\U0001044f]u𐐨u𐐀z[\U00010400-\U00010427]rrrz[J-M]z[j-m]z[\u2129-\u212b]rVrrz[R-T]z[r-t]z[\u017e-\u0180]rrrz[\u0411-\u0413]z[\u0431-\u0433]z[\u1c80-\u1c82]rrrz[\ufb04-\ufb05]z[\ufb06-\ufb07])rvr:rgrrfrrrhs rtest_ignore_case_rangezReTests.test_ignore_case_rangesT356"((8S"$$78D"$$78"((9dBDD9:>?"((>6244@A>?"((>6244@A!3XrttDE!3XrttDE!3XrttDE!3XrttDE!;\244PQ!;\244PQ!;\244PQ!;\244PQyy{hnn.5#55558RTT:;8RTT:;!3S"$$?@!3S"$$?@yy{hnn.5#55558RTT:;8RTT:;!3S"$$?@!3S"$$?@~~8>>#3?x????!3XrttDE!3XrttDE!3XrttDE!3XrttDE!3XrttDE!3XrttDE~~8>>#3;t;;;;!3XrttDE!3XrttDErcn|jtjddjddy)Nz(\s)rqr]r5r:rgrzrhs r
test_categoryzReTests.test_categorys('3/55a8#>rc|jtjddjdd|jtjddjddy)Nz\s([^a]) br]rPz	\s([^a]*)z bbbbr5r:rdrzrhs rtest_not_literalzReTests.test_not_literalsN;5;;A>D<7==a@$Grc
ttdj}|jt5tjd}ddd|jj|td|jtjd|td|jt5tjd}ddd|j|j|td|jt5tjd}ddd|j|j|td	|jt5tjd
}ddd|j|j|td|jt5tjd}ddd|j|j|td|jtjd
|td|jt5tjd}ddd|j|j|td|jt5tjd}ddd|j|j|td|jtjd|td|jt5tjd}ddd|j|j|td|jt5tjd}ddd|j|j|td|jtjd|td|jt5tjd}ddd|j|j|td|jt5tjd}ddd|j|j|tdy#1swYxYw#1swYxYw#1swYxYw#1swYtxYw#1swY$xYw#1swYxYw#1swYUxYw#1swYxYw#1swYxYw#1swYxYw#1swYxYw)Nz[0-9--1]z
-./0123456789z[--1]z-./01z[%--1]z
%&'()*+,-1z[%--]z	%&'()*+,-z[0-9&&1]z&0123456789z[\d&&1]z[&&1]z&1z[0-9||a]z0123456789a|z[\d||a]z[||1]z1|z[0-9~~1]z0123456789~z[\d~~1]z[~~1]z1~z[[0-9]|]z0123456789[]z[[:digit:]|]z:[]dgit)
bytesrdecodeassertWarns
FutureWarningr:r<r5rUr+)rrVrVs   rtest_possible_set_operationsz$ReTests.test_possible_set_operationss%*$$&


m
,	(

;'A	(1tO'<=Ha0$w-@


m
,	&

9%A	&1tL'9:


m
,	%

8$A	%1tK'89


m
,	(

;'A	(1tM':;


m
,	'

:&A	'1tM':;Ha0$t*=


m
,	(

;'A	(1tN';<


m
,	'

:&A	'1tN';<Ha0$t*=


m
,	(

;'A	(1tM':;


m
,	'

:&A	'1tM':;Ha0$t*=


m
,	(

;'A	(1tN';<


m
,	,

?+A	,1tI7S	(	(	&	&	%	%	(	(	'	'
	(	(	'	'
	(	(	'	'
	(	(	,	,sSS,!S9>TT'T T-T:-U9UU!S),S69TTT T*-T7:UUU!U*c|jtjddjdd|jtjddjddy)Nz\s(b)rr]rPza\sza rrrhs rtest_search_coveragezReTests.test_search_coverageJsN8T288;SA64066q94@rc|||}dt|f}n||td|||}|j||j|j	||j|j|y)Nrz@If match is not None, span should be specified (and vice versa).)rBrrvr5rzre)rr8textrgrematcherrs       rassertMatchzReTests.assertMatchNs|=T\Es4y>D
]dl12
2GT"E*4(rz!"%',/:;<=>@_`cNdjdtdD}|D]z}|jtj|||jdtj|zdz||jdtj|z|||jtj||dD]*}|jtj|ddd	,|j}|jtj||y)
Nrc32K|]}t|ywr)rrs  rrz)ReTests.test_re_escape.<locals>.<genexpr>_s/qCF/sr]rrz(?x)z-.]{}r]r)rrrr:escaper5
LITERAL_CHARS)rrVru
literal_charss    rtest_re_escapezReTests.test_re_escape^sGG/E#J//	7ARYYq\1-S299Q</#5q9Vbiil2A6	7	
1q)	5ARYYq\"1-t4	5**
=1=Arcttd}|D]}t|g}|jtj|||jdtj|zdz||jdtj|z||jtj||dD]6}t|g}|jtj|ddd8|jjd}|jtj||y)	Nr][]s(?x)s-.]{}r]\ascii)rrrr:rr5rencode)rrVrrPrs     rtest_re_escape_byteszReTests.test_re_escape_bytesjs%*	8Aqc
ARYYq\1-TBIIaL047;Wryy|3Q7		8
	
1q)	6Aqc
ARYYq\"1-u5	6**11':
=1=Arcd}tj|}|j|||j|||jdtjdz|ddtjy)Nuxxx☠☠☠xxxz.%s+.☠ux☠☠☠x)rmr)r:rr5rrd)rrV	s_escapeds   rtest_re_escape_non_asciiz ReTests.test_re_escape_non_asciixs`&IIaL	A&A&299X#66/	Drc>djd}tj|}|j|||j	||tj
tjdjd|}|jt
|dy)Nu	y☠y☠yzutf-8rrm)rr:rr5rrUrB)rrP	b_escapedress    rtest_re_escape_non_ascii_bytesz&ReTests.test_re_escape_non_ascii_bytessu$$W-IIaL	A&A&jj8??7#;<a@S1%rcddl}tjdtj}t	|j
dzD]7}|j
||}|j|}|j||9ddlm	}y)Nrza(?:b|(c|e){1,2}?|d)+?(.)r])_compile)
pickler:r<UNICODErHIGHEST_PROTOCOLdumpsloadsr5r)rroldpatprotopicklednewpatrs       r
test_picklingzReTests.test_picklingsl7D622Q67	-Ell651G\\'*FVV,	-
	 rc`ddl}tjd}|j|j|||j|j	|||jd}|j|j|||j|j	||y)Nrz (?P<int>\d+)(?:\.(?P<frac>\d*))?z12.34)copyr:r<r-deepcopyrg)rrrVrs    rtest_copyingzReTests.test_copyings|JJ:;

diilA&

dmmA&*
GGG

diilA&

dmmA&*rc|jtjtj|jtjtj
|jtjtj|jtjtj|jtjtjyr)r5r:r
IGNORECASELrr	MULTILINErrrVERBOSErhs rtest_constantszReTests.test_constantsszr}}-ryy)r||,ryy)rzz*rctjtjtjtjtj
tjfD]'}|jtjd|)tjtjtjtjtj
tjfD]'}|jtjd|)y)Nz	^pattern$s	^pattern$)
r:rrrrrr{rvr<r)rflags  r
test_flagszReTests.test_flagssTT244rttRTT2448	;DOOBJJ{D9:	;TT244rttRTT2448	<DOOBJJ|T:;	<rc	rdD]r}|dkr2|jtjd|zt||jtjd|zt|dz|jtjd|zt|dz|jtjd|zt||jtjd	|zt|dz|jtjd
|zt|dz|dkr|jtjd
|zt||jtjd|zt|dz|jtjd|zt|dz|jtjd|zt||jtjd|zt|dz|jtjd|zt|dzu|jtjdd|jtjdd|jtjdd|jtjdd|j	ddd|j	ddd |j	d!d"d|j	d#d"d|j	d$d%d|j	d&d%d|j	d'd(d|j	d)d(d|j	d*d+dy),Nrr @rrr]rir]\%03o\%03o00\%03o88\x%02x\x%02x0\x%02xzzrz\u%04xz\u%04x0z\u%04xzz\U%08xz\U%08x0z\U%08xzrrrrz\01rz\018z8z\5670octal escape value \567 outside of range 0-0o377rz\911invalid group reference 91r]z\x1incomplete escape \x1z\x1zz\u123incomplete escape \u123z\u123zz	\U0001234incomplete escape \U0001234z
\U0001234zz
\U00110000bad escape \U00110000rvr:rgrrCr_s  rtest_sre_character_literalsz#ReTests.test_sre_character_literalssR	BA3wAs1v >?QAs
 CDQAs
 CDQA ?@aQ DEaQ DE7{QA ?@aQ DEaQ DEOOBHHY]CF;<OOBHHZ!^SVCZ@AOOBHHZ!^SVCZ@A	B	
/01201'23w 012	4	
w(DaHv'?Cw(@!Dx)CQGy*DaH|-KQO}.LaP}.FJrc	dD]}|dkr|jtjd|zt||jtjd|zt||jtjd|zt||jtjd|zt||jtjd|zt||jtjd|zt||jtjd	|zt||jtjd
|zt||dkr|jtjd|zt||jtjd
|zt||jtjd|zt||jtjd|zt||jtjd|zt|dz|jtjd|zt|dz|j	ddd|j	ddd|j	ddd|j	ddd|j	ddd|j	dd d|jtjd!d"y)#Nrr][\%o][\%o8][\%03o][\%03o0][\%03o8][\x%02x]	[\x%02x0]	[\x%02xz]rz[\u%04x]z	[\u%04x0]z	[\u%04xz]z[\U%08x]z	[\U%08x0]rz	[\U%08xz]rz[\567]rr]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_literalsz)ReTests.test_sre_character_class_literalssuR	DA3wAs1v >?QA ?@aQ @Aq#a& ABq#a& ABq#a& AB)93q6 BC)93q6 BC7{q#a& AB)93q6 BC)93q6 BCOOBHH[1_c!f=>OOBHH\A%5s1vczBCOOBHH\A%5s1vczBC!	D"	
y 012	4	
y*:A>y*BAF{,FJ0NPQR0H!L!;\JKrc	dD]}|jtjd|zjt	|g|jtjd|zjt	|gdz|jtjd|zjt	|gdz|jtjd|zjt	|g|jtjd|zjt	|gdz|jtjd	|zjt	|gd
z|jtjtjd|jtjtjd|jtjd
d|jtjdd|jtjdd|jtjdd|jddd|jddd|jddd|jdddy)Nrrrrrrrrrr0r8rrrzs\u1234s
\U00012345s\0s\08s8s\01s\018s8s\567rrs\911r r]s\x1r!s\x1z	rvr:rgrrr9r;r<rCr_s  rtest_sre_byte_literalszReTests.test_sre_byte_literalss2	RAOOBHHhl%:%:%<eQCjIJOOBHHi!m%;%;%=uaSz$OPOOBHHi!m%;%;%=uaSz$OPOOBHHi!m%;%;%=uaSzJKOOBHHj1n%<%<%>qc
4PQOOBHHj1n%<%<%>qc
4PQ
	R	
"((BJJ
;"((BJJ?12(34'23845x 012	4	
x)EqIw(@!Dx)A1Erc	DdD]}|jtjd|zjt	|g|jtjd|zjt	|g|jtjd|zjt	|g|jtjd|zjt	|g|jtjd|zjt	|g|jtjd|zjt	|g|jtjd|zjt	|g|jtjd	|zjt	|g|jtjtjd
|jtjtjd|jdd
d|jddd|jdddy)Nr3r(r)r*r+r,r-r.r/s[\u1234]s[\U00012345]s[\567]rr]s[\911]r0s[\x1z]r!r9r_s  rtest_sre_byte_class_literalsz$ReTests.test_sre_byte_class_literalss2	OAOOBHHhl%:%:%<eQCjIJOOBHHi!m%;%;%=uaSzJKOOBHHj1n%<%<%>qc
KLOOBHHkAo%=%=%?sLMOOBHHkAo%=%=%?sLMOOBHHkAo%=%=%?sLMOOBHHlQ&6%>%>%@%*MNOOBHHlQ&6%>%>%@%*MN	O	
"((BJJ="((BJJ0@Az 012	4	
z+;Q?z+CQGrc|jddd|jddd|jddd|jddd|jddd	|jd
dd	|jdd
d	y)Nrzunterminated character setrz[^z[az[a-z[\w-b]zbad character range \w-br]z[a-\w]zbad character range a-\wz[b-a]zbad character range b-arrhs rtest_character_set_errorsz!ReTests.test_character_set_errorsst%A1Eu&BAFu&BAF	
v'CQGy*EqIy*EqIx)BAFrcB|jtjddjdd|jtjddj	dd|jtjddjddy)Nz(a)|(b)rPr]r;)r;r;)r5r:rgstartendrerhs rtest_bug_113254zReTests.test_bug_113254st*c288;R@*c266q92>*c277:HErc|jtjddj|j	tjddjd|j	tjddj
d|j	tjddj
d|j	tjddjdy)	Nz(a)?arsz(a)(b)?brkr]z(?P<a>a)(?P<b>b)?bz(?P<a>a(b))z((a)))rfr:rg	lastindexr5	lastgrouprhs rtest_bug_527371zReTests.test_bug_527371s"((8C0::;+d3==qA"7=GGM.$7AA3G(C0::A>rc|jtjdddzdzjdd|jtjdddzd	zddzzd
zjdd|jtjddd
zdzjdd|jtjdddzdzjddy)Nz.*?crrkrQri!Nz.*?cdirucdei#Ni Nrodeiaz(a|b)*?c)r5r:rgrArdrhs rtest_bug_418626zReTests.test_bug_418626#s	
&%*T/:>>qA5I'49S=d+B5+HIMMaP	 '5;t+;<@@CUK	
:uTz$?CCAFNrcdtjdzdz}|jtj|xrddy)Nru‹rr])r:rr5r<rs  rtest_bug_612074zReTests.test_bug_612074/s7		(##C'C.Q2rc`|jtjdddzjdd|jtjdddzdzjdd|jtjdddzdzjddy)Nz(x)*iPr1r]z(x)*yr2z(x)*?yrrhs rtest_stack_overflowzReTests.test_stack_overflow3s	
&%)4::1=sC'59S=9??BCH(E#IcM:@@CSIrcdD]9}dD]2}|j||dd|jd||ddd4;y)N*+?z{1,2}rrSznothing to repeatrz(?:rr^r)rrepsmods   rtest_nothing_to_repeatzReTests.test_nothing_to_repeat:sT*	?D
?&&s';':A?&&T3'?':A?
?	?rcdD]M}dD]F}||z}dD]:}dD]3}||zdvr||z}|jd||ddt|z5<HOy)NrP)rrSrR)rSrRr1zmultiple repeatr])rCrB)r
outer_reps	outer_modouter_op
inner_reps	inner_modinner_ops       rtest_multiple_repeatzReTests.test_multiple_repeatBs0		FJ)
F	%	1"8FJ%1F	$z1Z?$#-	#9..8X/N 11s8}3DF	FF
F		Frc|jtjdd|jtjdd|jtjdd|jtjdd|jtjdd|jtjddy)Nz(?:a?)*yrz(?:a?)+yz(?:a?){2,}yz	(?:a?)*?yz	(?:a?)+?yz(?:a?){2,}?y)rfr:rgrhs r test_unlimited_zero_width_repeatz(ReTests.test_unlimited_zero_width_repeatNs"((;45"((;45"((>378"((<56"((<56"((?C89rcd}d}d}d}td|fd|fd|fd|fd	g}|j|jjd
j|j	|jdgdd
fy)
Nc|Srrscannertokens  rs_identz%ReTests.test_scanner.<locals>.s_identXsE\rcd|zS)Nzop%srrds  r
s_operatorz(ReTests.test_scanner.<locals>.s_operatorYsv~(=rct|Sr)floatrds  rs_floatz%ReTests.test_scanner.<locals>.s_floatZsE%L%8rct|Sr)ryrds  rs_intz#ReTests.test_scanner.<locals>.s_int[s#e*#4rz[a-zA-Z_]\w*z\d+\.\d*rz=|\+|-|\*|/)z\s+Nrzsum = 3*foo + 312.50 + bar)	sumzop=r^zop*fooop+gs@rqbar)rrvrer8r5scan)rrgrirlrnres      rtest_scannerzReTests.test_scannerWs1=84
g&
'"
UO
Z(	
//3;;<&BC)*,.	/rcdD]p}|jtjd|zdjd|jtjd|zdjdry)N)rrSrQz
((.%s):)?zrrgza:z)rrsr5r:rgr/)rops  rtest_bug_448951zReTests.test_bug_448951ksk	*BRXXmB&6<CCE)
+RXXmB&6>EEG(
*	*rcD|jtjddjd|jtjddjd|jtjddjd|jtjddjd|jtjd	djd|jtjd
djd|jtjddjd|jtjd
djdy)Nz	^((a)|b)*ror=z^(([ab])|c)*)rurPz^((d)|[ab])*rPNz
^((a)c|[ab])*z^((a)|b)*?cz^(([ab])|c)*?drHz^((d)|[ab])*?cz^((a)c|[ab])*?crvrhs rtest_bug_725106zReTests.test_bug_725106ts=+u5<<>#	%.%8??A#	%.%8??A$	&/59@@B$	&-7>>@#	%"2F;BBD#	%"2E:AAC$	&"3U;BBD$	&rc|jtjddjd|jtjddjdy)Nz(a)(?:(?=(b)*)c)*rE)rsNz(a)((?!(b)*))*r+rvrhs rtest_bug_725149zReTests.test_bug_725149sR"5u=DDF$	&"2E:AAC*	,rcGddt}tj|d}|j|j	dy)NceZdZy)+ReTests.test_bug_764548.<locals>.my_unicodeN)rrrrrr
my_unicodersrrror)r{r:r<rfrg)rrrs   rtest_bug_764548zReTests.test_bug_764548s4##jjE*+#))E*+rctjdd}|j|Dcgc]}|jdc}gdtjd}|jddd}|j|Dcgc]}|jdc}gdtjd}|jddd}|j|Dcgc]}|jdc}gdtjd}|jddd}|j|Dcgc]}|jdc}gdtjd}|jdd	d
}|j|Dcgc]}|jdc}ddgycc}wcc}wcc}wcc}wcc}w)Nrrrrr]rrI)rJr?r^rr)r:rMr5rzr<)riteritemrs    r
test_finditerzReTests.test_finditers{{{5,/D9D$**Q-9+	-jj||L!R0D9D$**Q-9+	-jj||La|;D9D$**Q-9+	-jj||L|;D9D$**Q-9+	-jj||La|:D9D$**Q-9	'):
:
:
:
:sF0?F5F:3F?
Gct|jtjdtjdy)N
bug_926075s
bug_926075)assertIsNotr:r<rhs rtest_bug_926075zReTests.test_bug_926075s'L1M2	4rctd}|jtj|jdgdy)Nu[.。.。]za.b.crR)r5r:r<rrs  rtest_bug_931848zReTests.test_bug_931848s..G,227;&	(rctjdd}|jt|j	d|jtt|tjdjd}|j|jj	d|j|jy)Nz\sr)r]rm)r:rMr5nextrer9
StopIterationr<rerdrf)rrres   rtest_bug_581080zReTests.test_bug_581080s{{5%(d*E2-t4**U#++E2)..0&9'..*+rc
tjdd}|jt|j	d|jt|j	d|jtt|y)Nz.*asdfrG)rr)r:rMr5rrer9r)rrs  rtest_bug_817234zReTests.test_bug_817234sZ{{5&)d*F3d*F3-t4rcgd}|D]7}|jtjd|jd|9gd}|D]'}|j	tjd|)y)N)7u๘u0z^\d$r)uⅥu〹u₂u㊴)r5r:rgrzrf)rdecimal_digitsr1not_decimal_digitss    r
test_bug_6561zReTests.test_bug_6561sr
 	?ARXXgq177:A>	?$	4Abhhw23	4rc&ddl}dD]}|j|}|jtjdj	||jtjdj	|j
dy)NrbBuhHiIlLfdsblarr)arrayrfr:r<rgr5r/)rrtypecoderss    rtest_empty_arrayzReTests.test_empty_arraysr%	DHH%Abjj066q9:RZZ_2215<<>C	Drcd}d}tjd|ztjtjz}|j	d|z}|j|tjd|ztjtjz}|j	d|z}|j|tjd|ztj}|j	d|z}|j|tjd|ztj}|j	d|z}|j|tjd|z}|j	d|z}|j|tjd|z}|j	d|z}|j|tjd|z}|j	d|z}|j|tjd|z}|j	d|z}|j||jtjd|z||jtjd|z||jtjd	|z|tj|jtjd
|z||jtjd|z|tjd}|j|d
z|dtj5tjdt|jd|dddd|jd|z|d|jd|zdz|d|jd|z|d|jd|z|d|jd|z|d|jd|zdz|d|jd|zdz|d|jd|zdz|dy#1swYxYw) NuẠuạrrz(?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)r]r;sA(?i)z	(?s).(?i)rz(?i) z (?x)rz^(?i)z$|(?i)rmz(?:(?i)rr^z
(^)?(?(1)(?i)rz($)?(?(1)|(?i)r)r:r<rrrgrvrrCwarningscatch_warningssimplefilterBytesWarning)r
upper_char
lower_charrVqr3s      rtest_inline_flagszReTests.test_inline_flagss

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
CDJ!6
CDJ!6
BDDIJ
!:JGH!;ZNO?zF2C;
$
$
&	5!!'<8""8S!4	5	
{Z7a@w3g=sAF}z93Bw3S!<x*4c1=y:5;S!D;cA3J/*<sBCL	5	5s.QQctjd}|j|jddd|j|jddd|j|jdddtjdtj}|j|jddd	|j|jddd
|j|jdddy)zgTest that $ does not include \n
        $ matches the end of string, and just before the terminating \n$#za
b
za
b#
#za
b
cza
b
c#rz#
#za#
b#
#za#
b#
c#N)r:r<r5rFr	rs  rtest_dollar_matches_twicez!ReTests.test_dollar_matches_twices**S/S(3Z@S)4jAS$/8**S",,/S(4kCS)4lCS$/8rcttjd}tjd}|jt|jd|jt|jd|jt|j
dd|jt|j
dd|jt|j
dd|jt|j
dd|jt|j
dd|jt|j
ddy)Nr.r	rPrur
)r:r<r9rArgrF)rrbpats   rtest_bytes_str_mixingzReTests.test_bytes_str_mixing,sjjozz$)SYY5)TZZ5)SWWdC8)SWWc48)SWWdD9)TXXtS9)TXXsD9)TXXsC8rcdtjfD]}tjd|tjz}|j	|jdtjd|}|j	|jdtjdtjtjz}|j|jdtjdtj}|j|jdtjdtj}|j|jdtjd}|j|jddtjfD]}tjd|tjz}|j|jdtjd	|}|j|jd|jttjd	tj|jtjtjd
|jttjdtjtjz|jttjdtj|jttjdtj|jtjtjdy)
NrÀrz\wu(?a)Àz(?a)\w\ws(?u)\wz(?u)\wz(?au)\w)r:rr<rrvrgrrfr9rr;)rrzrs   rtest_ascii_and_unicode_flagz#ReTests.test_ascii_and_unicode_flag9s:_	/E**VUR]]%:;COOCIIf-.**UE*COOCIIf-.		/
jjBMM!9:#))F+,jjR]]3#))F+,jj)#))F+,jj##))F+,]	2E**Webmm&;<Ccii01**VU+Ccii01		2	
*bjj&"**E"((BJJ
;*bjj%bhh9NO*bjj)RXXF*bjj)RZZH"((BJJ
;rcBtj}tddD]}	t|gj	|}|j}||k(r5|j
|}t|dk7rU|j	||k7rjtjt|g}nd}d}tj|tjtjz}|r |j|j!|tjd|ztj}|r |j|j!|tj|tj}|r |j#|j!|tjdtj}|r |j|j!|tjd}|r |j|j!|tjd}|r |j#|j!||j%t&tjdtj|j%tj(tjd	|j%t&tjd
tjtj*z|j%t&tjdtj*|j%t&tjdtj|j%tj(tjdy#ttf$rY|wxYw)
Nrr]r]rs(?L)rs(?L)\wrz(?L)rs(?a)s(?aL))localegetpreferredencodingrrrrrrBr:rUnicodeErrorrAr<rrrvrgrfr9rr;r)rencrrusletterbletterrrs        rtest_locale_flagzReTests.test_locale_flagVsy))+sC	A

1#J%%c*'')a<!..-w<1$h>>#&'18yys,	GDjjryy2==89OOCIIg./jj47OOCIIg./jjr}}-cii01jj+OOCIIg./jj$OOCIIg./jj cii01*bjj"bii@"((BJJ7*bjj#ryy2887KL*bjj'288D*bjj'299E"((BJJ9=!),

s#0NN6NNNNc2|jtjdd|jtjdd|jtjddtj|jtjddtj|jtjdd|jtjdd|jtjdd|jtjdd|jtjd	dtj
|j
d
dd|j
d
dd|j
ddd|j
ddd|j
ddd|j
ddd|j
ddd|j
ddd|j
ddd|j
ddd|j
ddd|j
dd d!|j
d"d#d|j
d$d#d|j
d%ddy)&Nz(?i:a)bAbaBz(?-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'rz(?i-i:a)z(bad inline flags: flag turned on and offrz(?au:a)z9bad inline flags: flags 'a', 'u' and 'L' are incompatiblers(?aL:a)z(?-zmissing flagr^z(?-+z(?-zunknown flagz(?-iz	missing :z(?-i)z(?-i+z(?-izz(?i:rZr(?imissing -, : or )z(?i+z(?iz)rvr:rgrfrrrCrhs rtest_scoped_flagszReTests.test_scoped_flagssT23"((:t45"((;bmmDEdBMMBC"((#3T:;!1489@A!4nEFJKJA	O{:A	?zKQ	P{KQ	P	
v~q9w:w:wQ7xa8xa8x;w(LaPv':A>w(;Q?w:rcdD]9}|jtj|dzdtj;dD]9}|jtj|dzdtj;|jtjdd|jtjddtj|jtjdd|jtjdd	|jtjd
dtj|jtjdd|jtjd
d|jtjd
dy)Nz 	

rs) 	

rKz(?x) az (?x) az(?x) (?x) az a(?x: b) cz ab cz a(?-x: b) crz(?x) a(?-x: b) cz	(?x) a| brPrvr:rKr
)rspaces  rtest_ignore_spaceszReTests.test_ignore_spacess+"	HEOOBLLc2::FG	H<	JEOOBLLtRZZHI	JXs34YRZZ@A]C89]G<=^VRZZHI%7@A[#67[#67rc`|jtjddtj|jtjddtj|jtjdd|jtjddtj|jtjdd|jtjdd	|jtjd
dtj|jtjdd|jtjd
d|jtjd
dy)Nz#x
arss#x
arKz(?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
cza#y
bcz(?x)#x
a(?-x:#y
b)#z
cz
(?x)#x
a|#y
brPrrhs r
test_commentszReTests.test_commentssWc2::>?XtRZZ@A[#67_c2::FG%8#>?%;]KL%<i%'ZZ1	2%@)LM%6<=%6<=rctjd}|j|jdddtjd}|j|jdddtjd}|j|jd	d
dtjd}|j|jd
ddtjd}|j|jd
ddtjd}|j|jdddy)Nza(\w)zb\1r(r)za(.)uaሴubሴz..cy)Nr{rrs rrz'ReTests.test_bug_6509.<locals>.<lambda>rra5r{sa(\w)sb\1sacsbcsa(.)sasbs..cy)Nbytesrrs rrz'ReTests.test_bug_6509.<locals>.<lambda>rrsa5r)r:r<r5rFrs  r
test_bug_6509zReTests.test_bug_6509sjj".5jj 3Y?jj$7?jj#%0%8jj!(3X>jj!3U;XFrcv|jtjdd|jtjdd|jtjdd|jtjdd|jtjddy)Nz123.*-z123abc-u123é-u123€-u123􏿿-u
123é€􏿿-)rvr:rdrhs rtest_search_dot_unicodezReTests.test_search_dot_unicodesw		(I67		(J78		(L9:		(,<=>		(,FGHrcFtjd}|j|tjtj|}|j|tj|j	|||jttjdy)Nrandom patternr)r:r<assertIsInstancePatternr-r9rA)rr8same_patterns   rtest_compilezReTests.test_compilesk**-.grzz2zz'*lBJJ7

lG,)RZZ3rr])sizememusecd|z}tjd|}|j||j|j	||j|j|y)Nrsr)r:rdassertIsNotNoner5r@rA)rrrVrs    rtest_large_searchzReTests.test_large_searchsW
$JIIc1QD)$'rcd|z}tjdd|\}}|j|||j||dzy)Nrsrr])r:rr5)rrrVrLns     rtest_large_subnzReTests.test_large_subnsG
$Jwwr2q!1AD1H%rc|jtjdddg|jtjddj	dy)Nz	(?i)(a)\1uaa Ārsz
(?s).{1,3}uĀĀrl)r5r:rUrgrerhs rtest_bug_16688zReTests.test_bug_16688sE	
L+>F-@EEGPrcddz}|jtjd|jd|jtjd|jd|jtjd|jd|jtjd|jd|jtjd	|jd|jtjd
|jd|j	t
tjddd
zz|j	t
tjddd
zz|j	t
tjddd
zz|j	t
tjdddzdd
zfzy)Nr1順z.{65535})rrz	.{,65535}z
.{65535,}?z.{65536})rrz	.{,65536}z
.{65536,}?.{%d}rmr.{,%d}.{%d,}?z.{%d,%d})r5r:rgrer9
OverflowErrorr<)rrGs  rtest_repeat_minmax_overflowz#ReTests.test_repeat_minmax_overflowshv+v6;;=zJ,7<<>
K-8==?L+v6;;=zJ,7<<>
K-8==?L-X35FG-YC5GH-Z!S&5HI-[AsFAsFCS5STrc*|jdddy)Nz
(?P=<foo>)z#bad character in group name '<foo>'rrrhs r$test_backref_group_name_in_exceptionz,ReTests.test_backref_group_name_in_exception
s|Da	Irc*|jdddy)Nz
(?P<?foo>)z"bad character in group name '?foo'rrrhs rtest_group_name_in_exceptionz$ReTests.test_group_name_in_exceptions|CQ	HrcndD]}dD]}d|z|zdz}|jtj|tjj	ddg||j}|jtj|tjj	ddg|y)N)rQrRrSz{1}rTryzr)r3r)r5r:r<rrUr)rrUrVr8s    rtest_issue17998zReTests.test_issue17998s(	8D
8*s*T1  GRTT!:!B!B5!I"'g!7!..*  GRTT!:!B!B6!J"(w!8
8	8rc`dtdfD]b}tjd|}dt|jdt|j
d}|j
t||ddtdtdtdfD]b}tjd|}dt|jdt|j
d}|j
t||dttjd	d
\}}dt|jdt|j
d}|j
t||dt|jdt|j
d}|j
t||y)
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)zaa bbz# object; span=\(0, 2\), match='aa'>z# object; span=\(3, 5\), match='bb'>)
rr:rdr.rrassertRegexreprr#rLrr+rM)rrGrr8rlrms      rtest_match_reprzReTests.test_match_reprs`%q'99	/F		.&1AQ""DG$8$8G
T!Wg.	/(+;)< !12!"235	/F		/62AQ""DG$8$8G
T!Wg.	/R[[g>?
vL##T&\%>%>
	
eg.L##T&\%>%>
	
fw/rc|jtjddgd|jtjddgd|jtjddgd|jtjddgd	|jtjdd
dd|jtjdd
dd|jtjd
ddd|jtjddgd|jtjddgd|jtj
ddDcgc]}|j
c}gd|jtj
ddDcgc]}|j
c}gdycc}wcc}w)Nrza::bc)rrsrr)rz\b|:+)rrsrrr)rz(?<!\w)(?=\w)|:+)rrsrr)z(?<=\w)(?!\w)|:+)rsrr)rrz	-a-::-bc-z-a---bc-z(\b|:+)z[\1]z[]a[][::][]bc[])rrrrrz\b|\w+)r[r]r]r\r^r^rr)r[rtrr)r^rr)r5r:rrFrUrMrerrs  rtest_zerowidthzReTests.test_zerowidth8sq%13LM(G46QR"5w?ATU"5w?ATUsG4kB#w7D
GW=?PQHg68NOIw74	6	
BKK',JKq!&&(KA	CBKK	7,KLq!&&(LI	KLLs	G/
G4c>dD]}dD]}tjd|d|}|jd}|j|j	dd|j|j	dd	|j|j	d
dy)N){0,}rQrRz{1,187})rrQrSz^((x|y)rxyyzyrxyyr]rrmr2)r:r<rgr5rz)rr[r^rLrs     r
test_bug_2537zReTests.test_bug_2537Ls5	2H.
2JJ8DEGGG$  U3  R0  S1
2	2rcntjd}|j|jdddj	d|j|jdddj	d|j|j
dddj	d|j|jdddd	g|j|jdd
gd|j|jdddj
j	dy)
Nz(ab)abracadabrarr)rGr?rJ)rrrr^rkr])rGr)rrk	racadabra)
r:r<r5rgrerKrdrUrrers  rtest_keyword_parameterszReTests.test_keyword_parametersVsjj!II]"I=BBDf	NMMAaM@EEG	QJJm2J>CCEv	OKK}!BK?$	III]QI7#	%	
KK}!BK?FFHMMO	rc|jtjddtjj	dy)Nz[a-c]+rrb)r5r:rKrrerhs rtest_bug_20998zReTests.test_bug_20998hs.	
hrtt<AACVLrz-musl libc issue on Emscripten/WASI, bpo-46390c*tjtj}|jtjtj|dD]'}	tjtj|)t
j|j|jt
j|j|jy#tj$r|jd|zYwxYw)Nen_US.iso88591
en_US.utf8test needs %s locale)
r	setlocaleLC_CTYPE
addCleanupErrorskipTestr:rcheck_en_US_iso88591check_en_US_utf8)r	oldlocalelocs   rtest_locale_cachingzReTests.test_locale_cachingms$$V__5	((&//9E1	<C
<  #6	<	
!!#

!!#<<
<

4s:;
<s$C(('DDctjtjd|jt	j
ddtjtjz|jt	j
ddtjtjz|jt	j
ddtjtjz|jt	j
dd|jt	j
dd|jt	j
ddy)Nr(?Li)(?Li)(?Li))rrrrvr:rgrrrhs rrzReTests.check_en_US_iso88591s*:;k2449EF'2449=>'2449=>!1;?@w78w78rctjtjd|jt	j
ddtjtjz|jt	j
ddtjtjz|jt	j
ddtjtjz|jt	j
dd|jt	j
dd|jt	j
ddy)Nrrrrr r!r")	rrrrvr:rgrrrfrhs rrzReTests.check_en_US_utf8s,7k2449EF"((7GRTT"$$Y?@"((7GRTT"$$Y?@!1;?@"((<9:"((<9:rctjtj}|jtjtj|dD]'}	tjtj|)tjtjdt
jdtjtjz}t
jdtjtjz}t
jdtjtjz}t
jdtjtjz}|||fD]b}|j|jd|j|jd|j|jd	d|j|jd
|j|jd|j|jd	tjtjd|||fD]b}|j|jd|j|jd|j|jd	d|j|jd
|j|jd|j|jd	y#tj$r|jd|zYwxYw)Nrrrrs[a][a]s
[az][az]s[^][^]sssr)
rrrrrrr:r<rrrvrgrf)rrrp1p2p3p4rVs        rtest_locale_compiledzReTests.test_locale_compiledsW
$$V__5	((&//9E1	<C
<  #6	<	*:;
ZZRTT"$$Y
/
ZZ)2449
5
ZZ+RTT"$$Y
7
ZZ)2449
5R	2AOOAGGK01OOAGGK01OOAGGK01	2	
"((;/0"((;/0"((;/0,7R	4AOOAGGK01aggk23aggk23	4	
-."((;/0"((;/01<<
<

4s:;
<s$L00'MMc
|jtj5}tjddddj}|j|jt|j|jd|j|jd|j|jd|j|jd|j|jt||jdt||jd|j|jtj5}tjdddd|j}|j|jt|j|jd|j|jd|jtj5}tjdtj ddd|j}|j|jd|j|jd	|j|jd
|j|jt||jdt||jdt|y#1swYxYw#1swYxYw#1swYxYw)
Nu(€))r^r]rz at position 3s())zq
                (
                    abc
                )
                )
                (
                Mrz at position 77z(line 5, column 17))r9r:r;r<r>rr8r{r5r?linenocolnoassertInr3assertNotInrr
)rrArBs   r
test_errorzReTests.test_errors#


rxx
(	$BJJ{#	$llckk3/k2!$Q'A&

cggs3x(

&C1)3773


rxx
(	#BJJz"	#llckk51j1!$


rxx
(	!BJJZZ

!	!ll"%Q'B'

cggs3x(

'S2

+SX6C	$	$	#	#	!	!s#KK,6%K9K),K69Lc|jddd|jddd|jddd|jdd	d
|jddd
|jddd
|jddd
|jddd|jdd	d
|jddd
|jdd	dy)NrrZrz((a|b)z(a|b))zunbalanced parenthesisrz(?Pzunexpected end of patternr^z(?z)zunknown extension ?zr]z(?iz)rrrz(?#abczmissing ), unterminated commentz(?<z(?<>)zunknown extension ?<>z(?rmrrhs rtest_misc_errorszReTests.test_misc_errorsst%I1My*NPQRy*BAFv'BAFw(>Bx;v':A>y*KQOv'BAFx)@!Du&A1Erc|jdttj|jdttjy)Nrr)r/r{r:rrrhs r	test_enumzReTests.test_enums0	


gs244y)

hBDD	*rctjdtj}|j|||j	||k7tj
tjdtj}|jt
|t
||j||tj
tjdtj}|j||tj
tjd}|j|||jt5||kdddy#1swYyxYw)NroXYZ)
r:r<rr5rrhashassertNotEqualr9rA)rpattern1pattern2pattern3pattern4s     rtest_pattern_comparezReTests.test_pattern_compares	::eR]]3	
8,X-.	
::eR]]3hh88,	
::eR]]3	
Hh/	
::e$Hh/

y
)	 x	 	 	 sE""E+ctjd}tjtjd}|jt	|t	||j||tjtjd}tj5tjdt|j||dddy#1swYyxYw)Nrror;)
r:r<rr5r8rrrrr9)rr:r;r<s    rtest_pattern_compare_bytesz"ReTests.test_pattern_compare_bytes
s::f%	
::f%hh88,	
::e$

$
$
&	4!!'<8(3	4	4	4s2-C((C1c|td}tjd|}tjd|}|j|j	d|j|j	dd|dd|j|j	d|j|j	dy)Nsabcdefghs[a-h]+s[e-h]+sefghrr)rLr:rdr5rz)rrVrm2s    rtest_bug_29444zReTests.test_bug_29444sk"IIi#
YYy!
$K0W-!F+S)rcd}d}|jtj||jdd}d}|jtj||ddg|jtj
||Dcgc]}|jc}ddgd	}d
}|jtj||ddg|jtj
||Dcgc]}|j
c}d
dddddgd}|jtj
||Dcgc]}|j
c}d
dddddgd}|jtj
||Dcgc]}|j
c}d
ddddddddgycc}wcc}wcc}wcc}w)Nza	xz\b(?=(\t)|(x))x)Nr1rkz(?=(.)(.)?)rP)rPrrzz1(?=<(?P<tag>\w+)/?>(?:(?P<text>.+?)</(?P=tag)>)?)z<test><foo2/></test>)r<foo2/>)foo2rrrE)tagrrFz<test>Hello</test><foo/>Hellorpz<test>Hello</test><foo/><foo/>)r5r:rdr/rUrMrnrrVrVrs    rtest_bug_34294zReTests.test_bug_34294(s
1a//1;?
Aq)$i0	2bkk!Q.?@!((*@$k2	4
A"Aq)-|<	>Q1BCA!++-C"()<"($79	:
'Q1BCA!++-C"(':"'68	9
-Q1BCA!++-C"(':"'6"'68	9!ADDDsF<8GGGc|jtjddjd|jtjddjd|jtjddjd|jtjddjdy)Nz	(ab|a)*?brkr&z	(ab|a)+?bz
(ab|a){0,2}?bz	(.b|a)*?brvrhs rtest_MARK_PUSH_macro_bugz ReTests.test_MARK_PUSH_macro_bugJs	
,5<<>G,5<<>G"2D9@@BFK,5<<>Grcjd}d}|jtj||jdd}d}tj||}|j|j	d|j|j	dd|j|jd	y)
Naxxzbczz(?:(?:a|bc)*?(xx)??z)*rxtcxyzxcz((x|yz)+?(t)??c)*)rrrm)r)xyzxcr1tr5r:rgr/rerIs    rtest_MIN_UNTIL_mark_bugzReTests.test_MIN_UNTIL_mark_bugRs
%!Q..0':
 HHQN6*F+%89rcXd}d}tj||}|j|jd|j|jdd|j|j	dd}d}tj||}|j|jd	|j|jdd
|j|j	d|jtjddj	d
y)Naabaabz(?:[^b]*a(?=(b)|(a))ab)*)rrQrm)rrrOababz(?:[^b]*(?=(b)|(a))ab)*rG)rmr^z(ab?)*?brkr&r:rgr5rer/rIs    rtest_REPEAT_ONE_mark_bugz ReTests.test_REPEAT_ONE_mark_bugas
'HHQN6*F+[1
&HHQN6*F+[1+t4;;=vFrcjd}d}tj||}|j|jd|j|jdd|j|j	dd}d}|jtj||j	d	y)
NrXz(?:.*?(?=(a)|(b))b)*rGrmr^r)NrPaxxzazz(?:a*?(xx)??z)*rOrYrIs    rtest_MIN_REPEAT_ONE_mark_bugz$ReTests.test_MIN_REPEAT_ONE_mark_bugus
#HHQN6*F+[1!Q..0':rc|jtjddjdtjdd}|j|j	d|j|j	dd|j|j	d	d|j|jd
y)Nz	(?!(..)c)rkrz((?!(ab)c)(.))*rXrGr]r\r^)rPNrPrTrs  rtest_ASSERT_NOT_mark_bugz ReTests.test_ASSERT_NOT_mark_bugs	
,5<<>H
HH'06*F+F+%56rc|jtd5tjddddd|jtd5tjdtdddy#1swYCxYw#1swYyxYw)Nz	got 'int'rYrz
got 'type')rrAr:rdr.rhs rtest_bug_40736zReTests.test_bug_40736sm

#
#I{
;	IIdA	

#
#I|
<	"IIdD!	"	"			"	"sA0A<0A9<Bc	&ddz}tj}dD]}|jtj|||jtj|||g|jtj||g|jttj||g|jtj|d||tj|z
}|j|dy)Nr1i)z\Ayz^yrg?)timeperf_counterrfr:rdr5rrUr+rMrF
assertLess)rrVr@rVrSs     rtest_search_anchor_at_beginningz'ReTests.test_search_anchor_at_beginningsI!!#	2Abii1o.RXXa^aS1RZZ1-r2T"++a"34b9RVVAr1-q1	2
%'	
3rc8	|jtjdd|jtjddj	dd|jtjddj	dd|jtjddj	dd|jtjd	d
|jtjddjd
|jtjddjd
|jtjddjd|jtjddjd|jtjddjd|jtjddjd|jtjddjd|jtjddjd|jtjdd|jtjdd|jtjdd|jtjd dj	d!d"|jtjd#dj	d!d"|jtjd$dj	d!d"|jtjd%d|jtjd&d|jtjd'd|jtjd(d|jtjd)d|jtjd*d|jtjd*d+y,)-aTest Possessive Quantifiers
        Test quantifiers of the form @+ for some repetition operator @,
        e.g. x{3,5}+ meaning match from 3 to 5 greadily and proceed
        without creating a stack frame for rolling the stack back and
        trying 1 or more fewer matches.ze*+eeeeeze++aeeearze?+aeaze{2,4}+az(.)++.eez(ae)*+aaea)aez
([ae][ae])?+az(e?){2,4}+a)rz()*+arszx*+rZr[zx++r\a*+r`rarba++z
^(\w){1}+$roz^(\w){1,2}+$z
^(\w){3}+$r]ruz^(\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{}+$ruN)	rfr:rgr5rzr/rdrervrhs rtest_possessive_quantifiersz#ReTests.test_possessive_quantifierss2	
"((6623&&177:FC&$/55a8$?*f5;;A>G"((8T23)U3::<gF/59@@B 	"-8??A	 '3/668%@5%0557@5%0557@%/446?%0557@"((5%01"((=%89"((?E:;-7==a@#F/59??BCH/59??BCH"((9e45"((;67E23e45e45"((8U34512rc|jtjdd|jtjdd|jtjdd|jtjdd|jtjdd|jtjdd|jtjdd|jtjdd|jtjdd|jtjdd|jtjd	d|jtjd
d|jtjdd|jtjdd|jtjd
d|jtjdd|jtjdd|jtjdd|jtjd
d|jtjdd|jtjdd|jtjdd|jtjdd|jtjddy)Nrprsroa?+a{1,3}+rkza++bza*+bza?+bza{1,3}+b(?:ab)++(?:ab)*+(?:ab)?+(?:ab){1,3}+roz	(?:ab)++cz	(?:ab)*+cz	(?:ab)?+cz
(?:ab){1,3}+crvr:rKrfrhs r%test_fullmatch_possessive_quantifiersz-ReTests.test_fullmatch_possessive_quantifierss;VS12VS12VS12Z56",,vt45",,vt45",,vt45",,z489Wd34Wd34Wd34[$78[$78[$78[$78_d;<",,{E:;",,{E:;",,{E:;",,>?\59:\59:\59:%5u=>rc||jtjdddg|jtjddgd|jtjddgd|jtjdddg|jtjd	d
dg|jtjdd
gd
|jtjdd
gd|jtjdd
dgy)NrpaabrfrorfrrrsrsrsrrrtruababcrXrvrXrrrwrkrkrrrxr"rhs r#test_findall_possessive_quantifiersz+ReTests.test_findall_possessive_quantifierssFE2TF;FE2NCFE24FGJ6?K9F8DK9;KLK9;OPOW=xHrc tjd}|j|jd|j	|jd|jtjdd|j	tjdd|j	tjdd|jtjdd|jtjd	dy
)zTest Atomic Grouping
        Test non-capturing groups of the form (?>...), which does
        not maintain any stack point created within the group once the
        group is finished being evaluated.z
a(?>bc|b)croabccz(?>.*).z(?>x)++r`z(?>x++)z(?>x)++xz(?>x++)xN)r:r<rfrgrv)rr:s  rtest_atomic_groupingzReTests.test_atomic_groupings
::m,(../0v./"((:u56U34U34"((;67"((;67rc|jtjdd|jtjdd|jtjdd|jtjdd|jtjdd|jtjdd|jtjdd|jtjdd|jtjdd|jtjdd|jtjd	d|jtjd
d|jtjdd|jtjdd|jtjd
d|jtjdd|jtjdd|jtjdd|jtjd
d|jtjdd|jtjdd|jtjdd|jtjdd|jtjddy)N(?>a+)rs(?>a*)(?>a?)
(?>a{1,3})rkz(?>a+)bz(?>a*)bz(?>a?)bz(?>a{1,3})b(?>(?:ab)+)(?>(?:ab)*)(?>(?:ab)?)(?>(?:ab){1,3})roz(?>(?:ab)+)cz(?>(?:ab)*)cz(?>(?:ab)?)cz(?>(?:ab){1,3})cryrhs rtest_fullmatch_atomic_groupingz&ReTests.test_fullmatch_atomic_groupings=Y45Y45Y45]C89",,y$78",,y$78",,y$78",,}d;<Z67Z67Z67^T:;^T:;^T:;^T:;%7>?",,~u=>",,~u=>",,~u=>",,'95AB_e<=_e<=_e<=%8%@Arc||jtjdddg|jtjddgd|jtjddgd|jtjdddg|jtjd	d
dg|jtjdd
gd
|jtjdd
gd|jtjdd
dgy)Nrr|rfrr}rr~rrrrXrrrrrr"rhs rtest_findall_atomic_groupingz$ReTests.test_findall_atomic_grouping	sIu5v>Iu5~FIu57IJM59D6BNG<vhGNG<>NONG<>RS$6@6(Krc|jtjdd|jtjddy)Nz(?s:(?>.*?\.).*)\Zza.txtz!(?s:(?=(?P<g0>.*?\.))(?P=g0).*)\Z)rvr:rKrhs rtest_bug_gh91616zReTests.test_bug_gh91616$	s2%:GDE%I7STrc8|jt5}tjd}ddd|j	dtj|j	dt|j|j	dt|j|jdt|j|jt5}tjdtjtjz}ddd|j	dt|j|j	dt|j|j	dt|j|jdt|j|j|j|jd|j|jd	y#1swYxYw#1swYxYw)
Nrsz
re.template()z
is deprecatedfunctionr
)rzzre.TEMPLATEahoynope)rDeprecationWarningr:templater/r{warningr0r<TEMPLATErr5rvrgr)rrAtemplate_re1template_re2s    r-test_template_function_and_flag_is_deprecatedz5ReTests.test_template_function_and_flag_is_deprecated(	sw


0
1	-R;;t,L	-

os2::7

os2::7

j#bjj/2RZZ1


0
1	JR
::d"++bjj2HIL	J	


mS_5

os2::7

fc"**o.S_5	
|4**623++F34+	-	-	J	JsH7HH
Hc|jtjddjd|jtjddjd|jtjddjd|jtjddjd|jtjddjd	|jtjd
djd	|jtjddjd|jtjddjd|jtjd
djd|jtjddjd|jtjddjd|jtjddjd|jtjddjd	|jtjddjd	|jtjddjd|jtjddjdy)Nz(?>(?:.(?!D))+)ABCDErlz(?:.(?!D))++z(?>(?:.(?!D))*)z(?:.(?!D))*+z(?>(?:.(?!D))?)CDEr[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)?)rsz
(?:ab?c)?+z(?>(?:ab?c){1,3})z(?:ab?c){1,3}+rvrhs rtest_bug_gh106052zReTests.test_bug_gh106052@	sI"3W=BBDfM.':??A6J"3W=BBDfM.':??A6J"3U;@@BFK.%8==?H"7AFFH&Q"4g>CCEvN/59>>@&I,6;;=vF/59>>@&I,6;;=vF/37<<>G,499;VD"5u=BBDfM"2E:??A6Jrztest requires multiprocessingctjd}d}tj|jd|f}|j|j
t	|j|jd|jr!|j|j
yy#|jr!|j|j
wwxYw)Nz(?<=[({}])(((//[^\n]*)?[\n])([\000-\040])*)*((/[^/\[\n]*(([^\n]|(\[\n]*(]*)*\]))[^/\[]*)*/))((((//[^\n]*)?[\n])([\000-\040]|(/\*[^*]*\*+([^/*]\*+)*/))*)+(?=[^\000-\040);\]}]))zja(function() {
            ///////////////////////////////////////////////////////////////////
        });r)targetargszpattern.sub() timed out)r:r<multiprocessingProcessrFr@rrris_alive	terminate)rr8input_jsrVs    rtest_regression_gh94675zReTests.test_regression_gh94675T	s**HI

##7;;b(^L			}	QZZ\+DEzz|
qzz|
s! B333C&r)rrrr6rCrHrRrWrirwr~rrrrrrrrrrrrrrrrr#r0r>rCrMrWr[r`rdrhrorsrwrrrrrrrrrrrrrrrrrr:rKrrG
ascii_lettersdigitsrrrrrrrrrr&r1r:r<r>rBrFrJrLrNrWr_rartrxr{r}rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
runittestskipIfr	r
rrrr)r1r3r5r>r@rCrJrLrUrZr^r`rbrgrqrzrrrrrrrrrrrrr&r&%s //	E
1H"")@V%
	'A,. `F
(@"MH	H#HJK3Jj	694;NBB**-XR<@<?>3
MO?
"HH3,N@F&&NP94B)#B8K4&=P$AL-F^?H+8ZA04$LL)((6==8;LLM
BBD& ++<K@L8F*H$	GF
?
O3J?
F:/(*&&,,'24(
,54*D:Mz99<:+:Z;B8>G$I4S#($(S(&)&Q
UI
H
804K(2$M
X__ 7$	$$9;X__ 71	1@"7HF+ :4"* 9DH
:G(;
7" %3N?6	I8B6	LU50K(X___,.MNOrr&ct5}tj|tjddd|j	S#1swYj	SxYwr)rr:r<DEBUGgetvalue)routs  r
get_debug_outri	sD		"c


3!"<<>"<<>s%AA c(eZdZdZdZdZdZdZy)
DebugTestsNcxd}d}|jt|||jt||y)Nz(\.)(?:[ch]|py)(?(1)$|: )aSUBPATTERN 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
r5r)rrdumps   rtest_debug_flagzDebugTests.test_debug_flags	s=*(R	
s+T2	
s+T2rc:|jtddy)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
rrhs rtest_atomic_groupzDebugTests.test_atomic_group	sz25	rc:|jtddy)NrszPOSSESSIVE_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
rrhs rtest_possesive_repeat_onez$DebugTests.test_possesive_repeat_one	sv.	1		rc:|jtddy)NrwzPOSSESSIVE_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
rrhs rtest_possesive_repeatz DebugTests.test_possesive_repeat	s{36	r)rrrmaxDiffrrrrrrrrro	sG.3`"
rrcZeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
Zy)PatternReprTestsc`|jttj||yrr5rr:r<)rr8rs   rcheckzPatternReprTests.check	s bjj12H=rcb|jttj|||yrr)rr8rzrs    rcheck_flagszPatternReprTests.check_flags	s"bjj%898Drc(|jddy)Nrre.compile('random pattern')rrhs rtest_without_flagsz#PatternReprTests.test_without_flags	s

#1	3rcF|jdtjdy)Nrz+re.compile('random pattern', re.IGNORECASE))rr:rrhs rtest_single_flagz!PatternReprTests.test_single_flag	s)2==9	;rc|jdtjtjztjzdy)Nrz@re.compile('random pattern', re.IGNORECASE|re.DOTALL|re.VERBOSE))rr:rrrrhs rtest_multiple_flagsz$PatternReprTests.test_multiple_flags	s.)2449RTT>
2	3rc|jdtjd|jdtjtjztjzdy)Nrrz5re.compile('random pattern', re.IGNORECASE|re.DOTALL))rr:r{rrrhs rtest_unicode_flagz"PatternReprTests.test_unicode_flag	sH)2447	9)2449RTT>4	5rc(|jddy)Nz(?i)patternz(re.compile('(?i)pattern', re.IGNORECASE)rrhs rrz"PatternReprTests.test_inline_flags	s

==	?rcr|jddd|jddtjzdy)Nri0z&re.compile('random pattern', 0x123000)z4re.compile('random pattern', re.IGNORECASE|0x123000))rr:rrhs rtest_unknown_flagsz#PatternReprTests.test_unknown_flags	s8)8A	C)8BDD=B	Drcj|jdd|jdtjdy)N
bytes patternzre.compile(b'bytes pattern')z&re.compile(b'bytes pattern', re.ASCII))rrr:rrhs r
test_byteszPatternReprTests.test_bytes	s/

#1	3)244A	CrcF|jdtjdy)Nrz're.compile(b'bytes pattern', re.LOCALE))rr:rrhs rtest_localezPatternReprTests.test_locale	s)244B	Drcp|jdd|jdd|jddy)Nzrandom "double quoted" patternz,re.compile('random "double quoted" pattern')zrandom 'single quoted' patternz,re.compile("random 'single quoted' pattern")z!both 'single' and "double" quotesz1re.compile('both \'single\' and "double" quotes')rrhs rtest_quoteszPatternReprTests.test_quotes	s;

3>	@

3>	@

:E	Grcdddzz}ttj|}|jt	|d|j|dddttj|tj}|jt	|d|j|ddd|j|dddy)	NzVery %spatternzlong r<i,zre.compile('Very long long loniz, re.IGNORECASE))rr:r<rfrBr5r)rr8rLs   rtest_long_patternz"PatternReprTests.test_long_pattern
s"gn5G$%A$3B!ABGRTT*+A$3B!AB34"45rc|jttjd|jttjtjztj
zd|jttjtjztj
zdzd|jttjd|jttjtjztj
zd|jttjtjztj
zdzdy)Nz
re.IGNORECASEz"re.IGNORECASE|re.DOTALL|re.VERBOSEiz+re.IGNORECASE|re.DOTALL|re.VERBOSE|0x100000zTre.ASCII|re.LOCALE|re.UNICODE|re.MULTILINE|re.DOTALL|re.VERBOSE|re.TEMPLATE|re.DEBUGz?re.ASCII|re.LOCALE|re.UNICODE|re.MULTILINE|re.TEMPLATE|re.DEBUGzGre.ASCII|re.LOCALE|re.UNICODE|re.MULTILINE|re.TEMPLATE|re.DEBUG|0xffe00)r5rr:rrrrhs rtest_flags_reprz PatternReprTests.test_flags_repr
sbdd_5bdd244in-=	?bdd244ine45F	HbddUf	h	
RTT	"$$/0Z	\RTT	"$$ 678b	drN)rrrrrrrrrrrrrrrrrrrrr	sI>E3;3
5?DCDG6drrceZdZdZedZdZdZedZdZ	edZ
edZed	Zed
Z
y)ImplementationTestz7
    Test implementation details of the re module.
    c|jt5dtj_ddd|jt5dtj
_ddd|jt5tjd}t|jd}d|_dddy#1swYxYw#1swYjxYw#1swYyxYw)Nr]r)	r9rAr:Matchrprr<r.re)rrtps   rtest_immutablez!ImplementationTest.test_immutable$
s

y
)	BHHL	


y
)	BJJN	


y
)	**R.Cckk"o&BBF									s#B<	C<7C<CCCcjtjj}|j|dg|j|ddg|j|dgd|j|dgd|j|dgd	|j|d
gdy)NrrsrrH)rrrraaaa)rr]rmr^ababba)rrr]rmrr]abcabdac)rrrr]rmrr]r)r:	_compiler_generate_overlap_tabler5)rfs  rtest_overlap_tablez%ImplementationTest.test_overlap_table0
sLL002#3!%6L16L18&89:(@Arc|jtjjd|jtjjdy)Nr)assertGreaterEqualr:r	MAXREPEATrbrhs rtest_signednessz"ImplementationTest.test_signedness9
s6 6 6: 6 6:rct|tjt|tjtjd}t|t|j
dy)Nr)rr:rrr<r.rers  rtest_disallow_instantiationz.ImplementationTest.test_disallow_instantiation=
sD	%T2884$T2::6jjn$T4B+@Arc	gdgdgdd}|D]Q}|j|5tjj|d|j	t
5}t
|ddd|jtjd|d|j|jt|j|tjtj|}|j|j||j|jd||D]}|jt!||tj|=dddTy#1swYxYw#1swYlxYw)	N)r<r;SRE_FLAG_IGNORECASE
SUBPATTERN
_compile_info)r;rr_NamedIntConstant)
SubPatternparserr
_parse_sub)sre_compile
sre_constants	sre_parse)modulezmodule z is deprecatedr)r=sysmodulespoprr
__import__r5r{rfilename__file__r/r__package__rvhasattr)r
deprecatednamewrVattrs      rtest_deprecated_modulesz*ImplementationTest.test_deprecated_modulesE
sE-3(
	

	&DT*

&d+%%&89%Qt$%  QYY#*4(.!AC  X6

dCKK0kk$'  t4  "5&t,8DOOGC$678KK%

&

&	&%%

&

&s$6E1E%'C2E1%E.*E11E;	cddl}tdD]}t|}t|j	}|j|j
|||j|j|||tjv}|j|j|||j|j||ttddddgzD]}t|}|j|j
|||dk7r8|j|j|t|j	||j	k7xs||jk7}|j|j||j|j|||j	k7xs||jk7|j|j
dd|j|jdtd|j|jd|j|jdy)Nrriii(i0r)_srerrordrr5
ascii_tolowerunicode_tolowerrGr
ascii_iscasedunicode_iscasedr+rrrv)rrrruloiscaseds      rtest_case_helpersz$ImplementationTest.test_case_helpers`
ss	?AAAQWWYBT//2B7T11!4b96///GT//2G<T11!4g>	?eC()Wg,>>	?AAAT//2A6F{  !5!5a!8#aggi.I1779n6QWWYGT//23T11!4!'')^=qAGGI~
?	?	
++F3V<--f5s3x@++F34,,V45rc	dddl}ddz}|jttjdi|jt
5|j
dd|gdidddd|jt5|j
idgdggdddy#1swY>xYw#1swYyxYw)Nrrmrrsror)rr9rAr:rMrr<)rr
long_overflows   rtest_dealloczImplementationTest.test_dealloc{
s	
3
)R[[#r:


}
-	?LLM?Ar2>	?


y
)	/LLQAr2.	/	/	?	?	/	/sB:B&B#&B/cn	ddlm}ddz}|j	tjddz
z||jtjd|dz
z|jd	|j	tjd
|dz
z||jtt
jd|z|jtt
jd|z|jtt
jd
|zy#t$r|jdY+wxYw)Nr)rz requires _sre.MAXREPEAT constantr1rrr]r)rrr)rrImportErrorrrfr:rgr5rer9rr<)rrrGs   r%test_repeat_minmax_overflow_maxrepeatz8ImplementationTest.test_repeat_minmax_overflow_maxrepeat
s	>&v"((8y1}#=vFG)y1}"=vFKKM$	&"((:Q#?HI-X	5IJ-Y5JK-Z)5KL	>MM<=	>sDD43D4cddl}|jt5}|jdgdddd|j	dtj|jt5}|jdgdddd|j	dt|jy#1swYxYw#1swY;xYw)Nrr)rr;rzinvalid template)rrrzan integer is required)rr9rArr/r{r>)rrrAs   r%test_sre_template_invalid_group_indexz8ImplementationTest.test_sre_template_invalid_group_index
s	


y
)	,RMM"l+	,

(#bll*;<


y
)	,RMM"l+	,

.BLL0AB	,	,	,	,sB41C4B=C	N)rrr__doc__rrrrrrrrrr!rrrrr
s		B;BB&6664//MMCCrrceZdZdZdZy)
ExternalTestscddlm}|D]B\}}|j||5tj|}|j|j
||j|j||j|j|ddz|zddzz}|j|j
||j|j|d|j|j|ddt|z|j|j|ddt|zdddEy#1swYQxYw)zre_tests benchmarksr)
benchmarksr8rGrqrN)

test.re_testsr&r=r:r<rvrdrgrKrB)rr&r8rVrVs2s      rtest_re_benchmarksz ExternalTests.test_re_benchmarks
s,$
	HJGQga8	
HJJw',
+A/Y]SY.-E 23E53q6> BCBus1v~ FG	
H	
H
	H	
H	
HsD!EE	c	ddlm}m}m}|D]}dx}x}x}x}}	t	|dk(r	|\}}}}}	n!t	|dk(r|\}}}ntd||j
||5||k(rG|jtj5tj|ddd	dddtj|}
|
j|}||k(r|j|d	ddd|j
5|j|d	|jd\}}
|jd|j|jj d
}t#ddD] }	|j|}|d
}||d|z<"|jj&j)D]}	|j|}|d
}|||<|j+t-|||	dddd	t/|d}t/|d}|j
d5tj|}
|j|
j|ddd|j
d5tj|tj0}
|
j|}|t3d|ddd|dddk7r^|dddk7rV|T|j
d5tj|}
|j|
j|
dzddd|j
d5tj|tj6}
|j|
j|ddd|j
d5tj|tj8}
|j|
j|ddddddy#1swYTxYw#t$$rd}YwxYw#t$$rd}YLwxYw#1swY.xYw#1swYxYw#1swYxYw#t4$rYwxYw#1swY:xYw#1swYxYw#1swYxYw#1swY}xYw)zre_tests test suiter)testsFAILSYNTAX_ERRORNrr^z%Test tuples should have 3 or 5 fieldsr'zSucceeded incorrectlyzFailed incorrectly)foundr/rzr]dNonerzg%dzgrouping errorrzbytes pattern matchzlocale-sensitive matchz#=== Fails on locale-sensitive matchrmrzrange-limited matchzcase-insensitive matchzunicode-sensitive match)r(r,r-r.rBrr=r9r:r;r<rdrfrvrerzrzrrr|keysr5evalrrprintUnicodeEncodeErrorrr)rr,r-r.rSr8rVoutcomerErobjresultr@rAvardictrgirbss                   r
test_re_testszExternalTests.test_re_tests
sL;;Z	3A6::G:a:':D81v{673GT8Q1&'#G !H!LLga8Q
3l***2884,

7+,	Q
3Q
3jj)Ad?%%f.EFQ
3Q
3\\^7OOF,@A"(QJE3(.Q)/(.		9G#1c]0)!'aB!z%+.0	*0$YY11668()!'aB!z%+&(
($$T$%8(%5737<L '2Dq'*B
&;<8 jj.

278&>?L jjryy9!$B!>!"GK	LBQK5(WRS\U-B & 2&;<G jj1

1eS1W(EFG\\":;3**Wbmm<COOCJJqM23\\";<3**Wbjj9COOCJJqM23_Q
3Q
3Z	3,,0 *)!(B) *)!(B)-77J88LL*,GG3333_Q
3Q
3s0&%RO3!	R3>R:R
A-P$8P
1P$?P$P$8RQR*6P1 R9AP>=+R(;Q#R<AQ(RAQ4R3O=8RPP$PP$P!P$ P!!P$$P.)R1P;6R>QR	QRQRQ% R(Q1-R4Q=9RR
	N)rrrr*r=rrrr$r$
s
H]3rr$__main__)$test.supportrrrrrrr	r
rrr:rGrrdrrrweakrefr
_multiprocessingrrr{rrr#TestCaser&rrrrr$rmainrrr<module>rDs)))	

----A%hA%HJ\""\\~Mdx((Md`CC**CCLn3H%%n3bzHMMOIXOsC''C10C1