python (3.11.7)

(root)/
lib/
python3.11/
test/
__pycache__/
test_re.cpython-311.pyc

eddlmZmZmZmZmZmZmZmZm	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlmZddlmZ	ddlZddlZn
#e$rdZYnwxYwGddeZGddeZGd	d
ejZdZeGdd
ejZGddejZGddejZ GddejZ!e"dkrej#dSdS))	
gc_collect
bigmemtest_2Gcpython_onlycaptured_stdoutcheck_disallow_instantiation
is_emscriptenis_wasi
SHORT_TIMEOUTN)Scanner)proxyceZdZfdZxZS)Sc`tt|SN)rsuper__getitem__selfindex	__class__s  @/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/test_re.pyrz
S.__getitem__#$$U++,,,__name__
__module____qualname__r
__classcell__rs@rrr8---------rrceZdZfdZxZS)Bc`tt|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/Z0d0Z1d1Z2d2Z3d3Z4d4Z5d5Z6d6Z7d7Z8dde9j:fd8Z;e<j=e<j>zd9zZ?d:Z@d;ZAd<ZBd=ZCd>ZDd?ZEd@ZFdAZGdBZHdCZIdDZJdEZKdFZLdGZMdHZNdIZOdJZPdKZQdLZRdMZSdNZTdOZUdPZVdQZWdRZXdSZYdTZZdUZ[dVZ\dWZ]dXZ^dYZ_dZZ`d[Zad\Zbd]Zcd^Zdd_Zed`ZfdaZgdbZhdcZiddZjdeZkelemdfgdhZnelemdigdjZodkZpdlZqdmZrdnZsdoZtdpZudqZvdrZwdsZxdtZyduZze{j|e}pe~dvdwZdxZdyZe{j|e}pe~dvdzZd{Zd|Zd}Zd~ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZe{j|eduddZdS)ReTestsNc`||fd||dS)Nct|ttfr$t||D]\}}||dSt|t|dSr)
isinstancetuplelistzipassertIstype)actualexpectxymsgrecursers    rr4z)ReTests.assertTypedEqual.<locals>.recurse)s{&5$-00
?//""DAqGAqMMMM""

d6llDLL#>>>>>r)assertEqual)rr/r0r3r4s`  `@rassertTypedEqualzReTests.assertTypedEqual'sZ---	?	?	?	?	?	?	?	rcx|tj5}tj|dddn#1swxYwY||5|j}||j||||j|ddddS#1swxYwYdS)N)pattern)	assertRaisesreerrorcompilesubTest	exceptionr5r3pos)rr8errmsgr?cmerrs      rcheckPatternErrorzReTests.checkPatternError1s.


rx
(
(	 BJw	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 
\\'\
*
*	/	/,CSWf---  #...		/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/s$AAA"AB//B36B3c~|tj5}tj|||dddn#1swxYwY|||5|j}||j||||j|ddddS#1swxYwYdS)N)r8repl)	r9r:r;subr=r>r5r3r?)rr8rEstringr@r?rArBs        rcheckTemplateErrorzReTests.checkTemplateError:s4


rx
(
(	*BF7D&)))	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*
\\'\
5
5	/	/,CSWf---  #...		/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/s$AA
A%AB22B69B6cBtd}tjd|}|t5|ddddn#1swxYwYt
|~t|ddS)Nxasxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)	bytearrayr:finditerr9BufferErrorextendr+r)rbits   rtest_keep_bufferzReTests.test_keep_bufferCsdOO
[q
!
!


{
+
+		
HHX															R	sA!!A%(A%cd}tjd}t|}||d|ddS)NQabbbcRzab+c)r:r<r
r5findall)rsr1r2s    rtest_weakrefzReTests.test_weakrefNsUJv!HH9--qyy/C/CDDDDDrc^|tjdddd|tjddd|tjdddd|tjddd|tjdd|tjd	d
dd|tjd	d
d|tjdddd|tjddd|tjd
d
dS)Nx*axxrrrzx+r1aaaza*xxxxxxarr^a+)r5r:searchspanassertIsNonematchrs rtest_search_star_pluszReTests.test_search_star_plusTs4//44Q77@@@4//4466???4//44Q77@@@4//4466???")C//000$..33A66???$..3355v>>>$//44Q77@@@$//4466???"(4//00000rc,|tjddd|tjddd|tjddd|tjddd|tjdd	d|tjdd
d|tjddd
|tjddd
|tjddd
dS)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`s	
)T2277996BBB)T2277996BBB"3U;;@@BB	!	!	!"3U;;@@BB	!	!	!"3T::??AA	!	!	!"3T::??AA	!	!	!/377<<>>GGG/377<<>>GGG/377<<>>GGGGGrcjt|d}t|dzS)Nrr])intgroupstr)rmatchobj	int_values   rbump_numzReTests.bump_numqs-q))**	9q=!!!rc
|tjdddd|tjdtdtdd|tjdddd|tjdt	dt	dd|tjdtdtdd|tjdt
dt
ddd	D]/}|tj|dd
|zd0|tjddd
d|tjd|jdd|tjd|jddd|tjd|jddd|tjdddd|tjddddd|tjddd|tjd	ddd|tjdfdd|tjdd dd!|tjdd"dd!|tjd#d$dd!|tjd#d%dd!|tjd&d'dd!|tjdd(dd)|tjdd)dd)|tjdd)dtd*td+ztd,ztd-ztd.ztd/ztd0zd1D]}||5|tj
5|tjdd|zdd|zdddn#1swxYwYdddn#1swxYwY|tjd2d3d4d5dS)6Nr2rsxyzxazyrKxyzsxazàuаu𝒜zx%sz(?i)b+r1	bbbb BBBBx x\d+z08.2 -2 23x99yz9.3 -3 24x100yr^z
9.3 -3 23x99ycount.cdS)N\nms r<lambda>z+ReTests.test_basic_re_sub.<locals>.<lambda>surr
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bfS#u55u===bfS!C&&!E((;;UCCCbfT488&AAAbfT1T77AfII>>GGGbfT9T??If<M<MNNPVWWWbfT:d+;+;Z=O=OPPRXYYY1	@	@ARVAsFQJ77????#{;;UCCC
7GHH)	+	+	+
7GKK(	*	*	*
7GqQQQ(	*	*	*	
__c::EBBBUC00$777q#..555qyyu'='=sCCQGGG{{{{C88!<<<
M4@@&III
M4@@&III.?FFOOOmTBBFKKK}d;;VDDD%6<<>NOOO%5s;;=MNNN%5s;;a&&R.R0R8R@QGAN	Q	Q	Q?	K	KAa
K
K&&rx00KK$$RVC3%?%?JJJKKKKKKKKKKKKKKK
K
K
K
K
K
K
K
K
K
K
K
K
K
K
K	
f55w?????s6 V41U1%V1U55V8U59VV	V	cZ|tjdddddS)Nrz\g<1>\g<1>\brzxxxxr5r:rFrhs rtest_bug_449964zReTests.test_bug_449964s7
EE#	%	%	%	%	%rcV|tjdddd|tjdddd|tjdddd|tjdddddS)Nz\r\nrz
abc
def
zabc
def
z
rrrhs rtest_bug_449000zReTests.test_bug_449000s0@AA%	'	'	'/?@@%	'	'	'/?@@%	'	'	'.>??%	'	'	'	'	'rctjd}|ttj|dtj|ttj|dtj|ttj|dtj|ttj|tjdS)NrA)r:r<r9
ValueErrorrgIrdrUrr8s  r
test_bug_1661zReTests.test_bug_1661s*S//*bhbdCCC*bi#rtDDD*bj'3EEE*bj'24@@@@@rc.tjddS)Nz(?P<quote>)(?(quote)))r:r<rhs r
test_bug_3629zReTests.test_bug_3629s

*+++++rc|tjdddd|tjdddd|tjdddd|tjdddd|tjdd	dd
|tjdddd|tjdd
dd|tjdddd|tjdddd|tjdddd|tjdddd|tjdddd|tjdddd|tjdddd
|tjdddd|ddddd|ddddd|dddd d!|dd"dd#d!|dd$dd%d!|dd&dd'd!|dd(dd)d!|dd*dd d!|dd+dd,d!|dd-dd.d!|dd/dd'd!|dd0dd'd!|dd1dd)d!|dd2dd3d!|dd"d4d#d!|tjd5d&dd|tjd6d/d7d8|tjd6d0d7d9dS):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_escapesxUC00$777Wc22F;;;Wc22F;;;Wc22J???Wc22J???Wc22F;;;Wc22F;;;Wc22F;;;Xs33W===Xs33\BBBVS116:::VS116:::VS11:>>>VS11:>>>VS11:>>>Wc!123	5	5	5	
Wc!123	5	5	5	
UC1LaPPPUC1LaPPPUC1LaPPPVS2NPQRRRVS2NPQRRRVS2MqQQQVS2NPQRRRVS2NPQRRRWc3OQRSSSWc3OQRSSSWc3OQRSSSWc3OQRSSSUB0KQOOO	
 963GGMMM :GUKK	 	 	  :GUKK	 	 	 	 	 rc|tjdddd|tjddddd|tjddddddS)NrsrPaaaaabbbbbr]baaaarrrhs rtest_qualified_re_subzReTests.test_qualified_re_subs{S'22G<<<S'155w???S';;;WEEEEErcZ|tjdddddS)Nz(\S)\s+(\S)z\1 \2zhello  therezhello thererrhs rtest_bug_114660zReTests.test_bug_114660s7.II&	(	(	(	(	(rctjdtjdtjdtjdtjdtjdddtd	d
D}d|z}|tj|dd
dS)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||fzVdSz
x(?P<a%d>%x)yNr.0is  r	<genexpr>z/ReTests.test_symbolic_groups.<locals>.<genexpr>+KKA!Q/KKKKKKrr]z(?:%s)(?(200)z|t)xc8yzr)r:r<joinranger5rgrerpats  rtest_symbolic_groupszReTests.test_symbolic_groupss

+,,,

.///

()))

.///

-...

{|||hhKKq'9J9JKKKKK!C'#w//4466?????rct|dd|ddd|dd|dd	d
|ddd
|ddd
|ddd
|dd|dd|ddd
|ddd
|ddd
|ddd
|ddd
|ddd
|ddd
|ddd|d dd|d!dd|d"d#d|d$d%d|d&dd|d'd(d
|d)d(d
|d*d(d|td+5}tjd,dddn#1swxYwY||jt|td+5|d-d.d
dddn#1swxYwY|td/5|d0d.dddddS#1swxYwYdS)1Nz(?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)z6bad character in group name '\\xc2\\xb5' at position 4s	(?P<µ>x)s(?P=µ)zunknown group name '\xc2\xb5'6bad character in group name '\\xc2\\xb5' at position 3s(?(µ)y)rCassertWarnsRegexDeprecationWarningr:r<r5filename__file__rws  rtest_symbolic_groups_errorsz#ReTests.test_symbolic_groups_errorss0 -	.	.	.	
/>	D	D	Dy*ABBB0NPRSSSw(<a@@@x)=qAAAy*KQOOOy*BCCCz+DEEEz+MqQQQx)GKKKx)GKKKw(<a@@@y*>BBBz+LaPPP{,NPQRRRv';Q???x)=qAAAy*BAFFFz+MqQQQz+MqQQQz+MqQQQ{,NPQRRRy*LaPPPz+MqQQQ

"
"#5$455	+89J)***	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	
X...

"
"#5$455	H	H
""#3#CQ
H
H
H	H	H	H	H	H	H	H	H	H	H	H	H	H	H	H

"
"#5$455	H	H
""#4#CQ
H
H
H	H	H	H	H	H	H	H	H	H	H	H	H	H	H	H	H	H	Hs6I88I<?I<>K""K&)K&L--L14L1cX|tjdddd|tjdddd|tjdddd|tjd	d
dd|tjddddd
dt	ddD}|tj|ddddS)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||fzVdSrrrs  rrz-ReTests.test_symbolic_refs.<locals>.<genexpr>7rrr]rz\g<200>	xc8yzxc8yc8zc8)r5r:rFrrrs  rtest_symbolic_refszReTests.test_symbolic_refs/s 3XtDDbIII 3UDAA2FFFj%@@%HHHY==tDDD EGjlpqqswxxxhhKKq'9J9JKKKKKZ==wGGGGGrc|ddddd|ddddd|dddd	d
|ddddd|dd
ddd|ddddd|ddddd|ddddd|td5tjddddddn#1swxYwY|ddddd|td5}tjddddddn#1swxYwY||jt|td5tjddddddn#1swxYwY|td5tjddddddn#1swxYwY|dddd d|td!5}|td"5tjd#d$d%dddn#1swxYwYdddn#1swxYwY||jt|dd&dd'd|dd(dd)d|td*5tjdd+dddddS#1swxYwYdS),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/bad character in group name '\+1' at position 3z\g<+1>z/bad character in group name '1_0' at position 3z()()()()()()()()()()z\g<1_0>z/bad character in group name ' 1 ' at position 3z\g< 1 >u\g<©>rruunknown group name 'µ's(?P<a>x)s\g<µ>ru\g<㊀>!bad character in group name '㊀'u\g<¹> bad character in group name '¹'u/bad character in group name '१' at position 3u\g<१>)
rHassertRaisesRegex
IndexErrorr:rFrrr5rrrs  rtest_symbolic_refs_errorsz!ReTests.test_symbolic_refs_errors:s
GT >	C	C	C
FD 4a	9	9	9
E4aHHH
J CQ	H	H	H
GT 4a	9	9	9
J CQ	H	H	H
Hd ;Q	@	@	@
E4 ;Q	@	@	@

#
#J0I
J
J	0	0F:y$///	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
It BA	G	G	G

"
"#5$455	089F:y$///	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	
X...

"
"#5$455	.	.
F7J---	.	.	.	.	.	.	.	.	.	.	.	.	.	.	.
"
"#5$455	1	1
F:z4000	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	

It BA	G	G	G

"
"#5$455	=89''
4STT
=
={$4e<<<
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=
	
X...
J CQ	H	H	H
It BA	G	G	G

"
"#5$455	1	1
F:z4000	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1s$DDDE))E-0E-/GGG8HH"HJ06J
J0J	J0 J	!J00J47J4(MMMc|tjdddd|tjdddd|tjdddd|tjd	ddd
|tjd	dddd|tjd	ddd
ddS)Nrr1r)rrmzb+)zx BBBBr]r)rrzb*)xxxyxzxrrm)xxxyzrmr)r5r:subnrhs rtest_re_subnzReTests.test_re_subnls3<<jIIIsK88-HHHsE22J???sE22NCCCsE155|DDDsE;;;\JJJJJrcJdtdfD]}|tjd|gd|tjd|gd|tjd|gddt	dtdt
dfD]}|tjd	|gd
|tjd|gd|tjd
|gddD]\}}}d|d|d|}|tjd|d||d|g|tjd|d|||g|tjd|dd|d|d|g|tjddgd|tjddgd|tjddgd|tjddgd|tjddgddgdfdgdfdgdfd gd!ffD]\\}}||"5|tj|d|dddn#1swxYwY]dgd#fd$gd%fd&gd'fd(gd)ffD]\\}}||"5|tj|d|dddn#1swxYwY]dS)*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_splitts&9-	G	GF!!"(3"7"7"9"9"9
;
;
;!!"(4"8"8"5"5"5
7
7
7!!"(66":":"E"E"E
G
G
G
G!1Z==)J2G2G!*--/	N	NF!!"(4"8"8">">">
@
@
@!!"(5&"9"9"9"9"9
;
;
;!!"(7F";";"L"L"L
N
N
N
N:	<	<GAq!!%&QQ11-FRXc622RAr14EFFFRXdF33b!Q]CCCRXff55 #q#q$:
<
<
<
<	
(I668K8K8KLLL&)44;;;	=	=	=)Y77444	6	6	6*i88+++	,	,	,	
.)<<///	1	1	16667
:::;
XXXY
___`	
	J	JMC#&&
J
J%%bhsI&>&>III
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J<<<=
7778
2223
3334	
	J	JMC#&&
J
J%%bhsI&>&>III
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J
	J	Js$.*L$$L(	+L(	!*NN	N	c |tjdddgd|tjdddgd|tjdddgd|tjdddgd	|tjd
ddgd	|tjdddgddS)
Nrrrm)rrsb::c)maxsplitza:b:c:d)rsrPzc:dz(:))rrrsrrrr)rrrrza:b::c)r5r:rrhs rtest_qualified_re_splitzReTests.test_qualified_re_splits/#y!446G6G6GHHH#y1===?P?P?PQQQ#y1===?P?P?PQQQ%Q???444	6	6	6&)a@@@444	6	6	6&)a@@@444	6	6	6	6	6rc
H|tjddgdtdfD]}|tjd|gd|tjd|gd|tjd|gddtdt
dtdfD]}|tjd	|gd
|tjd|gd
|tjd|gd
dD]}|dz}|dz}d|d|d|d}|tjd|z||||g|tjd|z||||g|tjd|d|d||df||f||fgdS)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%00"555"AlOO3	H	HF!!"*T6":":"4"4"4
6
6
6!!"*VV"<"<"4"4"4
6
6
6!!"*Y"?"?"F"F"F
H
H
H
H$a
&6&6	-8P8P!-002	N	NF!!"*UF";";"7"7"7
9
9
9!!"*Wf"="="7"7"7
9
9
9!!"*Z"@"@"L"L"L
N
N
N
N1	9	9AQBa%CC%&QQCCC0FRZ	6::QCLIIIRZ!V<<q"clKKKRZZqqq!!!(<fEE "g1v2w7
9
9
9
9
	9	9rc\|tjddgddS)Nz(a|(b))aba)rsr)rPrPr!r5r:rUrhs rtest_bug_117612zReTests.test_bug_117612s;J66999	;	;	;	;	;rcdtdfD].}|tjd|d|tjd|d|tjd|dd|tjd|dd|tjd|ddd0dt
dtdtdfD].}|tjd|d|tjd	|d
|tjd	|dd|tjd	|dd|tjd	|ddd0dD]=}|tj||d|tjd
|z||f|tjd
|z|d||tjd
|z|d||tjd
|z|dd||f?tj	d}||dd||dd||dd||dd||dddtj	d}||ddddd||ddddd||ddddd dS)!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_matchs1S66k	N	NFRXc62299;;R@@@RXeV44;;==vFFFRXeV44::1==sCCCRXeV44::1==sCCCRXeV44::1a@@*MMMMAdGGYt__j6F6FF	Q	QFRXdF33::<<bAAARXff55<<>>HHHRXff55;;A>>EEERXff55;;A>>EEERXff55;;AqAA<PPPP1	J	JARXa^^2244b999RXfqj!44;;==tDDDRXfqj!44::1==qAAARXfqj!44::1==qAAARXfqj!44::1a@@1a&IIIIj))3..002HIII3..002HIII4//113HIII4//113HIII4//335HIIIj<==3--aA668IJJJ3--dD$??*	,	,	,4..q$::<LMMMMMrcGdd}tjdd}||d||dd||dd|||dd|t
|jd|t
|jd	|t
|jdd
z|t
|j|dd
z|t
|jd||ddd
|||d|dd
dS)NceZdZdZdZdS)!ReTests.test_group.<locals>.Indexc||_dSrvalue)rr6s  r__init__z*ReTests.test_group.<locals>.Index.__init__s
"


rc|jSrr5rhs r	__index__z+ReTests.test_group.<locals>.Index.__index__s
z!rN)rrrr7r9rrrIndexr3s2
#
#
#
"
"
"
"
"rr:z(a)(b)rkrr]rsr^r1rmrPrs)r:rgr5rzr9r)rr:rs   r
test_groupzReTests.test_groups	"	"	"	"	"	"	"	"
HXt$$D)))T***S)))q**C000*agr222*agq111*agq$w777*aguuQW~~>>>*ags333A
333q558844jAAAAArc:tjd}|d}||dd||dd||dd|d|d||dd||d	d||d
d||dd|td5|d
dddn#1swxYwY|td5|ddddn#1swxYwY|td5|ddddn#1swxYwY|td5|ddddn#1swxYwY|td5|ddddn#1swxYwY|td5|ddddn#1swxYwY|td5d|dddn#1swxYwY|d}||dd||dd||dd|d|d||dd||d	d||d
d||dd|t5d	|d<dddn#1swxYwY|tt|dS)Nr*rsr,r-r.za1={a1} b2={b2} c3={c3}za1=a b2=None c3=Nonerr]rmr^z
no such grouprr;rrtrza1={a2}r(ruza1=a b2=None c3=c)
r:r<rgr5
format_maprrr9	TypeErrorlen)rrrs   rtest_match_getitemzReTests.test_match_getitemsj<==IIcNN4#&&&4$'''4$'''2==a@@BXYYY1s###1s###1t$$$1t$$$

#
#J
@
@		
cFF															

#
#J
@
@		
bEE															

#
#J
@
@		
aDD															

#
#J
@
@		
dGG															

#
#J
@
@		
dGG															

#
#J
@
@		
fII															

#
#J
@
@	$	$  ###	$	$	$	$	$	$	$	$	$	$	$	$	$	$	$
IIdOO4#&&&4$'''4#&&&2==a@@BUVVV1t$$$1s###1t$$$1s###

y
)
)		AaD																
)S!,,,,,s2	EEE-	FF	F(	F==GG#	G88G<?G<	H33H7:H7	I..I25I2J66J:=J:O//O36O3c`	|tjddddt	dfD]=}|tjd|d>dtdt
dtdfD]=}|tjd|d>dD]M\}}|d	||z}|tj|||zdN|tjd
dd|tjd
dd|tjddd|tjddd|tjddd|tjdd|tjdd|tjdd|tjdd|tjddd|tjddd|tjddd|tj	ddddd|tj	d
dddd|tj	d
dddddS) 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_fullmatch4sdC005577@@@AdGGm	K	KFR\'6::??AA6JJJJQuXXy'7'7E9J9JJ	L	LFR\(F;;@@BBFKKKKF	D	DDAqAAq1uu%AR\!QU3388::FCCCCgu55::<<fEEEfe4499;;VDDDh55::<<fEEEh66;;==vFFFh77<<>>GGG",ud33444",w88999",x99:::",{G<<===lF;;@@BBFKKKmV<<AACCVLLLmT::??AA6JJJJu''Aa'@@EEGG	Q	Q	QJw))&a)BBGGII6	S	S	SJv((Qq(AAFFHH&	R	R	R	R	Rrc|tjddd|tjddd|tjdd|tjdd|tjdd	d
|tjddd|tjd
dd|tjd
ddtjd}||dd||dd||d||dddtddD}d|z}|tj|dddS)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||fzVdSrrrs  rrz2ReTests.test_re_groupref_exists.<locals>.<genexpr>lrrr]rz(?:%s)(?(200)z)rr)	r5r:rgr/rfr<rrre)rprs   rtest_re_groupref_existszReTests.test_re_groupref_existsRs"<eDDKKMM#	%	%	%"<cBBIIKK$	&	&	&"(#=tDDEEE"(#=tDDEEE":DAAHHJJ#	%	%	%";TBBIIKK$	&	&	&":DAAHHJJ$	&	&	&":C@@GGII"	$	$	$
J899..00(	*	*	*--//)	+	+	+!''%..)))!''$--(((hhKKq'9J9JKKKKK#%#w//4466?????rcJ|ddd|ddd|td5}tjddddn#1swxYwY||jt|td	5tjd
dddn#1swxYwY|td5tjddddn#1swxYwY|d
dd|ddd|td5tjddddn#1swxYwY|ddd|ddd|ddd|ddd|ddd|ddddS)Nz(?P<a>)(?(0)a|b)zbad group numberrz()(?(-1)a|b)rrz/bad character in group name '\+1' at position 5z()(?(+1)a|b)z0bad character in group name '1_0' at position 23z()()()()()()()()()()(?(1_0)a|b)z/bad character in group name ' 1 ' at position 5z
()(?( 1 )a|b)u
()(?(㊀)a|b)ru()(?(¹)a|b)ru/bad character in group name '१' at position 5u
()(?(१)a|b)z()(?(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)rrrs  rtest_re_groupref_exists_errorsz&ReTests.test_re_groupref_exists_errorsps24FKKKA1	F	F	F

"
"#5$455	(89J'''	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(	
X...

"
"#5$566	2	2
J0111	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2
"
"#5$455	)	)
J'(((	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)	
/BA	G	G	GA1	F	F	F

"
"#5$455	)	)
J'(((	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)	
y=q	B	B	B{CQ	H	H	H}CQ	H	H	H ./1	3	3	3	
/ ./1	3	3	3	
|:A	?	?	?	?	?sH
A++A/2A/1CCC8DD D-FFFctdD]G}||5tjd|zdddn#1swxYwYHdS)N)codez()(?(1)\x%02x?))rr=r:r<rrs  r&test_re_groupref_exists_validation_bugz.ReTests.test_re_groupref_exists_validation_bugss	3	3A1%%
3
3
-1222
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3	3	3sAA	A	cddlm}|dd|zdd|zd|d|zd|zd	dS)
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_overflows}++++++i)&;T <y H!	M	M	M09<;iG	M	M	M	M	Mrc|tjddd|tjddd|tjdd|tjdd|tjd	d
d|tjdd
d|ddddS)Nz^(\|)?([^()]+)\1$z|a|)rrsz^(\|)?([^()]+)\1?$rsrPza|z|az^(?:(a)|c)(\1)$aar'z^(?:(a)|c)(\1)?$ruNNz(abc\1)rr)r5r:rgr/rfrCrhs rtest_re_grouprefzReTests.test_re_grouprefs="6>>EEGG#	%	%	%"7==DDFF$	&	&	&"(#7>>???"(#7>>???"4d;;BBDD#	%	%	%"5s;;BBDD%	'	'	'	
z+JANNNNNrc|tjddddddS)N#(?P<first>first) (?P<second>second)first secondfirstsecond)rlrm)r5r:rg	groupdictrhs rtest_groupdictzReTests.test_groupdictsL"G"0222;)++")H==	?	?	?	?	?rc|tjdddd|tjdddddS)	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"022#)6*G#H#H4	6	6	6	
"G")++#)6*:#;#;					rc	|tjdd|tjdd|tjdd|tjdd|tjdddd|tjd	ddd|tjd
ddd|tjdddd|tjdddd|tjd
ddd|tjdddd|tjdddd|tjdd|tjdd|tjdd|tjdd|tjdd|tjdd|tjdd|tjdd|tjdd|tjdd|tjdd|tjdd|tjdd|tjdd|tjdd|ddd dS)!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"(<77888"(=%88999"(>599:::"(?E::;;;,66<<Q??EEE.%88>>qAA3GGG.%88>>qAA3GGG/599??BBCHHH-77==a@@#FFF/599??BBCHHH/599??BBCHHH/599??BBCHHH"(9e44555"(:u55666"(;66777"(<77888E22333e44555e44555e44555u55666U33444u55666u55666u55666"(8U33444511222yCQ	H	H	H	H	Hrc>|tjdjd|tjdjtjtjz|tjdjd|tjdji|tjdjddd|tj	ddj
d|tj	ddjd|tj	ddjd|tj	ddj
d	|tj	ddjtjd}|t|jd
dg||jdd|t"5d|jd<dddn#1swxYwY||jdddS)Nz
(?i)(a)(b)rmz(?i)(?P<first>a)(?P<other>b)r])rlotherr%rsr)rtrtrlry)r5r:r<r8flagsrUr/
groupindexrgr?rKrGregsrvsortedr9rB)rrWs  rtest_getattrzReTests.test_getattrsmL119<HHHL117EEEL118!<<<L11<bAAA$BCCN#$q11	3	3	3	
%--11555%--4a888%--4c:::%--24DEEE,,/000
J677--/ABBBg.222


y
)
)	&	&$%AL!	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&g.22222sI11I58I5c.	|tjdddd|tjdddd|tjddtjdd|tjddtjdd|tjddtjd	d
|tjdd
tjd	d
|tjddtj|tjdd
dd|tjdddd|tjdd
tjdd|tjddtjdd|tjddtjd	d|tjddtjd	d|tjddtj|tjddd	d|tjddd	d|tjddtjd	d|tjddtjd	ddS)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;#4666;eAhh	F	F	F;#4666;eAhh	F	F	F;#4bh@@@Ea$	P	P	P;#4bh@@@Ea$	P	P	P8Y==CCAFFNNN<==CCAFFNNN")L)RTBBCCC<#5777<uQxx	H	H	H<#5777<uQxx	H	H	H<#5ryBBBG%((E	S	S	S<#5ryBBBG%((E	S	S	S9j"$??EEaHH&QQQ=&"$??EEaHH&QQQ")M:rtDDEEE?#+---2U1XXx	A	A	A#3#,...3eAhh		C	C	C?#+RX777<uQxx	K	K	K#3#,bi999>q9	N	N	N	N	Nrch|ddd|tjddd|tjdd|tjddd|tjdd	d	|tjdd
|tjddd|tjdd
|tjddd|tjdd
tjdD]]}||5|tj	tj
d|zdddn#1swxYwY^dD]]}||5|tj	tj
d|zdddn#1swxYwY^dS)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%BAFFF%--3355s;;;"(5#..///%..4466==='3//5577==="(7C00111)S1177993???"(9c22333)T2288::DAAA"(9c22333



4	D	DAa
D
D!!"(BJ
CCC
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D7	F	FAa
F
F!!"(BJ1EEE
F
F
F
F
F
F
F
F
F
F
F
F
F
F
F	F	Fs$/II
	
I
	+/J&&J*	-J*	cD|tjdd|tjdd|tjdd|tjdd|tjdd|tjd	d
|tjd	d|dd
d|dd
d|ddd|ddd|ddd|ddd|dd
d|dd
d|ddd|ddd|ddd|dd d!|d"d d|d#d$d!|d%d$d|d&d'd!|d(d'ddS))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_escapes.s!6<<===!6<<==="(#8#>>???|<<==="Q!)++	,	,	,	
!N!$&&	'	'	'"(#P#&((	)	)	)	
uk1555wQ777v'?CCCw(@!DDDw(@!DDDy*BAFFF{K;;;}k1==={=q	B	B	B}=q	B	B	B~BA	G	G	G{@!	E	E	E}@!	E	E	E8KQ	P	P	P:KQ	P	P	P57GKKK79I1MMMMMrc*|tjdddd|tjdd|tjdd|tjdd|tjdd|tjdd|ttj	ddd|ttj	ddd	|ttj	dd
d	|ttj	ddd	|ttj	dd
ddS)Nz	\b(abc)\bror]r\Brrsrmrrqz   )
r5r:rdrzrvrgassertFalserfrCrUrhs rtest_string_boundarieszReTests.test_string_boundariesVs<77==a@@	 	 	 	
..///	%//000%//000	
")E2..///	
")E2..///	
RZs3344a888RZs3344a888RZs3344a888RZu5566:::RZs3344a88888rch|tjddddddtttdddz}|tj|d	d	dS)
Nu
([∢∣])u∢r]z[%s]rr]u!)r5r:rgrzrmaprrrrMs  rtest_bigcharsetzReTests.test_bigcharsetps"4"*,,,1E!HHh	@	@	@RWWSeC&<&<==>>>!X..4466AAAAArc"tjddtdD}||d||ddS)Nrc3 K|]	}d|zV
dS)z%dNr)rr1s  rrz,ReTests.test_big_codesize.<locals>.<genexpr>xs& > >Aa > > > > > >r'10009999)r:r<rrrvrgrs  rtest_big_codesizezReTests.test_big_codesizevspJsxx > >u > > >??@@((((((((rc"|tjddtjdd|tjddtjdddS)Nza.bza
brza.*bza

b)r5r:rgDOTALLrzrhs rtest_anyallzReTests.test_anyall|s%;;AA!DD	!	!	!&(BI>>DDQGG!	#	#	#	#	#rcN|tjdddd|tjdddd|tjdddd|tjdddd|tjd	d
dd|tjdddd|tjd
d
dd|tjdd
dd|tjdddd|tjdddd|tjdddd|tjdd|tjdd|tjdd|tjdd|tjdd|tjdd|tjdd|tjdd|tjdd|tjdddS)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_lookaheads^"2E::@@CCSIII"3U;;AA!DDcJJJ"3U;;AA!DDcJJJ"4f==CCAFFLLL.%88>>qAA3GGG/6::@@CCSIII"5u==CCAFFLLL"2E::@@CCSIII"3U;;AA!DDcJJJ.%88>>qAA3GGG"5u==CCAFFLLL	
77888"(>6::;;;!>FFGGG"(#@%HHIII!>FFGGG"(#@%HHIII!>FFGGG!8%@@AAA"(#:EBBCCC!8%@@AAAAArcd|tjdd|tjdd|tjdd|tjdd|tjdd|tjdd	|tjd
d|tjdd	|tjdd|tjd
d|tjdd|tjdd|tjdd|tjtjd|tjdd|tjdd|tjtjd|tjtjd|tjtjd|tjtjddS)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_lookbehindsru55666"(<77888"(<77888u55666%88999"(?F;;<<<"(?E::;;;&99:::"(#A5IIJJJ"(#A5IIJJJ!?GGHHH"(#A5IIJJJ!?GGHHH"(BJ0HIII"(#;UCCDDD!95AABBB"(BJ0DEEE"(BJ0MNNN"(BJ0KLLL"(BJ0IJJJJJrc
|tjddtjdd|tjddtjdd|tjddtjdd|tjd	d
tjdd
|tjddtjdd|tjdd
tjdd
|tjd
dtjdd|tjddtjdd|tjddtjdd|tjddtjddddcxkrdksnJ|tjddtj|tjddtj|tjddtj|tjddtjddcxkrdksnJ|tjddtj|tjddtj|tjddtj|tjddtjddcxkrdksnJ|tjddtj|tjddtj|tjddtj|tjddtj|tjd dtj|tjd dtjd!d"cxkrd#ksnJ|tjd$d"tj|tjd%d!tjdS)&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%55;;A>>FFF&&"$77==a@@&III,rt<<BB1EEuMMM->>DDQGGPPP-==CCAFFNNN.&"$??EEaHH&QQQ,rt<<BB1EEuMMM->>DDQGGPPP"3UBDAAGGJJERRR"4fbdCCII!LLfUUUyy{{hnn..5555#555555x66777x66777C66777C66777yy{{hnn..5555#555555x66777x66777C66777C66777~~8>>#3#3????x??????Hbd;;<<<Hbd;;<<<Hbd;;<<<Hbd;;<<<Hbd;;<<<Hbd;;<<<~~8>>#3#3;;;;t;;;;;;Hbd;;<<<Hbd;;<<<<<rc>|tjddtj|tjddtj|tjddtj|tjddtj|tjddtj|tjddtj|tjddtj|tjddtjd	d
cxkrdksnJ|tjdd
tj|tjd
d
tj|tjdd	tj|tjddtjddcxkrdksnJ|tjddtj|tjddtj|tjddtj|tjddtjddcxkrdksnJ|tjddtj|tjddtj|tjddtj|tjddtj|tjddtj|tjddtjddcxkrdksnJ|tjddtj|tjddtjdS) 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_sets 355666355666355666355666D"$77888D"$77888D"$77888D"$77888yy{{hnn..5555#5555558RT::;;;8RT::;;;RT::;;;RT::;;;yy{{hnn..5555#5555558RT::;;;8RT::;;;RT::;;;RT::;;;~~8>>#3#3????x??????"$??@@@"$??@@@"$??@@@"$??@@@"$??@@@"$??@@@~~8>>#3#3;;;;t;;;;;;"$??@@@"$??@@@@@rcn|tjddtj|tjddtj|tjddtj|tjddtj|tjddtj|tjdd	tj|tjd
d	tj|tjd
dtj|tjddtj|tjdd
tj|tjddtj|tjdd
tj|tjddtj|tjddtj|tjddtj|tjddtjddcxkrdksnJ|tjddtj|tjddtj|tjddtj|tjddtjddcxkrdksnJ|tjddtj|tjddtj|tjddtj|tjddtjdd cxkrd!ksnJ|tjd"dtj|tjd"d tj|tjd#d!tj|tjd#d tj|tjd$d!tj|tjd$dtjd%d&cxkrd'ksnJ|tjd(d&tj|tjd)d%tjdS)*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_rangesL355666"(8S"$77888D"$77888"(9dBD99:::>>???"(>624@@AAA>>???"(>624@@AAA!3XrtDDEEE!3XrtDDEEE!3XrtDDEEE!3XrtDDEEE!;\24PPQQQ!;\24PPQQQ!;\24PPQQQ!;\24PPQQQyy{{hnn..5555#5555558RT::;;;8RT::;;;!3S"$??@@@!3S"$??@@@yy{{hnn..5555#5555558RT::;;;8RT::;;;!3S"$??@@@!3S"$??@@@~~8>>#3#3????x??????!3XrtDDEEE!3XrtDDEEE!3XrtDDEEE!3XrtDDEEE!3XrtDDEEE!3XrtDDEEE~~8>>#3#3;;;;t;;;;;;!3XrtDDEEE!3XrtDDEEEEErc~|tjdddddS)Nz(\s)rqr]r5r:rgrzrhs r
test_categoryzReTests.test_category5s8'3//55a88#>>>>>rc|tjdddd|tjdddddS)Nz\s([^a]) br]rPz	\s([^a]*)z bbbbr5r:rdrzrhs rtest_not_literalzReTests.test_not_literal8sh;55;;A>>DDD<77==a@@$GGGGGrcttd}|t5tjd}dddn#1swxYwY|||td|tjd|td|t5tjd}dddn#1swxYwY|||td|t5tjd}dddn#1swxYwY|||td	|t5tjd
}dddn#1swxYwY|||td|t5tjd}dddn#1swxYwY|||td|tjd
|td|t5tjd}dddn#1swxYwY|||td|t5tjd}dddn#1swxYwY|||td|tjd|td|t5tjd}dddn#1swxYwY|||td|t5tjd}dddn#1swxYwY|||td|tjd|td|t5tjd}dddn#1swxYwY|||td|t5tjd}dddn#1swxYwY|||tddS)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+rrVrWs   rtest_possible_set_operationsz$ReTests.test_possible_set_operations<s%**$$&&


m
,
,	(	(
;''A	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(1tO'<'<===Ha00$w--@@@


m
,
,	&	&
9%%A	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&1tL'9'9:::


m
,
,	%	%
8$$A	%	%	%	%	%	%	%	%	%	%	%	%	%	%	%1tK'8'8999


m
,
,	(	(
;''A	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(1tM':':;;;


m
,
,	'	'
:&&A	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'1tM':':;;;Ha00$t**===


m
,
,	(	(
;''A	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(1tN';';<<<


m
,
,	'	'
:&&A	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'1tN';';<<<Ha00$t**===


m
,
,	(	(
;''A	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(1tM':':;;;


m
,
,	'	'
:&&A	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'1tM':':;;;Ha00$t**===


m
,
,	(	(
;''A	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(1tN';';<<<


m
,
,	,	,
?++A	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,1tI77777s	A**A.1A.;DD #D 7FFF3HHH/JJJ!MM	MN>>OOQ00Q47Q4S,,S03S0=VV"%V"9XX!Xc|tjdddd|tjdddddS)Nz\s(b)rr]rPza\sza rrrhs rtest_search_coveragezReTests.test_search_coverageish8T2288;;SAAA640066q994@@@@@rc>|||}dt|f}n||td|||}||||||||dS)Nrz@If match is not None, span should be specified (and vice versa).)rCrrvr5rzre)rr8textrgrematcherrs       rassertMatchzReTests.assertMatchms=T\Es4yy>DD
]dl122
2GGT""E***4(((((rz!"%',/:;<=>@_`cddtdD}|D]}|tj|||dtj|zdz||dtj|z||tj||dD]2}|tj|ddd	3|j}|tj||dS)
Nrc34K|]}t|VdSr)rrs  rrz)ReTests.test_re_escape.<locals>.<genexpr>~s(//qCFF//////rr]rrz(?x)z-.]{}r]r)rrrr:escaper5
LITERAL_CHARS)rrWru
literal_charss    rtest_re_escapezReTests.test_re_escape}s(GG//E#JJ/////	7	7ARYq\\1---S29Q<</#5q999Vbill2A66661q)))	5	5ARYq\\"1"-t4444*
=11=AAAAArcttd}|D]}t|g}|tj|||dtj|zdz||dtj|z||tj||dD]B}t|g}|tj|dddC|jd}|tj||dS)	Nr][]s(?x)s-.]{}r]\ascii)rrrr:rr5rencode)rrWrrPrs     rtest_re_escape_byteszReTests.test_re_escape_bytess=%**	8	8Aqc

ARYq\\1---TBIaLL047;;;Wry||3Q77771q)))	6	6Aqc

ARYq\\"1"-u5555*11'::
=11=AAAAArcd}tj|}|||||||dtjdz|ddtjdS)Nuxxx☠☠☠xxxz.%s+.☠ux☠☠☠x)rmr)r:rr5rrd)rrV	s_escapeds   rtest_re_escape_non_asciiz ReTests.test_re_escape_non_asciis&IaLL	A&&&A&&&29X#6#66/	D	D	D	D	Drcjdd}tj|}||||||tjtjdd|}|t
|ddS)Nu	y☠y☠yzutf-8rrm)rr:rr5rrUrC)rrP	b_escapedress    rtest_re_escape_non_ascii_bytesz&ReTests.test_re_escape_non_ascii_bytess$$W--IaLL	A&&&A&&&j8??7#;#;<<a@@S1%%%%%rcddl}tjdtj}t	|jdzD]C}|||}||}|||Dddlm	}dS)Nrza(?:b|(c|e){1,2}?|d)+?(.)r])_compile)
pickler:r<UNICODErHIGHEST_PROTOCOLdumpsloadsr5r)rroldpatprotopicklednewpatrs       r
test_picklingzReTests.test_picklings


7DD62Q677	-	-Ell6511G\\'**FVV,,,,rcddl}tjd}|||||||||d}||||||||dS)Nrz (?P<int>\d+)(?:\.(?P<frac>\d*))?z12.34)copyr:r<r-deepcopyrg)rrrWrs    rtest_copyingzReTests.test_copyingsJ:;;

diillA&&&

dmmA&&***
GGG

diillA&&&

dmmA&&*****rc|tjtj|tjtj|tjtj|tjtj	|tj
tjdSr)r5r:r
IGNORECASELrr	MULTILINErrrVERBOSErhs rtest_constantszReTests.test_constantssr}---ry)))r|,,,ry)))rz*****rctjtjtjtjtjtjfD]*}|tjd|+tjtjtjtjtjtj	fD]*}|tjd|+dS)Nz	^pattern$s	^pattern$)
r:rrrrrr{rvr<r	)rflags  r
test_flagszReTests.test_flagssT24rtRT248	;	;DOOBJ{D99::::T24rtRT248	<	<DOOBJ|T::;;;;	<	<rc	|dD]}|dkr\|tjd|zt||tjd|zt|dz|tjd|zt|dz|tjd|zt||tjd	|zt|dz|tjd
|zt|dz|dkr|tjd
|zt||tjd|zt|dz|tjd|zt|dz|tjd|zt||tjd|zt|dz|tjd|zt|dz|tjdd|tjdd|tjdd|tjdd|ddd|ddd |d!d"d|d#d"d|d$d%d|d&d%d|d'd(d|d)d(d|d*d+ddS),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	B	BA3wwAs1vv > >???QAs
 C CDDDQAs
 C CDDDQA ? ?@@@aQ D DEEEaQ D DEEE7{{QA ? ?@@@aQ D DEEEaQ D DEEEOOBHY]CFF;;<<<OOBHZ!^SVVCZ@@AAAOOBHZ!^SVVCZ@@AAAA//0001122200111'22333w 012	4	4	4	
w(DaHHHv'?CCCw(@!DDDx)CQGGGy*DaHHH|-KQOOO}.LaPPP}.FJJJJJrc	dD]&}|dkr|tjd|zt||tjd|zt||tjd|zt||tjd|zt||tjd|zt||tjd|zt||tjd	|zt||tjd
|zt||dkr|tjd|zt||tjd
|zt||tjd|zt||tjd|zt||tjd|zt|dz|tjd|zt|dz(|ddd|ddd|ddd|ddd|ddd|dd d|tjd!d"dS)#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]r r]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_literalss-R	D	DA3wwAs1vv > >???QA ? ?@@@aQ @ @AAAq#a&& A ABBBq#a&& A ABBBq#a&& A ABBB)93q66 B BCCC)93q66 B BCCC7{{q#a&& A ABBB)93q66 B BCCC)93q66 B BCCCOOBH[1_c!ff==>>>OOBH\A%5s1vvczBBCCCOOBH\A%5s1vvczBBCCCCy 012	4	4	4	
y*:A>>>y*BAFFF{,FJJJ0NPQRRR0H!LLL!;\JJKKKKKrc	TdD]}|tjd|zt	|g|tjd|zt	|gdz|tjd|zt	|gdz|tjd|zt	|g|tjd|zt	|gdz|tjd	|zt	|gd
z|tjtjd|tjtjd|tjd
d|tjdd|tjdd|tjdd|ddd|ddd|ddd|ddddS)Nrrrrrrrrrr0r8rrrzs\u1234s
\U00012345s\0s\08s8s\01s\018s8s\567r rs\911r!r]s\x1r"s\x1z	rvr:rgrrr9r;r<rCr_s  rtest_sre_byte_literalszReTests.test_sre_byte_literalss2	R	RAOOBHhl%:%:%<%<eQCjjIIJJJOOBHi!m%;%;%=%=uaSzz$OOPPPOOBHi!m%;%;%=%=uaSzz$OOPPPOOBHi!m%;%;%=%=uaSzzJJKKKOOBHj1n%<%<%>%>qc

4PPQQQOOBHj1n%<%<%>%>qc

4PPQQQQ"(BJ
;;;"(BJ???11222(33444'22333844555x 012	4	4	4	
x)EqIIIw(@!DDDx)A1EEEEErc	dD][}|tjd|zt	|g|tjd|zt	|g|tjd|zt	|g|tjd|zt	|g|tjd|zt	|g|tjd|zt	|g|tjd|zt	|g|tjd	|zt	|g]|tjtjd
|tjtjd|dd
d|ddd|ddddS)Nr4r)r*r+r,r-r.r/r0s[\u1234]s[\U00012345]s[\567]r r]s[\911]r1s[\x1z]r"r:r_s  rtest_sre_byte_class_literalsz$ReTests.test_sre_byte_class_literalss]2	O	OAOOBHhl%:%:%<%<eQCjjIIJJJOOBHi!m%;%;%=%=uaSzzJJKKKOOBHj1n%<%<%>%>qc

KKLLLOOBHkAo%=%=%?%?sLLMMMOOBHkAo%=%=%?%?sLLMMMOOBHkAo%=%=%?%?sLLMMMOOBHlQ&6%>%>%@%@%**MMNNNOOBHlQ&6%>%>%@%@%**MMNNNN"(BJ==="(BJ0@AAAz 012	4	4	4	
z+;Q???z+CQGGGGGrcH|ddd|ddd|ddd|ddd|ddd	|d
dd	|dd
d	dS)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-arCrhs rtest_character_set_errorsz!ReTests.test_character_set_errors*st%A1EEEu&BAFFFu&BAFFF	
v'CQGGGy*EqIIIy*EqIIIx)BAFFFFFrcn|tjdddd|tjdddd|tjdddddS)Nz(a)|(b)rPr]r;)r;r;)r5r:rgstartendrerhs rtest_bug_113254zReTests.test_bug_1132545s*c2288;;R@@@*c2266q992>>>*c2277::HEEEEErc|tjddj|tjddjd|tjddjd|tjddjd|tjddjddS)	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_527371:s"(8C00:;;;+d33=qAAA"7==GMMM.$77A3GGG(C00:A>>>>>rc(|tjdddzdzdd|tjdddzd	zddzzd
zdd|tjddd
zdzdd|tjdddzdzdddS)Nz.*?crrkrRri!Nz.*?cdirucdei#Ni Nrodeiaz(a|b)*?c)r5r:rgrCrdrhs rtest_bug_418626zReTests.test_bug_418626Bs	
&%*T/::>>qAA5III'49S=d+B5+HIIMMaPP	 	 	 '5;t+;<<@@CCUKKK	
:uTz$??CCAFFNNNNNrcdtjdzdz}|tj|odddS)Nru‹rr])r:rr5r<rs  rtest_bug_612074zReTests.test_bug_612074NsD	(###C'C.Q22222rc|tjdddzdd|tjdddzdzdd|tjdddzdzdddS)Nz(x)*iPr1r]z(x)*yr2z(x)*?yrrhs rtest_stack_overflowzReTests.test_stack_overflowRs	
&%)44::1==sCCC'59S=99??BBCHHH(E#IcM::@@CCSIIIIIrcdD]?}dD]:}|||dd|d||ddd;@dS)N*+?z{1,2}rrUznothing to repeatrz(?:rr^r?)rrepsmods   rtest_nothing_to_repeatzReTests.test_nothing_to_repeatYs*	?	?D
?
?&&ss';':A???&&&TT333'?':A????
?	?	?rcdD]O}dD]J}||z}dD]@}dD];}||zdvr
||z}|d||ddt|z<AKPdS)NrR)rrUrT)rUrTr1zmultiple repeatr])rCrC)r
outer_reps	outer_modouter_op
inner_reps	inner_modinner_ops       rtest_multiple_repeatzReTests.test_multiple_repeatas0		F		FJ)
F
F	%	1"8FFJ%1FF	$z1Z??$#-	#9...88XX/N 11s8}}3DFFFF	FF
F		F		Frc|tjdd|tjdd|tjdd|tjdd|tjdd|tjdddS)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_repeatms"(;44555"(;44555"(>377888"(<55666"(<55666"(?C8899999rcd}d}d}d}td|fd|fd|fd|fd	g}||jd
j||dgdd
fdS)
Nc|Srrscannertokens  rs_identz%ReTests.test_scanner.<locals>.s_identwsE\rcd|zS)Nzop%srrfs  r
s_operatorz(ReTests.test_scanner.<locals>.s_operatorxsv~(=rc t|Sr)floatrfs  rs_floatz%ReTests.test_scanner.<locals>.s_floatys
E%LL%8rc t|Sr)ryrfs  rs_intz#ReTests.test_scanner.<locals>.s_intzs
#e**#4rz[a-zA-Z_]\w*z\d+\.\d*rz=|\+|-|\*|/)z\s+Nrzsum = 3*foo + 312.50 + bar)	sumzop=r^zop*fooop+gs@rsbar)rrvrgr8r5scan)rrirkrnrprgs      rtest_scannerzReTests.test_scannervs111===888444
g&
'"
UO
Z(	
//33;<<<&BCC)))*,.	/	/	/	/	/rcdD]~}|tjd|zdd|tjd|zdddS)N)rrUrSz
((.%s):)?zrrgza:z)rrsr5r:rgr/)rops  rtest_bug_448951zReTests.test_bug_448951s	*	*BRXmB&6<<CCEE)
+
+
+RXmB&6>>EEGG(
*
*
*
*	*	*rc|tjddd|tjddd|tjddd|tjddd|tjd	dd|tjd
dd|tjddd|tjd
dddS)Nz	^((a)|b)*ror=z^(([ab])|c)*)rurPz^((d)|[ab])*rPNz
^((a)c|[ab])*z^((a)|b)*?cz^(([ab])|c)*?drIz^((d)|[ab])*?cz^((a)c|[ab])*?crxrhs rtest_bug_725106zReTests.test_bug_725106s+u55<<>>#	%	%	%.%88??AA#	%	%	%.%88??AA$	&	&	&/599@@BB$	&	&	&-77>>@@#	%	%	%"2F;;BBDD#	%	%	%"2E::AACC$	&	&	&"3U;;BBDD$	&	&	&	&	&rc|tjddd|tjddddS)Nz(a)(?:(?=(b)*)c)*rF)rsNz(a)((?!(b)*))*r+rxrhs rtest_bug_725149zReTests.test_bug_725149sx"5u==DDFF$	&	&	&"2E::AACC*	,	,	,	,	,rcGddt}tj|d}||ddS)NceZdZdS)+ReTests.test_bug_764548.<locals>.my_unicodeN)rrrrrr
my_unicodersrrror)r{r:r<rfrg)rrrs   rtest_bug_764548zReTests.test_bug_764548s[########jE**++#))E**+++++rctjdd}|d|Dgdtjd}|ddd}|d|Dgdtjd}|ddd}|d	|Dgdtjd}|ddd
}|d|Dgdtjd}|ddd
}|d|DddgdS)Nrrc8g|]}|dSr@rzritems  r
<listcomp>z)ReTests.test_finditer.<locals>.<listcomp>"999D$**Q--999rrr]rc8g|]}|dSr@rrs  rrz)ReTests.test_finditer.<locals>.<listcomp>rrrJc8g|]}|dSr@rrs  rrz)ReTests.test_finditer.<locals>.<listcomp>rr)rKr?c8g|]}|dSr@rrs  rrz)ReTests.test_finditer.<locals>.<listcomp>rrr^rc8g|]}|dSr@rrs  rrz)ReTests.test_finditer.<locals>.<listcomp>rrr)r:rMr5r<)riterrs   r
test_finditerzReTests.test_finditers{5,//99D999+++	-	-	-j||L!R0099D999+++	-	-	-j||La|;;99D999+++	-	-	-j||L|;;99D999+++	-	-	-j||La|::99D999	'	'	'	'	'rcz|tjdtjddS)N
bug_926075s
bug_926075)assertIsNotr:r<rhs rtest_bug_926075zReTests.test_bug_926075s=L11M22	4	4	4	4	4rcd}|tj|dgddS)Nu[.。.。]za.b.crS)r5r:r<rrs  rtest_bug_931848zReTests.test_bug_931848sJ.G,,227;;&	(	(	(	(	(rctjdd}|t|d|tt|tjdd}||	d|
|	dS)Nz\sr)r]rm)r:rMr5nextrer9
StopIterationr<rgrdrf)rrrgs   rtest_bug_581080zReTests.test_bug_581080s{5%((d**E222-t444*U##++E22))..00&999'..**+++++rcFtjdd}|t|d|t|d|tt|dS)Nz.*asdfrH)rr)r:rMr5rrer9r)rrs  rtest_bug_817234zReTests.test_bug_817234s}{5&))d**F333d**F333-t44444rcgd}|D]>}|tjd|d|?gd}|D]*}|tjd|+dS)N)7u๘u0z^\d$r)uⅥu〹u₂u㊴)r5r:rgrzrf)rdecimal_digitsr1not_decimal_digitss    r
test_bug_6561zReTests.test_bug_6561s
 	?	?ARXgq1177::A>>>>$	4	4Abhw223333	4	4rcPddl}dD]}||}|tjd||tjd|ddS)NrbBuhHiIlLfdsblarr)arrayrfr:r<rgr5r/)rrtypecoderss    rtest_empty_arrayzReTests.test_empty_arrays%	D	DHH%%Abj0066q99:::RZ__22155<<>>CCCC	D	Drc\	d}d}tjd|ztjtjz}|d|z}||tjd|ztjtjz}|d|z}||tjd|ztj}|d|z}||tjd|ztj}|d|z}||tjd|z}|d|z}||tjd|z}|d|z}||tjd|z}|d|z}||tjd|z}|d|z}|||tjd|z||tjd|z||tjd	|z|tj|tjd
|z||tjd|z|tjd}||d
z|dtj	5tj
dt|d|ddddn#1swxYwY|d|z|d|d|zdz|d|d|z|d|d|z|d|d|z|d|d|zdz|d|d|zdz|d|d|zdz|ddS) 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_charrWqr3s      rtest_inline_flagszReTests.test_inline_flagssw

JsZ'55
GGD:%&&JsZ'55
GGD:%&&Jw+RT22
GGD:%&&Jw+RT22
GGD:%&&Jx*,--
GGD:%&&Jx*,--
GGD:%&&J{Z/00
GGD:%&&J{Z/00
GGD:%&&J!6
CCDDDJ!6
CCDDDJ!6
BDIIJJJ
!:JGGHHH!;ZNNOOO?zF2C;;;
$
&
&	5	5!'<888""8S!444	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	
{Z7a@@@w3g=sAFFF}z93BBBw3S!<<<x*4c1===y:5;S!DDD;cA3JJJ/*<sBCLLLLLs2OO	O	cdtjd}||ddd||ddd||dddtjdtj}||ddd	||ddd
||ddddS)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_twice>s*S//S(33Z@@@S)44jAAAS$//888*S",//S(44kCCCS)44lCCCS$//88888rcrtjd}tjd}|t|jd|t|jd|t|jdd|t|jdd|t|jdd|t|jdd|t|jdd|t|jdddS)Nr.r	rPrur
)r:r<r9rBrgrF)rrbpats   rtest_bytes_str_mixingzReTests.test_bytes_str_mixingKsjooz$)SY555)TZ555)SWdC888)SWc4888)SWdD999)TXtS999)TXsD999)TXsC88888rcdtjfD]}tjd|tjz}||dtjd|}||dtjdtjtjz}||dtjdtj}||dtjdtj}||dtjd}||ddtjfD]}tjd|tjz}||dtjd	|}||d|ttjd	tj|tj
tjd
|ttjdtjtjz|ttjdtj|ttjdtj|tj
tjddS)
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_flagXs_	/	/E*VUR]%:;;COOCIIf--...*UE**COOCIIf--....jBM!9::#))F++,,,jR]33#))F++,,,j))#))F++,,,j###))F++,,,]	2	2E*Webm&;<<Ccii00111*VU++Ccii001111*bj&"*EEE"(BJ
;;;*bj%bh9NOOO*bj)RXFFF*bj)RZHHH"(BJ
;;;;;rctj}tddD]}	t|g|}|}||krA||}t|dkrj|||krtj	t|g}n#ttf$rYwxYwd}d}tj|tj
tjz}|r(|||tjd|ztj}|r(|||tj|tj}|r(|||tjdtj
}|r(|||tjd}|r(|||tjd}|r(||||t&tjdtj
|tjtjd	|t&tjd
tj
tjz|t&tjdtj|t&tjdtj
|tjtjddS)
Nrr]r]rs(?L)rs(?L)\wrz(?L)rs(?a)s(?aL))localegetpreferredencodingrrrrrrCr:rUnicodeErrorrBr<rrrvrgrfr9rr;r)rencrrusletterbletterrrs        rtest_locale_flagzReTests.test_locale_flagus)++sC		A

1#JJ%%c**''))a<<!..--w<<1$$h>>#&&'118ys,, ),



GDjry2=899	0OOCIIg..///j477	0OOCIIg..///jr}--	2cii00111j++	0OOCIIg..///j$$	0OOCIIg..///j  	2cii00111*bj"bi@@@"(BJ777*bj#ry287KLLL*bj'28DDD*bj'29EEE"(BJ99999s#=C%(CC("CC C c|tjdd|tjdd|tjddtj|tjddtj|tjdd|tjdd|tjdd|tjdd|tjd	dtj|d
dd|d
dd|ddd|ddd|ddd|ddd|ddd|ddd|ddd|ddd|ddd|dd d!|d"d#d|d$d#d|d%dddS)&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T22333"(:t44555"(;bmDDEEEdBMBBCCC"(#3T::;;;!1488999@@AAA!4nEEFFFJJKKKJA	O	O	O{:A	?	?	?zKQ	P	P	P{KQ	P	P	P	
v~q999w:::w:::wQ777xa888xa888x;;;w(LaPPPv':A>>>w(;Q???w:::::rcdD]8}|tj|dzdtj9dD]8}|tj|dzdtj9|tjdd|tjddtj|tjdd|tjdd	|tjd
dtj|tjdd|tjd
d|tjd
ddS)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:rLr)rspaces  rtest_ignore_spaceszReTests.test_ignore_spacessu"	H	HEOOBLc2:FFGGGG<	J	JEOOBLtRZHHIIIIXs33444YRZ@@AAA]C88999]G<<===^VRZHHIII%7@@AAA[#66777[#6677777rc~|tjddtj|tjddtj|tjdd|tjddtj|tjdd|tjdd	|tjd
dtj|tjdd|tjd
d|tjd
ddS)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_commentssUWc2:>>???XtRZ@@AAA[#66777_c2:FFGGG%8#>>???%;]KKLLL%<i%'Z11	2	2	2%@)LLMMM%6<<===%6<<=====rctjd}||dddtjd}||dddtjd}||d	d
dtjd}||d
ddtjd}||d
ddtjd}||ddddS)Nza(\w)zb\1r(r)za(.)uaሴubሴz..cdS)Nr{rrs rrz'ReTests.test_bug_6509.<locals>.<lambda>s5ra5r{sa(\w)sb\1sacsbcsa(.)sasbs..cdS)Nbytesrrs rrz'ReTests.test_bug_6509.<locals>.<lambda>s8rsa5r)r:r<r5rFrs  r
test_bug_6509zReTests.test_bug_6509sDj""..555j  33Y???j$77???j##%00%888j!!(33X>>>j!3!3U;;XFFFFFrc|tjdd|tjdd|tjdd|tjdd|tjdddS)Nz123.*-z123abc-u123é-u123€-u123􏿿-u
123é€􏿿-)rvr:rdrhs rtest_search_dot_unicodezReTests.test_search_dot_unicodes	(I66777	(J77888	(L99:::	(,<==>>>	(,FGGHHHHHrcNtjd}||tjtj|}||tj||||ttjddS)Nrandom patternr)r:r<assertIsInstancePatternr-r9rB)rr8same_patterns   rtest_compilezReTests.test_compiles*-..grz222z'**lBJ777

lG,,,)RZ33333rr])sizememusecd|z}tjd|}||||||||dS)Nrsr)r:rdassertIsNotNoner5rBrC)rrrVrs    rtest_large_searchzReTests.test_large_searchst
$JIc1QD)))$'''''rcd|z}tjdd|\}}||||||dzdS)Nrsrr])r:rr5)rrrVrMns     rtest_large_subnzReTests.test_large_subnsZ
$Jwr2q!!1AD1H%%%%%rc|tjdddg|tjddddS)Nz	(?i)(a)\1uaa Ārsz
(?s).{1,3}uĀĀrl)r5r:rUrgrerhs rtest_bug_16688zReTests.test_bug_16688s\	
L+>>FFF-@@EEGGPPPPPrc>ddz}|tjd|d|tjd|d|tjd|d|tjd|d|tjd	|d|tjd
|d|t
tjddd
zz|t
tjddd
zz|t
tjddd
zz|t
tjdddzdd
zfzdS)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_overflowsv+v66;;==zJJJ,77<<>>
KKK-88==??LLL+v66;;==zJJJ,77<<>>
KKK-88==??LLL-X35FGGG-YC5GHHH-Z!S&5HIII-[AsFAsFCS5STTTTTrcddz}d}d}|tj|dz|d|tj|dz|dtj|dztj|d	ztj|d
ztj|dztj|d	ztj|d
zd}|tj|tj|dz|tj|tj|dzdS)
Nr1i%&z(?<=((.{%d}){%d}){%d})z(?<!((.{%d}){%d}){%d}))rrr) rr[)@r]r])r]rr])r]r]rzlooks too much behind)rrr)r5r:rdrer<rr;)rrGp1p2r@s     rtest_look_behind_overflowz!ReTests.test_look_behind_overflow)s`y
&
&	
2(:#:FCCHHJJ'	)	)	)2(:#:FCCHHJJ	!	!	!	
2
%&&&

2
%&&&

2
%&&&

2
%&&&

2
%&&&

2
%&&&(rxRBW=WXXXrxRBW=WXXXXXrc4|ddddS)Nz
(?P=<foo>)z#bad character in group name '<foo>'rr?rhs r$test_backref_group_name_in_exceptionz,ReTests.test_backref_group_name_in_exception@s0|Da	I	I	I	I	Irc4|ddddS)Nz
(?P<?foo>)z"bad character in group name '?foo'rr?rhs rtest_group_name_in_exceptionz$ReTests.test_group_name_in_exceptionEs0|CQ	H	H	H	H	Hrc|dD]}dD]}d|z|zdz}|tj|tjddg||}|tj|tjddg|dS)N)rSrTrUz{1}rVryzr)r3r)r5r:r<rrUr)rrWrXr8s    rtest_issue17998zReTests.test_issue17998Js(	8	8D
8
8*s*T1  GRT!:!:!B!B5!I!I"'g!777!..**  GRT!:!:!B!B6!J!J"(w!8888
8	8	8rcdtdfD]g}tjd|}dt|jdt|jd}|t||hdtdtdtdfD]g}tjd|}dt|jdt|jd}|t||httjd	d
\}}dt|jdt|jd}|t||dt|jdt|jd}|t||dS)
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_reprTs%q'9'99	/	/F	.&11AAQ"""DGG$8$8$8G
T!WWg....'+;)<)< !122!"2335	/	/F	/622AAQ"""DGG$8$8$8G
T!WWg....R[g>>??
vvLL###T&\\%>%>%>
	
eg....LL###T&\\%>%>%>
	
fw/////rc|tjddgd|tjddgd|tjddgd|tjddgd	|tjdd
dd|tjdd
dd|tjd
ddd|tjddgd|tjddgd|dtjddDgd|dtjddDgddS)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+c6g|]}|Srrerrs  rrz*ReTests.test_zerowidth.<locals>.<listcomp>}s KKKq!&&((KKKr)r[r]r]r\r^r^rrc6g|]}|Srrrs  rrz*ReTests.test_zerowidth.<locals>.<listcomp>s LLLq!&&((LLLr)r[rtrr)r^rr)r5r:rrFrUrMrhs rtest_zerowidthzReTests.test_zerowidthns%113L3L3LMMM(G446Q6Q6QRRR"5w??ATATATUUU"5w??ATATATUUUsG44kBBB#w77DDD
GW==?PQQQHg668N8N8NOOOIw77444	6	6	6	
KKBK',J,JKKKAAA	C	C	CLLBK	7,K,KLLLIII	K	K	K	K	KrcndD]}dD]}tjd|d|}|d}||dd||dd	||d
ddS)N){0,}rSrTz{1,187})rrSrUz^((x|y)rxyyzyrxyyr]rrmr2)r:r<rgr5rz)rr]r`rMrs     r
test_bug_2537zReTests.test_bug_2537s5	2	2H.
2
2JJ88DEEGGG$$  U333  R000  S1111
2	2	2rctjd}||dddd||dddd||dddd||dddd	g||dd
gd||	dddddS)
Nz(ab)abracadabrarr)rGr?rK)rrrr^rkr])rGr)rrk	racadabra)
r:r<r5rgrerLrdrUrrgrs  rtest_keyword_parameterszReTests.test_keyword_parameterssj!!II]"I==BBDDf	N	N	NMMAaM@@EEGG	Q	Q	QJJm2J>>CCEEv	O	O	OKK}!BK??$	I	I	III]QI77###	%	%	%	
KK}!BK??FFHHMMOO					rc|tjddtjddS)Nz[a-c]+rrb)r5r:rLrrerhs rtest_bug_20998zReTests.test_bug_20998s<	
hrt<<AACCVLLLLLrz-musl libc issue on Emscripten/WASI, bpo-46390c(tjtj}|tjtj|dD]O}	tjtj|##tj$r|d|zYLwxYwt
j||	t
j|	|dS)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_cachings$V_55	(&/9EEE1	<	<C
< #6666<
<
<
<

4s:;;;;;
<	


!!###



!!#####A//'BBctjtjd|t	jddtjtjz|t	jddtjtjz|t	jddtjtjz|t	jdd|t	jdd|t	jdddS)Nr#(?Li)(?Li)(?Li))rr&r'rvr:rgr	rrhs rr+zReTests.check_en_US_iso88591s*:;;;k249EEFFF'249==>>>'249==>>>!1;??@@@w77888w7788888rctjtjd|t	jddtjtjz|t	jddtjtjz|t	jddtjtjz|t	jdd|t	jdd|t	jdddS)Nr$r2r3r4r5r6r7)	rr&r'rvr:rgr	rrfrhs rr,zReTests.check_en_US_utf8s,777k249EEFFF"(7GRT"$Y??@@@"(7GRT"$Y??@@@!1;??@@@"(<99:::"(<99:::::rctjtj}|tjtj|dD]O}	tjtj|##tj$r|d|zYLwxYwtjtjdt
jdtjtj	z}t
jdtjtj	z}t
jdtjtj	z}t
jdtjtj	z}|||fD]z}|
|d|
|d|
|d	{||d
||d||d	tjtjd|||fD]z}|
|d||d||d	{|
|d
||d||d	dS)Nr"r%r#r2s[a][a]s
[az][az]s[^][^]sssr$)
rr&r'r(r)r*r:r<r	rrvrgrf)rr-r.rrp3p4rWs        rtest_locale_compiledzReTests.test_locale_compileds
$V_55	(&/9EEE1	<	<C
< #6666<
<
<
<

4s:;;;;;
<	*:;;;
ZRT"$Y
/
/
Z)249
5
5
Z+RT"$Y
7
7
Z)249
5
5R	2	2AOOAGGK00111OOAGGK00111OOAGGK001111"((;//000"((;//000"((;//000,777R	4	4AOOAGGK00111aggk22333aggk223333--..."((;//000"((;//00000r0c|tj5}tjddddn#1swxYwY|j}||jt||jd||j	d||j
d||jd||j
t||dt||d|j
|tj5}tjddddn#1swxYwY|j}||jt||jd||j	d|tj5}tjdtjdddn#1swxYwY|j}||j	d||j
d	||jd
||j
t||dt||dt|dS)
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_errorsA


rx
(
(	$BJ{###	$	$	$	$	$	$	$	$	$	$	$	$	$	$	$lck3///k222!$$$Q'''A&&&

cgs3xx(((

&C111)37333


rx
(
(	#BJz"""	#	#	#	#	#	#	#	#	#	#	#	#	#	#	#lck5111j111!$$$


rx
(
(	!BJZ

!
!
!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!l"%%%Q'''B'''

cgs3xx(((

'S222

+SXX66666s5AAA$FF	F	 H88H<?H<c|ddd|ddd|ddd|dd	d
|ddd
|ddd
|ddd
|ddd|dd	d
|ddd
|dd	ddS)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(?rmr?rhs rtest_misc_errorszReTests.test_misc_errorsst%I1MMMy*NPQRRRy*BAFFFv'BAFFFw(>BBBx;;;v':A>>>y*KQOOOv'BAFFFx)@!DDDu&A1EEEEErc|dttj|dttjdS)Nrr)rBr{r:rrrhs r	test_enumzReTests.test_enum sB	


gs24yy)))

hBD		*****rctjdtj}||||||ktjtjdtj}|t
|t
||||tjtjdtj}|||tjtjd}||||t5||kddddS#1swxYwYdS)NroXYZ)
r:r<rr5rrhashassertNotEqualr9rB)rpattern1pattern2pattern3pattern4s     rtest_pattern_comparezReTests.test_pattern_compare&s:eR]33	
8,,,X-...	


:eR]33hh8888,,,	


:eR]33	
Hh///	


:e$$Hh///

y
)
)	 	 x	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 s&E::E>E>ctjd}tjtjd}|t	|t	||||tjtjd}tj5tjdt|	||ddddS#1swxYwYdS)Nrror;)
r:r<rr5rKrrrrrL)rrMrNrOs    rtest_pattern_compare_bytesz"ReTests.test_pattern_compare_bytesCs:f%%	


:f%%hh8888,,,	


:e$$

$
&
&	4	4!'<888(333	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4s<1C::C>C>ctd}tjd|}tjd|}||d||dd|dd<||d||ddS)Nsabcdefghs[a-h]+s[e-h]+sefghrr)rLr:rdr5rz)rrVrm2s    rtest_bug_29444zReTests.test_bug_29444Tsk""Ii##
Yy!
$
$K000W---!!!F+++S)))))rcd}d}|tj||dd}d}|tj||ddg|dtj||Ddd	gd
}d}|tj||dd
g|dtj||Dddddddgd}|dtj||Dddddddgd}|dtj||DdddddddddgdS)Nza	xz\b(?=(\t)|(x))x)Nr1rkz(?=(.)(.)?)rQ)rPrc6g|]}|Sr)r/rs  rrz*ReTests.test_bug_34294.<locals>.<listcomp>ks @@@!((**@@@rr|z1(?=<(?P<tag>\w+)/?>(?:(?P<text>.+?)</(?P=tag)>)?)z<test><foo2/></test>)r<foo2/>)foo2rc6g|]}|Srrnrs  rrz*ReTests.test_bug_34294.<locals>.<listcomp>s CCCA!++--CCCrrrY)tagrrZz<test>Hello</test><foo/>c6g|]}|Srr\rs  rrz*ReTests.test_bug_34294.<locals>.<listcomp>wr]rHellorrz<test>Hello</test><foo/><foo/>c6g|]}|Srr\rs  rrz*ReTests.test_bug_34294.<locals>.<listcomp>{r]r)r5r:rdr/rUrMrs   rtest_bug_34294zReTests.test_bug_34294^s
1a//11;???
Aq))$i0	2	2	2@@bk!Q.?.?@@@$k2	4	4	4
A"Aq))-|<	>	>	>CCQ1B1BCCC"()<<"($779	:	:	:
'CCQ1B1BCCC"('::"'668	9	9	9
-CCQ1B1BCCC"('::"'66"'668	9	9	9	9	9rc|tjddd|tjddd|tjddd|tjddddS)Nz	(ab|a)*?brkr&z	(ab|a)+?bz
(ab|a){0,2}?bz	(.b|a)*?brxrhs rtest_MARK_PUSH_macro_bugz ReTests.test_MARK_PUSH_macro_bugs	
,55<<>>GGG,55<<>>GGG"2D99@@BBFKKK,55<<>>GGGGGrcd}d}|tj||dd}d}tj||}||d||dd||d	dS)
Naxxzbczz(?:(?:a|bc)*?(xx)??z)*rxtcxyzxcz((x|yz)+?(t)??c)*)rrrm)r)xyzxcr1tr5r:rgr/rerrVrWrs    rtest_MIN_UNTIL_mark_bugzReTests.test_MIN_UNTIL_mark_bugs
%!Q..00':::
 HQNN6***F+++%899999rcd}d}tj||}||d||dd||dd}d}tj||}||d	||dd
||d|tjddd
dS)Naabaabz(?:[^b]*a(?=(b)|(a))ab)*)rrirm)rrrPababz(?:[^b]*(?=(b)|(a))ab)*rH)rmr^z(ab?)*?brkr&r:rgr5rer/rms    rtest_REPEAT_ONE_mark_bugz ReTests.test_REPEAT_ONE_mark_bugs$
'HQNN6***F+++[111
&HQNN6***F+++[111+t44;;==vFFFFFrcd}d}tj||}||d||dd||dd}d}|tj||d	dS)
Nrqz(?:.*?(?=(a)|(b))b)*rHrmr^r)NrPaxxzazz(?:a*?(xx)??z)*rgrrrms    rtest_MIN_REPEAT_ONE_mark_bugz$ReTests.test_MIN_REPEAT_ONE_mark_bugs
#HQNN6***F+++[111!Q..00':::::rc|tjdddtjdd}||d||dd||d	d||d
dS)Nz	(?!(..)c)rkrz((?!(ab)c)(.))*rqrHr]rur^)rPNrPrl)rrs  rtest_ASSERT_NOT_mark_bugz ReTests.test_ASSERT_NOT_mark_bugs	
,55<<>>HHH
H'006***F+++F+++%566666rc2|td5tjdddddn#1swxYwY|td5tjdtddddS#1swxYwYdS)Nz	got 'int'rYrz
got 'type')rrBr:rdr.rhs rtest_bug_40736zReTests.test_bug_40736s

#
#I{
;
;		IdA															

#
#I|
<
<	"	"IdD!!!	"	"	"	"	"	"	"	"	"	"	"	"	"	"	"	"	"	"s!>AA$BBBc	Nddz}tj}dD]}|tj|||tj|||g|tj||g|ttj	||g|tj
|d||tj|z
}||ddS)Nr1i)z\Ayz^yrg?)timeperf_counterrfr:rdr5rrUr+rMrF
assertLess)rrVrBrWrks     rtest_search_anchor_at_beginningz'ReTests.test_search_anchor_at_beginnings
I!##	2	2Abi1oo...RXa^^aS111RZ1--r222T"+a"3"344b999RVAr1--q1111%'	
3rcF
|tjdd|tjdddd|tjdddd|tjdddd|tjd	d
|tjddd
|tjddd
|tjddd|tjddd|tjddd|tjddd|tjddd|tjddd|tjdd|tjdd|tjdd|tjd dd!d"|tjd#dd!d"|tjd$dd!d"|tjd%d|tjd&d|tjd'd|tjd(d|tjd)d|tjd*d|tjd*d+d,S)-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_quantifierss 	
"(6622333&&1177::FCCC&$//55a88$???*f55;;A>>GGG"(8T22333)U33::<<gFFF/599@@BB 	"	"	"-88??AA	 	 	 '3//6688%@@@5%005577@@@5%005577@@@%//4466???%005577@@@"(5%00111"(=%88999"(?E::;;;-77==a@@#FFF/599??BBCHHH/599??BBCHHH"(9e44555"(;66777E22333e44555e44555"(8U3344451122222rc|tjdd|tjdd|tjdd|tjdd|tjdd|tjdd|tjdd|tjdd|tjdd|tjdd|tjd	d|tjd
d|tjdd|tjdd|tjd
d|tjdd|tjdd|tjdd|tjd
d|tjdd|tjdd|tjdd|tjdd|tjdddS)Nrrsra?+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:rLrfrhs r%test_fullmatch_possessive_quantifiersz-ReTests.test_fullmatch_possessive_quantifiers	sVS11222VS11222VS11222Z55666",vt44555",vt44555",vt44555",z488999Wd33444Wd33444Wd33444[$77888[$77888[$77888[$77888_d;;<<<",{E::;;;",{E::;;;",{E::;;;",>>???\599:::\599:::\599:::%5u==>>>>>rc|tjdddg|tjddgd|tjddgd|tjdddg|tjd	d
dg|tjdd
gd
|tjdd
gd|tjdd
dgdS)Nraabrfrrfrrrrsrsrrrrababcrqrrqrrrrkrkrrrr"rhs r#test_findall_possessive_quantifiersz+ReTests.test_findall_possessive_quantifiers	s9FE22TF;;;FE22NNNCCCFE224F4F4FGGGJ66???K99F8DDDK99;K;K;KLLLK99;O;O;OPPPOW==xHHHHHrc^tjd}||d||d|tjdd|tjdd|tjdd|tjdd|tjd	dd
S)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)rrMs  rtest_atomic_groupingzReTests.test_atomic_grouping&	s
:m,,(..//000v..///"(:u55666U33444U33444"(;66777"(;6677777rc|tjdd|tjdd|tjdd|tjdd|tjdd|tjdd|tjdd|tjdd|tjdd|tjdd|tjd	d|tjd
d|tjdd|tjdd|tjd
d|tjdd|tjdd|tjdd|tjd
d|tjdd|tjdd|tjdd|tjdd|tjdddS)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})crrhs rtest_fullmatch_atomic_groupingz&ReTests.test_fullmatch_atomic_grouping4	sY44555Y44555Y44555]C88999",y$77888",y$77888",y$77888",}d;;<<<Z66777Z66777Z66777^T::;;;^T::;;;^T::;;;^T::;;;%7>>???",~u==>>>",~u==>>>",~u==>>>",'95AABBB_e<<===_e<<===_e<<===%8%@@AAAAArc|tjdddg|tjddgd|tjddgd|tjdddg|tjd	d
dg|tjdd
gd
|tjdd
gd|tjdd
dgdS)Nrrrfrrrrrrrrqrrrrrr"rhs rtest_findall_atomic_groupingz$ReTests.test_findall_atomic_groupingO	s:Iu55v>>>Iu55~~~FFFIu557I7I7IJJJM599D6BBBNG<<vhGGGNG<<>N>N>NOOONG<<>R>R>RSSS$6@@6(KKKKKrc|tjdd|tjdddS)Nz(?s:(?>.*?\.).*)\Zza.txtz!(?s:(?=(?P<g0>.*?\.))(?P=g0).*)\Z)rvr:rLrhs rtest_bug_gh91616zReTests.test_bug_gh91616Z	sF%:GDDEEE%I7SSTTTTTrc|t5}tjd}dddn#1swxYwY|dt|j|dt|j|dt|j|dt|j|t5}tjdtj	tj
z}dddn#1swxYwY|dt|j|dt|j|dt|j|dt|j|||||
d||
d	dS)
Nrsz
re.template()z
is deprecatedfunctionr)rzzre.TEMPLATEahoynope)rrr:templaterBr{warningrCr<TEMPLATErr5rvrgr)rrAtemplate_re1template_re2s    r-test_template_function_and_flag_is_deprecatedz5ReTests.test_template_function_and_flag_is_deprecated^	sT


0
1
1	-R;t,,L	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-

os2:777

os2:777

j#bj//222RZ111


0
1
1	JR
:d"+bj2HIIIL	J	J	J	J	J	J	J	J	J	J	J	J	J	J	J	


mS__555

os2:777

fc"*oo...S__555	
|444**622333++F3344444s!<AA.D;;D?D?cf|tjddd|tjddd|tjddd|tjddd|tjddd	|tjd
dd	|tjddd|tjddd|tjd
dd|tjddd|tjddd|tjddd|tjddd	|tjddd	|tjddd|tjddddS)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_gh106052v	s"3W==BBDDfMMM.'::??AA6JJJ"3W==BBDDfMMM.'::??AA6JJJ"3U;;@@BBFKKK.%88==??HHH"7AAFFHH&QQQ"4g>>CCEEvNNN/599>>@@&III,66;;==vFFF/599>>@@&III,66;;==vFFF/377<<>>GGG,4499;;VDDD"5u==BBDDfMMM"2E::??AA6JJJJJrztest requires multiprocessingctjd}d}tj|jd|f}||t	||	d|	r*|
|dSdS#|	r)|
|wwxYw)Nz(?<=[({}])(((//[^\n]*)?[\n])([\000-\040])*)*((/[^/\[\n]*(([^\n]|(\[\n]*(]*)*\]))[^/\[]*)*/))((((//[^\n]*)?[\n])([\000-\040]|(/\*[^*]*\*+([^/*]\*+)*/))*)+(?=[^\000-\040);\]}]))zja(function() {
            ///////////////////////////////////////////////////////////////////
        });r)targetargszpattern.sub() timed out)r:r<multiprocessingProcessrFrBrrris_alive	terminate)rr8input_jsrWs    rtest_regression_gh94675zReTests.test_regression_gh94675	s*HII

#7;b(^LLL					}	QZZ\\+DEEEzz||





qzz||




s#(C?D
r)rrrr6rCrHrRrWrirwr~rrrrrrrrrrrrrrrrr#r0r>rDrNrXr[r`rdrhrorsrwrrrrrrrrrrrrrrrrrr:rLrrG
ascii_lettersdigitsrrrrrrrrrr'r2r;r=r@rDrHrLrNrPrYrarcrvrzr}rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr unittestskipIfr	r
r/r+r,r<rDrFrHrQrSrVrbrdrnrsrwryr{rrrrrrrrrrrrrrrr&r&%s	    ////////			EEE
1
1
1HHH"""")@)@)@V%%%
	'	'	'AAA,,,. . . `FFF
(((@@@+H+H+HZ	H	H	H010101dKKK3J3J3Jj	6	6	69994;;;NNNBBBB**-*-*-XRRR<@@@<&?&?&?P333
MMMOOO???
"H"H"HH333,NNN@FFF&&N&N&NP9994BBB)))###BBB8KKK4&=&=&=P$A$A$AL-F-F-F^???HHH+8+8+8ZAAA04$L))))(6=8;LLM
B
B
BBBBDDD&&&   ++++++<<<KKK@LLL8FFF*HHH$	G	G	GFFF
???
O
O
O333JJJ???
F
F
F:::///(***&&&&,,,,,,'''2444(((
,,,555444*DDD:M:M:Mz999999<<<:+:+:+:Z;;;B888>>>GGG$III444ZS###(($#(ZS(((&&)(&QQQ
U
U
UYYY.III
HHH
8880004KKK(222$MMM
X_ 7$$	$$999;;;X_ 711	1@"7"7"7HFFF+++   :444"*** 9 9 9DHHH
:
:
:GGG(;;;
7
7
7"""   %3%3%3N???6	I	I	I888BBB6	L	L	LUUU5550KKK(X__,.MNNONrr&ct5}tj|tjdddn#1swxYwY|Sr)rr:r<DEBUGgetvalue)routs  r
get_debug_outr	s			"c

3!!!"""""""""""""""<<>>s
 ;??c*eZdZdZdZdZdZdZdS)
DebugTestsNcd}d}|t|||t||dS)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_flag	sU*(R	
s++T222	
s++T22222rcL|tdddS)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	s3z225					rcL|tdddS)NrzPOSSESSIVE_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	s3v..	1										rcL|tdddS)NrzPOSSESSIVE_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	s3{336					r)rrrmaxDiffrrrrrrrrr	sVG.3.3.3`"


rrc\eZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdS)PatternReprTestscp|ttj||dSrr5rr:r<)rr8rs   rcheckzPatternReprTests.check
s0bj1122H=====rcr|ttj|||dSrr)rr8rzrs    rcheck_flagszPatternReprTests.check_flags	
s2bj%88998DDDDDrc2|dddS)Nrre.compile('random pattern')rrhs rtest_without_flagsz#PatternReprTests.test_without_flags
s(

#1	3	3	3	3	3rcH|dtjddS)Nrz+re.compile('random pattern', re.IGNORECASE))rr:rrhs rtest_single_flagz!PatternReprTests.test_single_flag
s.)2=9	;	;	;	;	;rc||dtjtjztjzddS)Nrz@re.compile('random pattern', re.IGNORECASE|re.DOTALL|re.VERBOSE))rr:rrrrhs rtest_multiple_flagsz$PatternReprTests.test_multiple_flags
s<)249RT>
2	3	3	3	3	3rc|dtjd|dtjtjztjzddS)Nrrz5re.compile('random pattern', re.IGNORECASE|re.DOTALL))rr:r{rrrhs rtest_unicode_flagz"PatternReprTests.test_unicode_flag
s^)247	9	9	9)249RT>4	5	5	5	5	5rc2|dddS)Nz(?i)patternz(re.compile('(?i)pattern', re.IGNORECASE)rrhs rrz"PatternReprTests.test_inline_flags 
s'

==	?	?	?	?	?rc||ddd|ddtjzddS)Nri0z&re.compile('random pattern', 0x123000)z4re.compile('random pattern', re.IGNORECASE|0x123000))rr:rrhs rtest_unknown_flagsz#PatternReprTests.test_unknown_flags$
sZ)8A	C	C	C)8BD=B	D	D	D	D	Drct|dd|dtjddS)N
bytes patternzre.compile(b'bytes pattern')z&re.compile(b'bytes pattern', re.ASCII))rrr:rrhs r
test_byteszPatternReprTests.test_bytes*
sO

#1	3	3	3)24A	C	C	C	C	CrcH|dtjddS)Nrz're.compile(b'bytes pattern', re.LOCALE))rr:r	rhs rtest_localezPatternReprTests.test_locale0
s3)24B	D	D	D	D	Drc|dd|dd|dddS)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_quotes4
sk

3>	@	@	@

3>	@	@	@

:E	G	G	G	G	Grcdddzz}ttj|}|t	|d||dddttj|tj}|t	|d||ddd||ddddS)	NzVery %spatternzlong r<i,zre.compile('Very long long loniz, re.IGNORECASE))rr:r<rrCr5r)rr8rMs   rtest_long_patternz"PatternReprTests.test_long_pattern<
s"gn5G$$%%A$$$3B3!ABBBGRT**++A$$$3B3!ABBB344"455555rc|ttjd|ttjtjztjzd|ttjtjztjzdzd|ttjd|ttjtjztjzd|ttjtjztjzdzddS)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_reprF
s>bd_555bd24in--=	?	?	?bd24ine455F	H	H	HbdUf	h	h	h	
RT	"$/00Z	\	\	\RT	"$ 6788b	d	d	d	d	drN)rrrrrrrrrrrrrrrrrrrrr
s>>>EEE333;;;333
555???DDDCCCDDDGGG666dddddrrceZdZdZedZdZdZedZdZ	edZ
edZed	Zd
S)ImplementationTestz7
    Test implementation details of the re module.
    c|t5dtj_dddn#1swxYwY|t5dtj_dddn#1swxYwY|t5tjd}t|d}d|_ddddS#1swxYwYdS)Nr]r)	r9rBr:Matchrrrr<r.rg)rrtps   rtest_immutablez!ImplementationTest.test_immutableZ
s

y
)
)		BHL															


y
)
)		BJN															


y
)
)		*R..Cckk"oo&&BBF																		s19==A<<BB!>C,,C03C0ctjj}||dg||ddg||dgd||dgd||dgd	||d
gddS)NrrsrrI)rrrraaaa)rr]rmr^ababba)rrr]rmrr]abcabdac)rrrr]rmrr]r)r:	_compiler_generate_overlap_tabler5)rfs  rtest_overlap_tablez%ImplementationTest.test_overlap_tablef
sL02###3!%%%6LLL1116LLL1118&8&8&8999:(@(@(@AAAAArc|tjjd|tjjddS)Nr)assertGreaterEqualr:r	MAXREPEATrbrhs rtest_signednessz"ImplementationTest.test_signednesso
s> 6::: 6:::::rct|tjt|tjtjd}t|t|ddS)Nr)rr:rrr<r.rgrs  rtest_disallow_instantiationz.ImplementationTest.test_disallow_instantiations
s]	%T28444$T2:666jnn$T4B+@+@AAAAArc	(gdgdgdd}|D]}||5tj|d|t
5}t
|dddn#1swxYwY|t|j	d|d||j
t||tjtj|}||j
|||jd||D]%}|t!||&tj|=dddn#1swxYwYdS)	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{rrrrBr__package__rvhasattr)r
deprecatednamerrXattrs      rtest_deprecated_modulesz*ImplementationTest.test_deprecated_modules{
s%---333(((
	
	

	&	&DT**

&

&d+++%%&899%Qt$$$%%%%%%%%%%%%%%%  QY!A4!A!A!ACCC  X666

dCK000k$'  t444  "555&t,88DOOGC$6$67777K%

&

&

&

&

&

&

&

&

&

&

&

&

&

&

&	&	&s6;F#A?3F?BFBC2FF		F		cddl}tdD]}t|}t|}|||||||||tj	v}||
||||||ttddddgzD]8}t|}|||||dkrH|||t|||kp||
k}||
||||||kp||
k:||dd||dtd||
d||ddS)Nrriii(i0r)_srerrordrr5
ascii_tolowerunicode_tolowerrGr
ascii_iscasedunicode_iscasedr+rrrv)rr&rruloiscaseds      rtest_case_helpersz$ImplementationTest.test_case_helpers
ss	?	?AAAQWWYYBT//22B777T11!44b9996//GT//22G<<<T11!44g>>>>eC(())Wg,>>	?	?AAAT//22A666F{{  !5!5a!8!8#aggii..III17799n6QWWYYGT//22333T11!44!''))^=qAGGII~
?
?
?
?	
++F33V<<<--f55s3xx@@@++F33444,,V4455555rc	4ddl}ddz}|ttjdi|t
5|dd|gdiddddn#1swxYwY|t5|idgdggdddn#1swxYwY|t5|dddgdidddddS#1swxYwYdS)Nrrmrrsrorr)r&r9rBr:rMrr<)rr&
long_overflows   rtest_dealloczImplementationTest.test_dealloc
s	
3
)R[#r:::


}
-
-	?	?LLM?Ar2>>>	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?


y
)
)	/	/LLQAr2...	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/

y
)
)	4	4LLQB333	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4s6A33A7:A7B??CC$D

DDc	ddlm}n%#t$r|dYnwxYwddz}|tjd|dz
z||tjd|dz
z|d	|tjd
|dz
z||	tt
jd|z|	tt
jd|z|	tt
jd
|zdS)Nr)rz requires _sre.MAXREPEAT constantr1rrr]r)rrr)r&rImportErrorr*rfr:rgr5rer9rr<)rrrGs   r%test_repeat_minmax_overflow_maxrepeatz8ImplementationTest.test_repeat_minmax_overflow_maxrepeat
sL	>&&&&&&&	>	>	>MM<=====	>v"(8y1}#=vFFGGG)y1}"=vFFKKMM$	&	&	&"(:Q#?HHIII-X	5IJJJ-Y5JKKK-Z)5KLLLLLs	++N)
rrr__doc__rrrrrr$r.r1r4rrrrrU
s		\	BBB;;;BB\B&&&666\6444\4"MM\MMMrrceZdZdZdZdS)
ExternalTestscBddlm}|D]\}}|||5tj|}|||||||||ddz|zddzz}||||||d|||ddt|z|||ddt|zdddn#1swxYwYdS)zre_tests benchmarksr)
benchmarksr8rGrqrN)

test.re_testsr9r=r:r<rvrdrgrLrC)rr9r8rVrWs2s      rtest_re_benchmarksz ExternalTests.test_re_benchmarks
s,,,,,,$
	H
	HJGQga88	
H	
HJw'',,,

+++A///Y]SY.---E 2 2333E53q66> B BCCCBus1vv~ F FGGG	
H	
H	
H	
H	
H	
H	
H	
H	
H	
H	
H	
H	
H	
H	
H
	H
	HsE FF	F	c*
ddlm}m}m}|D]}dx}x}x}x}}	t	|dkr	|\}}}}}	n*t	|dkr|\}}}ntd||||5||krX|tj	5tj
|dddn#1swxYwY	dddtj
|}
|
|}||kr$||d	ddd|5|
|d	|d\}}
|d||jjd
}t#ddD]7}	||}|d
}n#t$$rd}YnwxYw||d|z<8|jjD]4}	||}|d
}n#t$$rd}YnwxYw|||<5|t-|||	ddddn#1swxYwY	t/|d}t/|d}|d5tj
|}
|
|
|dddn#1swxYwY|d5tj
|tj}
|
|}|t3d|dddn#1swxYwYn#t4$rYnwxYw|dddkr~|dddkrp|n|d5tj
|}
|
|
|||
dzdddn#1swxYwY|d5tj
|tj}
|
|
|dddn#1swxYwY|d5tj
|tj}
|
|
|dddn#1swxYwYdddn#1swxYwYdS)zre_tests test suiter)testsFAILSYNTAX_ERRORNrr^z%Test tuples should have 3 or 5 fieldsr:zSucceeded incorrectlyzFailed incorrectly)foundr/rzr]dNoner)zg%dzgrouping errorrzbytes pattern matchzlocale-sensitive matchz#=== Fails on locale-sensitive matchrmrzrange-limited matchzcase-insensitive matchzunicode-sensitive match)r;r?r@rArCrr=r9r:r;r<rdrfrvrerzrzrrr|keysr5evalrrprintUnicodeEncodeErrorrr)rr?r@rArkr8rVoutcomerErobjresultrBrCvardictrgirbss                   r
test_re_testszExternalTests.test_re_tests
s;;;;;;;;;;Z	3Z	3A6::G:a:':D81vv{{673GT88Q1&'#GG !H!LLLga88Q
3Q
3l****2844,,
7+++,,,,,,,,,,,,,,,	Q
3Q
3Q
3Q
3Q
3Q
3Q
3j))Ad??%%f.EFFFQ
3Q
3Q
3Q
3Q
3Q
3Q
3\\^^77OOF,@AAA"(QJE3(.Q)/(.	99G#1c]]00)!'aB!z%+))))!(BBB)-/	**#Y16688(()!'aB!z%+))))!(BBB)%'

$$T$%8%8(%57773777777777777777<L '22Dq'**B
&;<<88 j..

2777888888888888888&>??LL jry99!$B!>!"GKKK	LLLLLLLLLLLLLLL*D(BQBK5((WRSS\U-B-B & 2&;<<GG j11

1eS1W(E(EFFFGGGGGGGGGGGGGGG\\":;;33*Wbm<<COOCJJqMM222333333333333333\\";<<33*Wbj99COOCJJqMM222333333333333333_Q
3Q
3Q
3Q
3Q
3Q
3Q
3Q
3Q
3Q
3Q
3Q
3Q
3Q
3Q
3Z	3Z	3s7&TB>2T>CTCTAT)T=A6I-4G
I-GI-G,I-
H$#I-$H30I-2H33.I-!T-I11T4I15T9 M6T.=K7+T7K;;T>K;?TAM*T*M..T1M.2T6
NTN6T9AP;TPTPT'AQ;/T;Q??TQ?TAS/#T/S33T6S37TT
	
T
	N)rrrr=rPrrrr7r7
s:
H
H
H]3]3]3]3]3rr7__main__)$test.supportrrrrrrr	r
rrr:rGrr}rrrweakrefr
_multiprocessingrr3r{rrr#TestCaser&rrrrr7rmainrrr<module>rWs))))))))))))))))))))))


				







OOO----------------w%w%w%w%w%hw%w%w%tK\\\\\"\\\~MdMdMdMdMdx(MdMdMd`{M{M{M{M{M*{M{M{M|n3n3n3n3n3H%n3n3n3bzHMOOOOOsA		AA