403Webshell
Server IP : 121.121.20.254  /  Your IP : 216.73.216.165
Web Server : Microsoft-IIS/10.0
System : Windows NT WEB-SERVER 10.0 build 20348 (Windows Server 2022) AMD64
User : IUSR ( 0)
PHP Version : 8.3.28
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/Python313/Lib/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/Python313/Lib/test/__pycache__/test_re.cpython-313.opt-1.pyc
�

��igY���SSKJrJrJrJrJrJrJrJrJ	r	J
r
JrJr SSK
r
SSKrSSKrSSKrSSKrSSKrSSKrSSKJr SSKJr SSKrSSKr"SS\5r"SS\5r"S	S
\R<5rSr \"SS
\R<55r!"SS\R<5r""SS\R<5r#"SS\R<5r$\%S:Xa\RL"5 gg!\a SrN�f=f)�)�
gc_collect�
bigmemtest�_2G�cpython_only�captured_stdout�check_disallow_instantiation�
is_emscripten�is_wasi�warnings_helper�
SHORT_TIMEOUT�CPUStopwatch�requires_resourceN)�Scanner)�proxyc�(^�\rSrSrU4SjrSrU=r$)�S�c�4>�[[TU]	U55$�N)r�super�__getitem__��self�index�	__class__s  ��!C:\Python313\\Lib\test\test_re.pyr�
S.__getitem__�������$�U�+�,�,����__name__�
__module__�__qualname__�__firstlineno__r�__static_attributes__�
__classcell__�rs@rrr�
���-�-rrc�(^�\rSrSrU4SjrSrU=r$)�B�!c�4>�[[TU]	U55$r)r+rrrs  �rr�
B.__getitem__"rrr r!r(s@rr+r+!r)rr+c��\rSrSrS�SjrS�SjrS�SjrSrSrSr	S	r
S
rSrSr
S
rSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSr S r!S!r"S"r#S#r$S$r%S%r&S&r'S'r(S(r)S)r*S*r+S+r,S,r-S-r.S.r/S/r0S0r1S1r2S2r3S3r4S4r5S5r6S6r7S7r8S8r9S9r:S:r;SS\<Rz4S;jr>\?R�\?R�-S<-rBS=rCS>rDS?rES@rFSArGSBrHSCrISDrJSErKSFrLSGrMSHrNSIrOSJrPSKrQSLrRSMrSSNrTSOrUSPrVSQrWSRrXSSrYSTrZSUr[SVr\SWr]SXr^SYr_SZr`S[raS\rb\cR�"\eS]9S^5rfS_rgS`rhSariSbrjScrkSdrlSermSfrnSgroShrpSirq\r"\sSjSk9Sl5rt\r"\sSmSk9Sn5ruSorvSprwSqrxSrrySsrzStr{Sur|Svr}Swr~SxrSyr�\�GR"\�=(d \�Sz5\�GR"\�GRGRS{5S|5S}55r�S~r�Sr�\�GR"\�=(d \�Sz5\�GR"\�GRGRS{5S|5S�55r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�\�"S�5S�5r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�\�GR"\�SLS�5S�5r�S�r�S�r�S�r�S�r�\�GRT"\�"\<GRXS�5S�5S�5r�S�r�g)��ReTests�%Nc�N^^^�TRXT5 UUU4SjmT"X5 g)Nc�>�[U[[45(a[X5H
up#T"X#5 M gTR	[U5[U5T5 gr)�
isinstance�tuple�list�zip�assertIs�type)�actual�expect�x�y�msg�recursers    ���rr?�)ReTests.assertTypedEqual.<locals>.recurse)sF����&�5�$�-�0�0���/�D�A��A�M�0��
�
�d�6�l�D��L�#�>r)�assertEqual)rr:r;r>r?s`  `@r�assertTypedEqual�ReTests.assertTypedEqual's"��������-�	?�	��rc��UR[R5n[R"U5 SSS5 UR	US9 WR
nUR
URU5 UbUR
URU5 SSS5 g!,(df   Nn=f!,(df   g=f)N��pattern)	�assertRaises�re�PatternError�compile�subTest�	exceptionrAr>�pos)rrF�errmsgrM�cm�errs      r�checkPatternError�ReTests.checkPatternError1s���
�
�
�r���
/�2��J�J�w��0�
�\�\�'�\�
*��,�,�C����S�W�W�f�-���� � ����#�.�	+�
*�0�
/��
*�
*�s�B�AB0�
B-�0
B>c��UR[R5n[R"XU5 SSS5 UR	XS9 WR
nUR
URU5 UbUR
URU5 SSS5 g!,(df   Nn=f!,(df   g=f)N)rF�repl)	rGrHrI�subrKrLrAr>rM)rrFrT�stringrNrMrOrPs        r�checkTemplateError�ReTests.checkTemplateError:s���
�
�
�r���
/�2��F�F�7�&�)�0�
�\�\�'�\�
5��,�,�C����S�W�W�f�-���� � ����#�.�	6�
5�0�
/��
5�
5�s�B �AB1� 
B.�1
B?c��grr �rs r� test_error_is_PatternError_alias�(ReTests.test_error_is_PatternError_aliasCs�rc��[S5n[R"SU5nUR[5 URS5 SSS5 [
U5 A[5 URS5 g!,(df   N6=f)N�x�as�xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)�	bytearrayrH�finditerrG�BufferError�extendr6r)r�b�its   r�test_keep_buffer�ReTests.test_keep_bufferFs^���d�O��
�[�[��q�
!��
�
�
�{�
+�
�H�H�X��,��R�����	�����,�
+�s�A:�:
Bc��Sn[R"S5n[U5nURUR	S5UR	S55 g)N�QabbbcRzab+c)rHrJrrA�findall)r�sr<r=s    r�test_weakref�ReTests.test_weakrefQs@�����J�J�v����!�H��������9�-�q�y�y��/C�Drc���UR[R"SS5RS5S5 UR[R"SS5R5S5 UR[R"SS5RS5S5 UR[R"SS5R5S5 UR	[R"SS55 UR[R
"S	S
5RS5S5 UR[R
"S	S
5R5S5 UR[R
"SS5RS5S5 UR[R
"SS5R5S5 UR	[R
"S
S
55 g)N�x*�axxr�rrzx+���r<�aaaza*�xxx�xxxa�rrt�a+)rArH�search�span�assertIsNone�matchrZs r�test_search_star_plus�ReTests.test_search_star_plusWs\��������4��/�4�4�Q�7��@�������4��/�4�4�6��?�������4��/�4�4�Q�7��@�������4��/�4�4�6��?����"�)�)�C��/�0�������$��.�3�3�A�6��?�������$��.�3�3�5�v�>�������$��/�4�4�Q�7��@�������$��/�4�4�6��?����"�(�(�4��/�0rc��UR[R"SS5R5S5 UR[R"SS5R5S5 UR[R"SS5R5S5 UR[R"SS5R5S5 UR[R"SS	5R5S5 UR[R"SS
5R5S5 UR[R"SS5R5S
5 UR[R"SS5R5S
5 UR[R"SS5R5S
5 g)z<Test Branching
Test expressions using the OR ('|') operator.z(ab|ba)�ab�r��baz(abc|bac|ca|cb)�abcrx�bac�ca�cbz
((a)|(b)|(c))�a�rrsrd�cN�rArHr}r{rZs r�test_branching�ReTests.test_branchingcsX��	
������)�T�2�7�7�9�6�B�������)�T�2�7�7�9�6�B�������"3�U�;�@�@�B��	!�������"3�U�;�@�@�B��	!�������"3�T�:�?�?�A��	!�������"3�T�:�?�?�A��	!�������/�3�7�<�<�>��G�������/�3�7�<�<�>��G�������/�3�7�<�<�>��Grc�R�[URS55n[US-5$)Nrrs)�int�group�str)r�matchobj�	int_values   r�bump_num�ReTests.bump_numts$������q�)�*�	��9�q�=�!�!rc
�b^�UR[R"SSS5S5 UR[R"S[S5[S55S5 UR[R"SSS5S5 UR[R"S[	S5[	S55S5 UR[R"S[S5[S55S5 UR[R"S[
S5[
S55S5 S	H.nUR[R"USS
U-5S5 M0 UR[R"SSS
5S5 UR[R"SURS5S5 UR[5nUR[R"SURSS5S5 SSS5 URWR[5 UR[R"SURSSS9S5 UR[R"SSS5S5 UR[R"SSS5S5 SmUR[R"STS5S5 UR[R"STRSS5S5T5 UR[R"SU4SjS5T5 UR[R"SS S5S!5 UR[R"SS"S5S!5 UR[R"S#S$S5S!5 UR[R"S#S%S5S!5 UR[R"S&S'S5S!5 UR[R"SS(S5S)5 UR[R"SS)S5S)5 UR[R"SS)S5[S*5[S+5-[S,5-[S-5-[S.5-[S/5-[S05-5 S1HsnURU5 UR![R"5 UR[R"SSU-S5SU-5 SSS5 SSS5 Mu UR[R"S2S3S45S55 g!,(df   GNr=f!,(df   NU=f!,(df   M�=f)6Nr=r��xyz�xaz�yr_�xyzsxaz��àuаu𝒜zx%sz�(?i)b+r<�	bbbb BBBB�x x�\d+z08.2 -2 23x99yz9.3 -3 24x100yrtz
9.3 -3 23x99y��count�.c��g)N�\nr ��ms r�<lambda>�+ReTests.test_basic_re_sub.<locals>.<lambda>�s��urr��
z\1\1z(.)�xx�\�\\c�>�T$rr )r�rks �rr�r��s���r�(?P<a>x)z
\g<a>\g<a>�xxxxz
\g<a>\g<1>�
(?P<unk>x)z\g<unk>\g<unk>z
\g<1>\g<1>z()xz
\g<0>\g<0>z\t\n\v\r\f\a\bz	

�	�
��
����,cdehijklmopqsuwxyzABCDEFGHIJKLMNOPQRSTUVWXYZz^\s*�X�test�Xtest)rBrHrUrr+r`�
memoryviewrAr��assertWarns�DeprecationWarning�filename�__file__�replace�chrrKrGrI)rr=�wr�rks    @r�test_basic_re_sub�ReTests.test_basic_re_subxs������b�f�f�S�#�u�5�u�=����b�f�f�S�!�C�&�!�E�(�;�U�C����b�f�f�T�4��8�&�A����b�f�f�T�1�T�7�A�f�I�>��G����b�f�f�T�9�T�?�I�f�<M�N�PV�W����b�f�f�T�:�d�+;�Z��=O�P�RX�Y�1�A����R�V�V�A�s�F�Q�J�7��?�2�	
�������#�{�;�U�C���������
�
�7G�H�)�	+�
�
�
�0�
1�Q����R�V�V�F�D�M�M�;K�Q�O�,�
.�2�	
������X�.���������
�
�7G�q�Q�(�	*�	
�������_�c�:�E�B��������U�C�0�$�7����������q�#�.��5��������q�y�y��u�'=�s�C�Q�G��������{�C�8�!�<�������
�M�4�@�&�I�������
�M�4�@�&�I��������.?��F��O��������m�T�B�F�K��������}�d�;�V�D��������%6��<�>N�O��������%5�s�;�=M�N��������%5�s�;��a�&��R��.��R��0��R��8��R��@��Q��G��A��N�	Q�?�A����a���&�&�r���7��$�$�R�V�V�C����3�%?����J�8�!��@�
	
��������f�5�w�?�=2�
1��68�7��!��s0�4U<�0 V�/V�?V�<
V�
V�V�
V.	c�T�UR[R"SSS5S5 g)Nr�z\g<1>\g<1>\br�zxxxx�rArHrUrZs r�test_bug_449964�ReTests.test_bug_449964�s"��������
���E�#�	%rc�D�UR[R"SSS5S5 UR[R"SSS5S5 UR[R"SSS5S5 UR[R"SSS5S5 g)Nz\r\nr�z
abc
def
zabc
def
z
r�r�rZs r�test_bug_449000�ReTests.test_bug_449000�s�����������0@�A�%�	'���������/?�@�%�	'���������/?�@�%�	'���������.>�?�%�	'rc���[R"S5nUR[[RUS[R
5 UR[[RUS[R
5 UR[[RUS[R
5 UR[[RU[R
5 g)Nr��A)rHrJrG�
ValueErrorr}�Irzrj�rrFs  r�
test_bug_1661�ReTests.test_bug_1661�s����*�*�S�/�����*�b�h�h���b�d�d�C����*�b�i�i��#�r�t�t�D����*�b�j�j�'�3����E����*�b�j�j�'�2�4�4�@rc�0�[R"S5 g)Nz(?P<quote>)(?(quote)))rHrJrZs r�
test_bug_3629�ReTests.test_bug_3629�s��
�
�
�*�+rc��UR[R"SSS5S5 UR[R"SSS5S5 UR[R"SSS5S5 UR[R"SSS5S5 UR[R"SS	S5S
5 UR[R"SSS5S5 UR[R"SS
S5S5 UR[R"SSS5S5 UR[R"SSS5S5 UR[R"SSS5S5 UR[R"SSS5S5 UR[R"SSS5S5 UR[R"SSS5S5 UR[R"SSS5S
5 UR[R"SSS5S5 URSSSSS5 URSSSSS5 URSSSS S!5 URSS"SS#S!5 URSS$SS%S!5 URSS&SS'S!5 URSS(SS)S!5 URSS*SS S!5 URSS+SS,S!5 URSS-SS.S!5 URSS/SS'S!5 URSS0SS'S!5 URSS1SS)S!5 URSS2SS3S!5 URSS"S4S#S!5 UR[R"S5S&S5S5 UR[R"S6S/S75S85 UR[R"S6S0S75S95 g):Nr<�\0�z\000z\001�z\008�8z\009z9z\111r�z\117�Oz\377�ÿz\1111�I1z\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 1rsz\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 80�z(((((((((((x)))))))))))z((((((((((y))))))))))(.)r��xz8�xza)rArHrUrWrZs r� test_sub_template_numeric_escape�(ReTests.test_sub_template_numeric_escape�s����������U�C�0�$�7��������W�c�2�F�;��������W�c�2�F�;��������W�c�2�J�?��������W�c�2�J�?��������W�c�2�F�;��������W�c�2�F�;��������W�c�2�F�;��������X�s�3�W�=��������X�s�3�\�B��������V�S�1�6�:��������V�S�1�6�:��������V�S�1�:�>��������V�S�1�:�>��������V�S�1�:�>�����W�c�!1�23�	5�	
����W�c�!1�23�	5�	
����U�C�1L�a�P�����U�C�1L�a�P�����U�C�1L�a�P�����V�S�2N�PQ�R�����V�S�2N�PQ�R�����V�S�2M�q�Q�����V�S�2N�PQ�R�����V�S�2N�PQ�R�����W�c�3O�QR�S�����W�c�3O�QR�S�����W�c�3O�QR�S�����W�c�3O�QR�S�����U�B�0K�Q�O�	
������ 9�6�3�G��M������� :�G�U�K��	 ������� :�G�U�K��	 rc
�J�UR[R"SSS5S5 UR[5nUR[R"SSSS5S5 SSS5 URWR
[5 UR[R"SSSSS9S5 UR[S5 [R"SSSSSS9 SSS5 UR[S	5 [R"SSSSS
S
S9 SSS5 UR[S5 [R"SSSSS
S
5 SSS5 g!,(df   N�=f!,(df   N�=f!,(df   Nk=f!,(df   g=f)
Nr�rd�aaaaa�bbbbbrs�baaaar�z0sub\(\) got multiple values for argument 'count'z0sub\(\) got multiple values for argument 'flags'r��flagsz?sub\(\) takes from 3 to 5 positional arguments but 6 were given)	rArHrUr�r�r�r��assertRaisesRegex�	TypeError�rr�s  r�test_qualified_re_sub�ReTests.test_qualified_re_sub�sN���������S�'�2�G�<�
�
�
�0�
1�Q����R�V�V�C��g�q�9�7�C�2�������X�.��������S�'��;�W�E�
�
#�
#�I�C�E��F�F�3��W�a�q�1�E��
#�
#�I�C�E��F�F�3��W�a��!�4�E��
#�
#�I���
�F�F�3��W�a��A�.���2�
1��
E�E��E�E����s/�*E!�
E2�F�<F�!
E/�2
F�
F�
F"c��UR[5n[R"SSS[R5nSSS5 URW[R"SSS[
[R5S95 UR[WR5S5 URUR[5 UR[5n[R"SSS[R5nSSS5 URU[R"SSS[
[R5S95 UR[UR5S5 URUR[5 UR[5n[R"S	S
[R5nSSS5 URU[R"S	S
[
[R5S95 UR[UR5S5 URUR[5 g!,(df   GN!=f!,(df   GNk=f!,(df   N�=f)
Nr�rdr�r�z('count' is passed as positional argument�b*r<r��:�:a:b::c��maxsplitz+'maxsplit' is passed as positional argument)
r�r�rHrUr�rAr�r��warningr�r��subn�split)rr��results   r�test_misuse_flags�ReTests.test_misuse_flagss���
�
�
�0�
1�Q��V�V�C��g�r�t�t�4�F�2���������S�'��R�T�T��!K�L�����Q�Y�Y��C�	E�������X�.�
�
�
�0�
1�Q��W�W�T�3��r�t�t�4�F�2���������s�E��R�T�T��!K�L�����Q�Y�Y��C�	E�������X�.�
�
�
�0�
1�Q��X�X�c�9�b�d�d�3�F�2��������#�y�3�r�t�t�9�!M�N�����Q�Y�Y��F�	H�������X�.�#2�
1��2�
1��2�
1�s#�(I�(I*�&'I<�
I'�*
I9�<
J
c�T�UR[R"SSS5S5 g)Nz(\S)\s+(\S)z\1 \2zhello  therezhello therer�rZs r�test_bug_114660�ReTests.test_bug_114660s"����������.�I�&�	(rc���[R"S5 [R"S5 [R"S5 [R"S5 [R"S5 [R"S5 SRS[S	S
555nSU-nUR	[R
"US5R
5S
5 g)Nz(?P<a>x)(?P=a)(?(a)y)z(?P<a1>x)(?P=a1)(?(a1)y)z(?P<a1>x)\1(?(1)y)s(?P<a1>x)(?P=a1)(?(a1)y)u(?P<µ>x)(?P=µ)(?(µ)y)uf(?P<𝔘𝔫𝔦𝔠𝔬𝔡𝔢>x)(?P=𝔘𝔫𝔦𝔠𝔬𝔡𝔢)(?(𝔘𝔫𝔦𝔠𝔬𝔡𝔢)y)�|c3�.# �UHnSX4-v� M
 g7f�z
x(?P<a%d>%x)yNr ��.0�is  r�	<genexpr>�/ReTests.test_symbolic_groups.<locals>.<genexpr>$����K�9J�A��!��/�9J���rs��z(?:%s)(?(200)z|t)�xc8yz�r�)rHrJ�join�rangerAr}r{�r�pats  r�test_symbolic_groups�ReTests.test_symbolic_groupss���
�
�
�+�,�
�
�
�.�/�
�
�
�(�)�
�
�
�.�/�
�
�
�-�.�
�
�
�{�|��h�h�K��q�'�9J�K�K��!�C�'��������#�w�/�4�4�6��?rc�$�URSS5 URSSS5 URSS5 URSS	S
5 URSSS
5 URSSS
5 URSSS
5 URSS5 URSS5 URSSS
5 URSSS
5 URSSS
5 URSSS
5 URSSS
5 URSSS
5 URSSS
5 URSSS5 URS SS5 URS!SS5 URS"S#S5 URS$S%S5 URS&SS5 URS'S(S
5 URS)S(S
5 URS*S(S5 URS+S,S
5 URS-S,S
5 URS.S,S5 g)/Nz(?P<a>)(?P<a>)z6redefinition of group name 'a' as group 2; was group 1z
(?P<a>(?P=a))�cannot refer to an open groupr�z(?Pxy)zunknown extension ?Pxz(?P<a>)(?P=a�missing ), unterminated namer�z(?P=�missing group name�z(?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(?(rtz(?())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)�rQrZs r�test_symbolic_groups_errors�#ReTests.test_symbolic_groups_errors(s(�����0� -�	.�	
���/�>��	D����y�*A�B�����0N�PR�S����w�(<�a�@����x�)=�q�A����y�*K�Q�O����y�*B�C����z�+D�E����z�+M�q�Q����x�)G��K����x�)G��K����w�(<�a�@����y�*>��B����z�+L�a�P����{�,N�PQ�R����v�';�Q�?����x�)=�q�A����y�*B�A�F����z�+M�q�Q����z�+M�q�Q����z�+M�q�Q����{�,N�PQ�R����y�*L�a�P����z�+M�q�Q����1�H�!�	M����/�H�!�	M����0�H�!�	Mrc�(�UR[R"SSS5S5 UR[R"SSS5S5 UR[R"SSS5S5 UR[R"S	S
S5S5 UR[R"SSS5S5 S
RS[	SS555nUR[R"USS5S5 g)Nz(?P<a>x)|(?P<b>y)z\g<b>r�r��\2s	(?P<a1>x)s\g<a1>�xxu	(?P<µ>x)u\g<µ>u#(?P<𝔘𝔫𝔦𝔠𝔬𝔡𝔢>x)u \g<𝔘𝔫𝔦𝔠𝔬𝔡𝔢>rc3�.# �UHnSX4-v� M
 g7frr rs  rr	�-ReTests.test_symbolic_refs.<locals>.<genexpr>Trrrsr
z\g<200>�	xc8yzxc8y�c8zc8)rArHrUrrrs  r�test_symbolic_refs�ReTests.test_symbolic_refsLs��������� 3�X�t�D�b�I������� 3�U�D�A�2�F��������j�%�@�%�H��������Y��=�t�D������� E�Gj�lp�q�sw�x��h�h�K��q�'�9J�K�K���������Z��=�w�Grc�^�URSSSSS5 URSSSSS5 URSSSS	S
5 URSSSSS5 URSS
SSS5 URSSSSS5 URSSSSS5 URSSSSS5 UR[S5 [R"SSS5 SSS5 URSSSSS5 URSSSSS5 URSSSSS5 URSSSSS5 URSSSS S5 URS!S"S#S$S5 URSS%SS&S5 URSS'SS(S5 URSS)SS*S5 g!,(df   N�=f)+Nr�z\g<ar�rrtz\g<rz\gz	missing <r�z\g<a a>z!bad character in group name 'a a'z\g<>z\g<1a1>z!bad character in group name '1a1'z\g<2>�invalid group reference 2r$rszunknown 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<µ>r%ru\g<㊀>�!bad character in group name '㊀'u\g<¹>� bad character in group name '¹'u\g<१>�!bad character in group name '१')rWr��
IndexErrorrHrUrZs r�test_symbolic_refs_errors�!ReTests.test_symbolic_refs_errorsWs������
�G�T� >��	C����
�F�D� 4�a�	9����
�E�4��a�H����
�J�� C�Q�	H����
�G�T� 4�a�	9����
�J�� C�Q�	H����
�H�d� ;�Q�	@����
�E�4� ;�Q�	@�
�
#�
#�J�0I�
J��F�F�:�y�$�/�K����
�I�t� B�A�	G����
�I�t� B�A�	G������T� C�Q�	H����
�J�� C�Q�	H����
�I�t� B�A�	G�����-=�u� I�1�	N����
�J�� C�Q�	H����
�I�t� B�A�	G����
�J�� C�Q�	H�%K�
J�s�?F�
F,c
�:�UR[R"SSS5S5 UR[R"SSS5S5 UR[R"SSS5S5 UR[R"S	SS5S
5 UR[5nUR[R"S	SSS5S5 SSS5 URWR
[5 UR[R"S	SSSS
9S5 UR[S5 [R"SSSSSS
9 SSS5 UR[S5 [R"SSSSSSS9 SSS5 UR[S5 [R"SSSSSS5 SSS5 g!,(df   N�=f!,(df   N�=f!,(df   Nk=f!,(df   g=f)Nr�r<r�)r�r�zb+)zx BBBBrsr�)r�rr�)�xxxyxzxrr�)�xxxyzr�r�z1subn\(\) got multiple values for argument 'count'r�rdr�rsz1subn\(\) got multiple values for argument 'flags'rr�z@subn\(\) takes from 3 to 5 positional arguments but 6 were given)	rArHr�r�r�r�r�r�r�r�s  r�test_re_subn�ReTests.test_re_subn|s����������3��<�j�I��������s�K�8�-�H��������s�E�2�J�?��������s�E�2�N�C�
�
�
�0�
1�Q����R�W�W�T�3��q�9�<�H�2�������X�.��������s�E��;�\�J�
�
#�
#�I�D�F��G�G�C��g�q��2�F��
#�
#�I�D�F��G�G�C��g�q�!�1�5�F��
#�
#�I���
�G�G�C��g�q�!�Q�/���2�
1��
F�F��F�F����s0�6*G�G*�<G;�4H�
G'�*
G8�;
H	�
Hc��S[S54H~nUR[R"SU5/SQ5 UR[R"SU5/SQ5 UR[R"SU5/SQ5 M� S[	S5[S5[
S54H~nUR[R"S	U5/S
Q5 UR[R"SU5/SQ5 UR[R"S
U5/SQ5 M� SH�up#nSU<SU<SU<3nUR[R"SU5SX#SU/5 UR[R"SU5SX#U/5 UR[R"SU5SSUSUSU/5 M� UR[R"SS5/SQ5 UR[R"SS5/SQ5 UR[R"SS5/SQ5 UR[R"SS5/SQ5 UR[R"SS5/SQ5 S/SQ4S/SQ4S/SQ4S /S!Q44HDupVURUS"9 UR[R"US5U5 SSS5 MF S/S#Q4S$/S%Q4S&/S'Q4S(/S)Q44HDupVURUS"9 UR[R"US5U5 SSS5 MF g!,(df   M�=f!,(df   Mj=f)*Nr�r�)r�r�rdr�r��:+)r�r�rdr��(:+))r�r�r�r�rd�::r�s:a:b::c�:)rr_�br�c�:+)rr_rArB�(:+))rr@r_r@rA�::rB)uàßçuабвu𝒜𝒞𝒵r?r�z(?::+)z(:)+)r�r�r�r�rdr�r�z([b:]+))r�r�r�z:b::r�z(b)|(:+))
r�Nr�r�Nr�r�rdNr�Nr?r�z(?:b)|(?::+))r�r�r�r�r�z:*)r�r�r�r�rdr�r�r�z(?::*)�(:*))r�r�r�r�r�r�r�r�rdr?r�r�r�r�r�z(:)*)r�r�r�Nr�r�r�Nrdr�r�Nr�Nr�)�sep)	r�r�r�r�rdr�r�r�r��\b)r�r�r�rdr?r�r�z(?=:))r�z:az:br�z:cz(?<=:))r��a:zb:r�r�)	rrBrHr�r+r`r�rArK)rrVr�rdr�rG�expecteds       r�
test_re_split�ReTests.test_re_split�s�����9��-�F��!�!�"�(�(�3��"7�"9�
;��!�!�"�(�(�4��"8�"5�
7��!�!�"�(�(�6�6�":�"E�
G�.�"�1�Z�=�)�J�2G�!�*�-�/�F��!�!�"�(�(�4��"8�">�
@��!�!�"�(�(�5�&�"9�"9�
;��!�!�"�(�(�7�F�";�"L�
N�
/�:�G�A�!�%&��1�-�F����R�X�X�c�6�2�R��r�1�4E�F����R�X�X�d�F�3�b�!��]�C����R�X�X�f�f�5� �#�q�#�q�$��:�
<�:�	
������(�I�6�8K�L�������&�)�4�;�	=�������)�Y�7�4�	6�������*�i�8�+�	,�	
������.�)�<�/�	1��6�7�
�:�;�
�X�Y�
�_�`�	
�M�C����#��&��%�%�b�h�h�s�I�&>��I�'�&�

��<�=�
�7�8�
�2�3�
�3�4�	
�M�C����#��&��%�%�b�h�h�s�I�&>��I�'�&�

�'�&��'�&�s�(M�%(M,�
M)	�,
M;	c	�:�UR[5nUR[R"SSS5/SQ5 SSS5 URWR
[5 UR[R"SSSS9/SQ5 UR[R"SSSS9/SQ5 UR[R"SSSS9/S	Q5 UR[R"S
SSS9/S	Q5 UR[R"SSSS9/SQ5 UR[S
5 [R"SSSSS9 SSS5 UR[S5 [R"SSSSSS9 SSS5 UR[S5 [R"SSSSS5 SSS5 g!,(df   GN�=f!,(df   N�=f!,(df   Nk=f!,(df   g=f)Nr�r�r�)r�r��b::cr�za:b:c:d)r�rdzc:dz(:))r�r�r�r�rNr>rF)r�r�r�r�za:b::cz5split\(\) got multiple values for argument 'maxsplit'z2split\(\) got multiple values for argument 'flags'rr�zAsplit\(\) takes from 2 to 4 positional arguments but 5 were given)	r�r�rArHr�r�r�r�r�r�s  r�test_qualified_re_split�ReTests.test_qualified_re_split�s���
�
�
�0�
1�Q����R�X�X�c�9�a�8�:K�L�2�������X�.�������#�y�1�=�?P�Q�������#�y�1�=�?P�Q�������%��Q�?�4�	6�������&�)�a�@�4�	6�������&�)�a�@�4�	6��
#�
#�I�H�J��H�H�S�)�Q��3�J��
#�
#�I�E�G��H�H�S�)�Q���3�G��
#�
#�I���
�H�H�S�)�Q��1�-���%2�
1��J�J��G�G����s/�+G�G*�=G;�4H�
G'�*
G8�;
H	�
Hc
��UR[R"SS5/5 S[S54H~nUR	[R"SU5/SQ5 UR	[R"SU5/SQ5 UR	[R"SU5/SQ5 M� S[S5[
S5[S54H~nUR	[R"S	U5/S
Q5 UR	[R"SU5/S
Q5 UR	[R"SU5/S
Q5 M� SH�nUS-nUS-nSU<SU<SU<S3nUR[R"SU-U5X#U/5 UR[R"SU-U5X#U/5 UR[R"SU<SU<S3U5US4X"4X#4/5 M� g)Nr=r��
a:b::c:::d�r�r?z:::r>z(:)(:*)))r�r�)r�r�)r�r?s
a:b::c:::drC)r@rEs:::rDs(:)(:*)))r@r)r@r@)r@rEr�r�rtr�rdr��dz%s+z(%s+)�(z)(z*)r�)rArHrjrrBr+r`r�)rrVr<r�rvs     r�test_re_findall�ReTests.test_re_findall�s���������D�%�0�"�5�"�A�l�O�3�F��!�!�"�*�*�T�6�":�"4�
6��!�!�"�*�*�V�V�"<�"4�
6��!�!�"�*�*�Y��"?�"F�
H�4�%�a�
�&6�	�-�8P�!�-�0�2�F��!�!�"�*�*�U�F�";�"7�
9��!�!�"�*�*�W�f�"=�"7�
9��!�!�"�*�*�Z��"@�"L�
N�
2�2�A��Q��B��a�%�C�%&��C�0�F����R�Z�Z���	�6�:�Q�C�L�I����R�Z�Z��!��V�<�q�c�l�K����R�Z�Z�q�!�(<�f�E� �"�g��v��w�7�
9�
2rc�V�UR[R"SS5/SQ5 g)Nz(a|(b))�aba)�r�r�)rdrdrZ�rArHrjrZs r�test_bug_117612�ReTests.test_bug_117612�s ��������J��6�9�	;rc�^
�S[S54GHnUR[R"SU5R	5S5 UR[R"SU5R	5S5 UR[R"SU5RS5S5 UR[R"SU5RS5S5 UR[R"SU5RSS5S5 GM S[
S5[S5[S54GHnUR[R"SU5R	5S5 UR[R"S	U5R	5S
5 UR[R"S	U5RS5S5 UR[R"S	U5RS5S5 UR[R"S	U5RSS5S5 GM SGHnUR[R"X"5R	5S5 UR[R"S
U-U5R	5U45 UR[R"S
U-U5RS5U5 UR[R"S
U-U5RS5U5 UR[R"S
U-U5RSS5X"45 GM! [R"S5nURURS5R	5S5 URURS5R	5S5 URURS5R	5S5 URURS5R	5S5 URURS5R	S5S5 [R"S5nURURS5RSSS5S5 URURS5RSSS5S5 URURS5RSSS5S 5 g)!Nr�r �(a)�r�rrs�r�r�r_s(a))r_)r_r_r�z(%s)z
((a)|(b))(c)?)r�r�NNrd)rdNrdN�ac)r�r�Nr��bc)rdNrdr�r�)rdr�rdr��!(?:(?P<a1>a)|(?P<b2>b))(?P<c3>c)?r�rt�r�NN�a1�b2�c3)NrdN)r�Nr�)
rrArHr}�groupsr�r+r`r�rJ)rrVr�rs    r�
test_re_match�ReTests.test_re_match�s����1�S�6�k�F����R�X�X�c�6�2�9�9�;�R�@����R�X�X�e�V�4�;�;�=�v�F����R�X�X�e�V�4�:�:�1�=�s�C����R�X�X�e�V�4�:�:�1�=�s�C����R�X�X�e�V�4�:�:�1�a�@�*�M�"��A�d�G�Y�t�_�j��6F�F�F����R�X�X�d�F�3�:�:�<�b�A����R�X�X�f�f�5�<�<�>��H����R�X�X�f�f�5�;�;�A�>��E����R�X�X�f�f�5�;�;�A�>��E����R�X�X�f�f�5�;�;�A�q�A�<�P�G�2�A����R�X�X�a�^�2�2�4�b�9����R�X�X�f�q�j�!�4�;�;�=��t�D����R�X�X�f�q�j�!�4�:�:�1�=�q�A����R�X�X�f�q�j�!�4�:�:�1�=�q�A����R�X�X�f�q�j�!�4�:�:�1�a�@�1�&�I�2��j�j��)��������3��.�.�0�2H�I�������3��.�.�0�2H�I�������4��/�/�1�3H�I�������4��/�/�1�3H�I�������4��/�/��3�5H�I��j�j�<�=��������3��-�-�a��A�6�8I�J�������3��-�-�d�D�$�?�*�	,�������4��.�.�q�$��:�<L�Mrc�Z�"SS5n[R"SS5nURUR5S5 URURS5S5 URURS5S5 URURU"S55S5 UR	[
URS5 UR	[
URS	5 UR	[
URSS
-5 UR	[
URU"SS
-55 UR	[
URS5 URURSS5S
5 URURU"S5U"S55S
5 g)Nc� �\rSrSrSrSrSrg)�!ReTests.test_group.<locals>.Indexic��Xlgr��value)rrqs  r�__init__�*ReTests.test_group.<locals>.Index.__init__s��"�
rc��UR$rrprZs r�	__index__�+ReTests.test_group.<locals>.Index.__index__!s���z�z�!rrpN)r"r#r$r%rrrur&r rr�Indexrns��
#�
"rrwz(a)(b)r�rrsr����rt��r<r��rdr�)rHr}rAr�rGr4)rrwr�s   r�
test_group�ReTests.test_groups8��	"�	"�
�H�H�X�t�$���������D�)���������T�*���������S�)��������q��*�C�0����*�a�g�g�r�2����*�a�g�g�q�1����*�a�g�g�q�$�w�7����*�a�g�g�u�Q��W�~�>����*�a�g�g�s�3��������A��
�3��������q��5��8�4�j�Arc���[R"S5nURS5nURUSS5 URUSS5 URUSS5 URSR	U5S5 URUSS5 URUS	S5 URUS
S5 URUSS5 UR[S5 US
 SSS5 UR[S5 US SSS5 UR[S5 US SSS5 UR[S5 US SSS5 UR[S5 US SSS5 UR[S5 US SSS5 UR[S5 SR	U5 SSS5 URS5nURUSS5 URUSS5 URUSS5 URSR	U5S5 URUSS5 URUS	S5 URUS
S5 URUSS5 UR[5 S	US'SSS5 UR[[U5 g!,(df   GN�=f!,(df   GN�=f!,(df   GN�=f!,(df   GN�=f!,(df   GN�=f!,(df   GN�=f!,(df   GN=f!,(df   N�=f)Nrdr�rfrgrhza1={a1} b2={b2} c3={c3}za1=a b2=None c3=Nonerrsr�rtz
no such groupr�rxrr�)rza1={a2}rbr�za1=a b2=None c3=c)
rHrJr}rA�
format_mapr�r4rGr��len)rrr�s   r�test_match_getitem�ReTests.test_match_getitem2s����j�j�<�=���I�I�c�N������4��#�&�����4��$�'�����4��$�'����2�=�=�a�@�BX�Y�����1��s�#�����1��s�#�����1��t�$�����1��t�$�
�
#�
#�J��
@�
�c�F�A�
�
#�
#�J��
@�
�b�E�A�
�
#�
#�J��
@�
�a�D�A�
�
#�
#�J��
@�
�d�G�A�
�
#�
#�J��
@�
�d�G�A�
�
#�
#�J��
@�
�f�I�A�
�
#�
#�J��
@�� � ��#�A�
�I�I�d�O������4��#�&�����4��$�'�����4��#�&����2�=�=�a�@�BU�V�����1��t�$�����1��s�#�����1��t�$�����1��s�#��
�
�y�
)��A�a�D�*�	
���)�S�!�,�=A�
@��
@�
@��
@�
@��
@�
@��
@�
@��
@�
@��
@�
@��*�
)�s`�2K(�K:�:L�L�L0�&M�
M�>M&�(
K7�:
L	�
L�
L-�0
L?�
M�
M#�&
M4c�f�UR[R"SS5R5S5 S[	S54H8nUR[R"SU5R5S5 M: S[S5[
S5[S54H8nUR[R"SU5R5S5 M: SHGup#U<S	X#-<3nUR[R"XBU-5R5S5 MI UR[R"S
S5R5S5 UR[R"S
S5R5S5 UR[R"SS5R5S5 UR[R"SS5R5S5 UR[R"SS5R5S5 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"SS5R5S5 UR[R"SS5R5S5 UR[R"SS5R5S5 UR[R"S5RSSSS9R5S5 UR[R"S
5RSSSS9R5S5 UR[R"S
5RSSSS9R5S5 g) Nr�r�r�za|abr��absa|ab)uàßuабu𝒜𝒞rz.*?$r�rxz.*?za.*?b�abb�axxb�rrryzabc$zabc
zabc\Zz(?m)abc$z	ab(?=c)cd�abcdz
ab(?<=b)cdz
(?=a|ab)abrcrsrt�rM�endposrr)
rArH�	fullmatchr{rr+r`r�r|rJ)rrVr�rd�rs     r�test_re_fullmatch�ReTests.test_re_fullmatch^s��������d�C�0�5�5�7��@��A�d�G�m�F����R�\�\�'�6�:�?�?�A�6�J�$��Q�u�X�y��'7��E�9J�J�F����R�\�\�(�F�;�@�@�B�F�K�K�F�D�A��q�u�%�A����R�\�\�!��U�3�8�8�:�F�C�G�	
������g�u�5�:�:�<�f�E�������f�e�4�9�9�;�V�D�������h��5�:�:�<�f�E�������h��6�;�;�=�v�F�������h��7�<�<�>��G����"�,�,�u�d�3�4����"�,�,�w��8�9����"�,�,�x��9�:����"�,�,�{�G�<�=�������l�F�;�@�@�B�F�K�������m�V�<�A�A�C�V�L�������m�T�:�?�?�A�6�J�����J�J�u��'�'��A�a�'�@�E�E�G��	Q�����J�J�w��)�)�&�a��)�B�G�G�I�6�	S�����J�J�v��(�(��Q�q�(�A�F�F�H�&�	Rrc�8�UR[R"SS5R5S5 UR[R"SS5R5S5 UR	[R"SS55 UR	[R"SS55 UR[R"SS	5R5S
5 UR[R"SS5R5S5 UR[R"S
S5R5S5 UR[R"S
S5R5S5 [R
"S5nURURS5R5S5 URURS5R5S5 UR	URS55 UR	URS55 SR
S[SS555nSU-nUR[R"US5R5S5 g)Nz^(\()?([^()]+)(?(1)\))$r_)rUr�r��Nr�za)z(az^(?:(a)|c)((?(1)b|d))$r��r�rd�cd)NrTz^(?:(a)|c)((?(1)|d))$rZz(?P<g1>a)(?P<g2>b)?((?(g2)c|d))r��r�rdr��ad)r�NrT�abdrbrc3�.# �UHnSX4-v� M
 g7frr rs  rr	�2ReTests.test_re_groupref_exists.<locals>.<genexpr>�rrrsr
z(?:%s)(?(200)z)rr)	rArHr}rir|rJrrr{)r�prs   r�test_re_groupref_exists�ReTests.test_re_groupref_exists|s���������"<�e�D�K�K�M�#�	%�������"<�c�B�I�I�K�$�	&����"�(�(�#=�t�D�E����"�(�(�#=�t�D�E�������":�D�A�H�H�J�#�	%�������";�T�B�I�I�K�$�	&�������":�D�A�H�H�J�$�	&�������":�C�@�G�G�I�"�	$�
�J�J�8�9����������.�.�0�(�	*���������-�-�/�)�	+����!�'�'�%�.�)����!�'�'�$�-�(��h�h�K��q�'�9J�K�K���#�%��������#�w�/�4�4�6��?rc��URSSS5 URSSS5 URSSS5 URS	S
S5 URSS
S5 URSSS5 URSSS5 URSSS5 URSSS5 URSSS5 URSSS5 URSSS5 URSSS5 URSSS5 g)Nz(?P<a>)(?(0)a|b)zbad group numberr�z()(?(-1)a|b)rrz()(?(+1)a|b)r.z()()()()()()()()()()(?(1_0)a|b)r/�z
()(?( 1 )a|b)r0u
()(?(㊀)a|b)r1u()(?(¹)a|b)r2u
()(?(१)a|b)r3z()(?(1rz()(?(1)a�"missing ), unterminated subpatternr�z
()(?(1)a|bz()(?(1)a|b|cz/conditional backref with more than two branchesz
()(?(1)a|b|c)z	()(?(2)a)r-r rZs r�test_re_groupref_exists_errors�&ReTests.test_re_groupref_exists_errors�s@�����2�4F��K�����A�1�	F�����A�1�	F����8�B�B�	H����/�B�A�	G����/�B�A�	G�����A�1�	F����/�B�A�	G����y�=�q�	B����{�C�Q�	H����}�C�Q�	H����� .�/1�	3�	
���/� .�/1�	3�	
���|�:�A�	?rc��[S5H4nURUS9 [R"SU-5 SSS5 M6 g!,(df   MH=f)N�)�codez()(?(1)\x%02x?))rrKrHrJ�rrs  r�&test_re_groupref_exists_validation_bug�.ReTests.test_re_groupref_exists_validation_bug�s?���s��A����1��%��
�
�-��1�2�&�%��%�%�s�A�
A	c�x�SSKJn URSSU-SSU-S5 URSU-SU-S	5 g)
Nr)�	MAXGROUPSz()z\g<%s>r�zinvalid group reference %drtz(?P<a>)(?(%d))r�)�
re._constantsr�rWrQ)rr�s  r�test_re_groupref_overflow�!ReTests.test_re_groupref_overflow�sJ��+�����i�)�&;�T� <�y� H�!�	M����0�9�<�;�i�G��	Mrc�j�UR[R"SS5R5S5 UR[R"SS5R5S5 UR	[R"SS55 UR	[R"SS55 UR[R"S	S
5R5S5 UR[R"SS
5R5S5 URSSS5 g)Nz^(\|)?([^()]+)\1$z|a|)rr�z^(\|)?([^()]+)\1?$r�r�za|z|az^(?:(a)|c)(\1)$�aaraz^(?:(a)|c)(\1)?$r��NNz(abc\1)rr)rArHr}rir|rQrZs r�test_re_groupref�ReTests.test_re_groupref�s���������"6��>�E�E�G�#�	%�������"7��=�D�D�F�$�	&����"�(�(�#7��>�?����"�(�(�#7��>�?�������"4�d�;�B�B�D�#�	%�������"5�s�;�B�B�D�%�	'�	
���z�+J�A�Nrc�t�UR[R"SS5R5SSS.5 g)N�#(?P<first>first) (?P<second>second)�first second�first�second)r�r�)rArHr}�	groupdictrZs r�test_groupdict�ReTests.test_groupdict�s0��������"G�"0�2�2;�)�+�")�H�=�	?rc���UR[R"SS5RS5S5 UR[R"SS5RS5S5 g)	Nr�r�z\2 \1 \g<second> \g<first>zsecond first second firstz#(?P<first>first)|(?P<second>second)r�z
\2 \g<second>� )rArHr}�expandrZs r�test_expand�ReTests.test_expand�s^��������"G�"0�2�#)�6�*G�#H�4�	6�	
������"G�")�+�#)�6�*:�#;��	rc�.	�UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"SS5R	S5S5 UR[R"S	S5R	S5S5 UR[R"S
S5R	S5S5 UR[R"SS5R	S5S5 UR[R"SS5R	S5S5 UR[R"S
S5R	S5S5 UR[R"SS5R	S5S5 UR[R"SS5R	S5S5 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR
SSS 5 g)!Nz	^(\w){1}$r�z
^(\w){1}?$z^(\w){1,2}$z^(\w){1,2}?$z	^(\w){3}$rsr�z^(\w){1,3}$z^(\w){1,4}$z^(\w){3,4}?$z
^(\w){3}?$z^(\w){1,3}?$z^(\w){1,4}?$z^x{1}$rvz^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 repeatr�)r|rHr}rAr��
assertTruerQrZs r�test_repeat_minmax�ReTests.test_repeat_minmax�s�����"�(�(�<��7�8����"�(�(�=�%�8�9����"�(�(�>�5�9�:����"�(�(�?�E�:�;�������,��6�<�<�Q�?��E�������.�%�8�>�>�q�A�3�G�������.�%�8�>�>�q�A�3�G�������/�5�9�?�?��B�C�H�������-��7�=�=�a�@�#�F�������/�5�9�?�?��B�C�H�������/�5�9�?�?��B�C�H�������/�5�9�?�?��B�C�H����"�(�(�9�e�4�5����"�(�(�:�u�5�6����"�(�(�;��6�7����"�(�(�<��7�8��������E�2�3��������e�4�5��������e�4�5��������e�4�5��������u�5�6��������U�3�4��������u�5�6��������u�5�6��������u�5�6����"�(�(�8�U�3�4��������5�1�2����y�C�Q�	Hrc��UR[R"S5RS5 UR[R"S5R[R
[R-5 UR[R"S5RS5 UR[R"S5R05 UR[R"S5RSSS.5 UR[R"SS5RS5 UR[R"SS5RS5 UR[R"SS5RS5 UR[R"SS5RS	5 UR[R"SS5R5 [R"S5nUR[UR5S
S/5 URURSS5 UR!["5 SURS'SSS5 URURSS5 g!,(df   N.=f)Nz
(?i)(a)(b)r�z(?i)(?P<first>a)(?P<other>b)rs)r��otherr_r�r)r�r�r�r�)rArHrJrFr�r��Uri�
groupindexr}rMr�rV�regsr��sortedrGr�)rr�s  r�test_getattr�ReTests.test_getattrs���������L�1�9�9�<�H�������L�1�7�7��������E�������L�1�8�8�!�<�������L�1�<�<�b�A�������$B�C�N�N�#$�q�1�	3�	
������%��-�1�1�1�5�������%��-�4�4�a�8�������%��-�4�4�c�:�������%��-�2�2�4D�E���������,�/�/�0�
�J�J�6�7���������-���/A�B�������g�.��2�
�
�
�y�
)�$%�A�L�L��!�*�������g�.��2�*�
)�s�8J0�0
J>c���UR[R"SS5RS5S5 UR[R"SS5RS5S5 UR[R"SS[R5RS5S5 UR[R"SS[R5RS5S5 UR[R"SS[R
5RS	5S
5 UR[R"SS
[R
5RS	5S
5 UR
[R"SS[R
55 UR[R"SS
5RS5S5 UR[R"SS5RS5S5 UR[R"SS
[R5RS5S5 UR[R"SS[R5RS5S5 UR[R"SS[R
5RS	5S5 UR[R"SS[R
5RS	5S5 UR
[R"SS[R
55 UR[R"SS5RS	5S5 UR[R"SS5RS	5S5 UR[R"SS[R5RS	5S5 UR[R"SS[R5RS	5S5 g)Nz\b(b.)\bzabcd abc bcd bxrs�bxz\B(b.)\Bzabc bcd bc abxdz^abc$z
abc
rr�z	^\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)rArHrzr��ASCII�Mr|�LOCALErZs r�test_special_escapes�ReTests.test_special_escapess��������;�#4�6�6;�e�A�h��	F�������;�#4�6�6;�e�A�h��	F�������;�#4�b�h�h�@�@E��a��$�	P�������;�#4�b�h�h�@�@E��a��$�	P�������8�Y����=�C�C�A�F��N�������<�����=�C�C�A�F��N����"�)�)�L�)�R�T�T�B�C�������<�#5�7�7<�u�Q�x��	H�������<�#5�7�7<�u�Q�x��	H�������<�#5�r�y�y�B�BG�%��(�E�	S�������<�#5�r�y�y�B�BG�%��(�E�	S�������9�j�"�$�$�?�E�E�a�H�&�Q�������=�&�"�$�$�?�E�E�a�H�&�Q����"�)�)�M�:�r�t�t�D�E�������?�#+�-�-2�U�1�X�x�	A�������#3�#,�.�.3�e�A�h�	�	C�������?�#+�R�X�X�7�7<�u�Q�x��	K�������#3�#,�b�i�i�9�9>��q��9�	Nrc�2�URSSS5 UR[R"SS5R	5S5 UR[R"SS55 UR[R"SS5R	5S5 UR[R"SS	5R	5S	5 UR[R"SS
55 UR[R"SS5R	5S5 UR[R"SS
55 UR[R"SS5R	5S5 UR[R"SS
55 [R"5 SHOnURU5 UR[R[RSU-5 SSS5 MQ SHOnURU5 UR[R[RSU-5 SSS5 MQ g!,(df   M�=f!,(df   Mu=f)Nr�zbad escape (end of pattern)rz\(rU�)r�z[\]]�]�[z[a\-c]�-rdz[\^a]+za^�!ceghijklmopqyzCEFGHIJKLMNOPQRTVXYz\%c�$ceghijklmopqyzABCEFGHIJKLMNOPQRTVXYZz[\%c])rQrArHr}r�r|�purgerKrGrIrJ)rr�s  r�test_other_escapes�ReTests.test_other_escapes<s������t�%B�A�F�������%��-�3�3�5�s�;����"�(�(�5�#�.�/�������%��.�4�4�6��=�������'�3�/�5�5�7��=����"�(�(�7�C�0�1�������)�S�1�7�7�9�3�?����"�(�(�9�c�2�3�������)�T�2�8�8�:�D�A����"�(�(�9�c�2�3�
���
�4�A����a���!�!�"�/�/�2�:�:�v��z�J�!��5�8�A����a���!�!�"�/�/�2�:�:�x�!�|�L�!��8�!���!��s� 3I5�53J�5
J	�
J	c��UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"S	S
55 UR[R"S	S55 UR	SS
S5 UR	SS
S5 UR	SSS5 UR	SSS5 UR	SSS5 UR	SSS5 UR	SS
S5 UR	SS
S5 UR	SSS5 UR	SSS5 UR	SSS5 UR	SS S!5 UR	S"S S5 UR	S#S$S!5 UR	S%S$S5 UR	S&S'S!5 UR	S(S'S5 g))Nz\N{LESS-THAN SIGN}�<z\N{less-than sign}�>z	\N{SNAKE}u🐍zW\N{ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM}uﯹz*[\N{LESS-THAN SIGN}-\N{GREATER-THAN SIGN}]�=�;z\Nz	missing {r�z[\N]rtz\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]'rsz\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}])r�rHr}r|rQrZs r�test_named_unicode_escapes�"ReTests.test_named_unicode_escapesOs��������!6��<�=�������!6��<�=����"�(�(�#8�#�>�?��������|�<�=�������"Q�!)�+�	,�	
������!N�!$�&�	'����"�(�(�#P�#&�(�	)�	
���u�k�1�5����w��Q�7����v�'?��C����w�(@�!�D����w�(@�!�D����y�*B�A�F����{�K��;����}�k�1�=����{�=�q�	B����}�=�q�	B����~�B�A�	G����{�@�!�	E����}�@�!�	E����8�K�Q�	P����:�K�Q�	P����5�7G��K����7�9I�1�Mrc	�L)�UR[R"SS5RS5S5 UR[R"SS[R5RS5S5 UR[R"SS5RS5S5 UR[R"SS[R
5RS5S5 UR[R"SS5RS5S5 UR
[R"SS[R55 UR[R"SS	55 UR[R"SS	[R55 UR[R"S
S55 UR[R"S
S[R
55 UR[R"SS55 UR
[R"SS[R55 UR[R"SS
55 UR[R"SS
[R55 UR[R"S
S55 UR[R"S
S[R
55 UR[R"SS55 UR
[R"SS[R55 UR
[R"SS55 UR
[R"SS[R55 UR
[R"S
S55 UR
[R"S
S[R
55 UR
[R"SS55 UR
[R"SS[R55 UR
[R"SS55 UR
[R"SS[R55 UR
[R"S
S55 UR
[R"S
S[R
55 UR
[R"SS	55 UR
[R"SS	[R55 UR
[R"SS55 UR
[R"SS[R
55 UR
[R"SS55 UR[R"SS[R55 UR
[R"SS
55 UR
[R"SS
[R55 UR
[R"SS55 UR
[R"SS[R
55 UR
[R"SS55 UR[R"SS[R55 UR[R"SS55 UR[R"SS[R55 UR[R"SS55 UR[R"SS[R
55 UR[R"SS55 UR[R"SS[R55 UR[R"SS55 UR[R"SS[R55 UR[R"SS55 UR[R"SS[R
55 UR[R"SS55 UR[R"SS[R55 UR[R"SS55 UR[R"SS[R
55 UR[R"SS55 UR
[R"SS[R55 UR[R"SS55 UR[R"SS[R55 UR[R"SS55 UR[R"SS[R
55 UR[R"SS55 UR
[R"SS[R55 UR[R"SS5R5S5 UR[R"SS[R5R5S5 UR[R"SS5R5S5 UR[R"SS[R
5R5S5 UR[R"SS5R5S5 UR[R"SS[R5R5S5 UR
[R"SS55 UR
[R"SS[R55 UR
[R"SS55 UR
[R"SS[R
55 UR
[R"SS55 UR[R"SS[R55 UR
[R"SS55 UR
[R"SS[R55 UR
[R"S S55 UR
[R"S S[R
55 UR
[R"SS55 UR[R"SS[R55 UR
[R"SS!55 UR
[R"SS![R55 UR
[R"SS"55 UR
[R"SS"[R
55 UR
[R"SS!55 UR
[R"SS![R55 UR
[R"SS"55 UR
[R"SS"[R
55 UR[[R"SS#55S$5 UR[[R"SS#[R55S$5 UR[[R"SS%55S$5 UR[[R"SS%[R
55S$5 UR[[R"SS#55S&5 UR[[R"SS#[R55S&5 UR[[R"SS%55S&5 UR[[R"SS%[R
55S&5 UR[[R"SS'55S&5 UR[[R"SS'[R55S&5 UR[[R"SS(55S&5 UR[[R"SS([R
55S&5 UR[[R"SS)55S&5 UR[[R"SS)[R55S&5 UR[[R"SS*55S&5 UR[[R"SS*[R
55S&5 UR[[R"SS'55S$5 UR[[R"SS'[R55S$5 UR[[R"SS(55S$5 UR[[R"SS([R
55S$5 g)+Nz	\b(abc)\br�rss	\b(abc)\br�u\b(ьюя)\buьюяz.\bza=s.\bsa=uя=z=as=au=яr�r�uюяz=-s=-z.\Bs.\BrHs\bz.+\bs.+\b�\B�rsrss\Brqz.+\Bs.+\Br�rr�r�r_rr�� z   s   )
rArHrzr�r�r�r|r�r}r�r{rrjrZs r�test_word_boundaries�ReTests.test_word_boundariesws���������<��7�=�=�a�@�%�H�������<�����A�G�G��J�E�R�������=�&�9�?�?��B�F�K�������=�&�"�)�)�D�J�J�1�M�v�V�������?�H�=�C�C�A�F��Q����"�)�)�O�X�r�x�x�H�I���������.�/���������r�x�x�8�9��������%�0�1��������%����;�<���������/�0����"�(�(�6�5�"�(�(�;�<���������.�/���������r�x�x�8�9��������%�0�1��������%����;�<���������/�0����"�(�(�6�5�"�(�(�;�<����"�(�(�6�4�0�1����"�(�(�6�4����:�;����"�(�(�7�E�2�3����"�(�(�7�E�2�9�9�=�>����"�(�(�6�6�2�3����"�(�(�6�6�2�8�8�<�=����"�(�(�6�4�0�1����"�(�(�6�4����:�;����"�(�(�7�E�2�3����"�(�(�7�E�2�9�9�=�>����"�(�(�6�4�0�1����"�(�(�6�4����:�;����"�(�(�7�E�2�3����"�(�(�7�E�2�9�9�=�>����"�(�(�6�5�1�2������������9�:����"�(�(�6�4�0�1����"�(�(�6�4����:�;����"�(�(�7�E�2�3����"�(�(�7�E�2�9�9�=�>����"�(�(�6�5�1�2������������9�:���������.�/���������r�x�x�8�9��������%�0�1��������%����;�<���������0�1������������:�;���������.�/���������r�x�x�8�9��������%�0�1��������%����;�<���������.�/���������r�x�x�8�9���������0�1������������;�<���������1�2����"�(�(�5�(�B�H�H�=�>�������W�e�4�5�������W�e�R�X�X�>�?�������X�v�6�7�������X�v�r�y�y�A�B�������W�h�7�8����"�)�)�E�8�R�X�X�>�?�������5�%�0�5�5�7��@�������5�%����:�?�?�A�6�J�������6�6�2�7�7�9�6�B�������6�6�2�9�9�=�B�B�D�f�M�������5�(�3�8�8�:�F�C�������5�(�B�H�H�=�B�B�D�f�M����"�(�(�5�%�0�1����"�(�(�5�%����:�;����"�(�(�6�6�2�3����"�(�(�6�6�2�9�9�=�>����"�(�(�5�(�3�4���������"�(�(�;�<����"�,�,�w��6�7����"�,�,�w��r�x�x�@�A����"�,�,�x��8�9����"�,�,�x�����C�D����"�,�,�w��9�:�������W�h����A�B�	
���"�)�)�E�2�.�/����"�)�)�E�2�r�x�x�8�9����"�)�)�F�C�0�1����"�)�)�F�C����;�<�	
���"�)�)�E�2�.�/����"�)�)�E�2�r�x�x�8�9����"�)�)�F�C�0�1����"�)�)�F�C����;�<�	
����R�Z�Z��s�3�4�a�8�����R�Z�Z��s�B�H�H�=�>��B�����R�Z�Z���5�6��:�����R�Z�Z���b�i�i�@�A�1�E�����R�Z�Z��s�3�4�a�8�����R�Z�Z��s�B�H�H�=�>��B�����R�Z�Z���5�6��:�����R�Z�Z���b�i�i�@�A�1�E�����R�Z�Z��s�3�4�a�8�����R�Z�Z��s�B�H�H�=�>��B�����R�Z�Z���5�6��:�����R�Z�Z���b�i�i�@�A�1�E�����R�Z�Z��u�5�6��:�����R�Z�Z��u�b�h�h�?�@�!�D�����R�Z�Z���7�8�!�<�����R�Z�Z����	�	�B�C�Q�G�����R�Z�Z��s�3�4�a�8�����R�Z�Z��s�B�H�H�=�>��B�����R�Z�Z���5�6��:�����R�Z�Z���b�i�i�@�A�1�Erc�4�UR[R"SS5RS5S5 SSR	[[[SSS555-nUR[R"US	5R5S	5 g)
Nu
([∢∣])u∢rsz[%s]r�r���u!)rArHr}r�r�mapr�r�rr�s  r�test_bigcharset�ReTests.test_bigcharset�st��������"4�"*�,�,1�E�!�H�h�	@��R�W�W�S��e�C���&<�=�>�>��������!�X�.�4�4�6��Arc���[R"SRS[S5555nUR	URS55 UR	URS55 g)Nrc3�,# �UH
nSU-v� M g7f)z%dNr )rr<s  rr	�,ReTests.test_big_codesize.<locals>.<genexpr>s��� >��A��a���s��'�1000�9999)rHrJrrr�r}r�s  r�test_big_codesize�ReTests.test_big_codesizesK���J�J�s�x�x� >��u�� >�?�@����������(���������(rc��UR[R"SS[R5R	S5S5 UR[R"SS[R5R	S5S5 g)Nza.bza
brza.*bza

b)rArHr}�DOTALLr�rZs r�test_anyall�ReTests.test_anyalls`��������%�����;�A�A�!�D��	!�������&�(�B�I�I�>�D�D�Q�G�!�	#rc��UR[R"SS5RS5S5 UR[R"SS5RS5S5 UR[R"SS5RS5S5 UR[R"SS5RS5S5 UR[R"S	S
5RS5S5 UR[R"SS5RS5S5 UR[R"S
S
5RS5S5 UR[R"SS
5RS5S5 UR[R"SS5RS5S5 UR[R"SS5RS5S5 UR[R"SS5RS5S5 UR	[R"SS55 UR[R"SS55 UR	[R"SS55 UR[R"SS55 UR	[R"SS55 UR[R"SS55 UR	[R"SS55 UR	[R"SS55 UR[R"SS55 UR	[R"SS55 g)Nz
(a(?=\s[^a]))�a brsr�z(a(?=\s[^a]*))z(a(?=\s[abc]))z(a(?=\s[abc]*))�a bcz(a)(?=\s\1)�a az(a)(?=\s\1*)�a aaz(a)(?=\s(abc|a))z
(a(?!\s[^a]))z(a(?!\s[abc]))za dz(a)(?!\s\1)z(a)(?!\s(abc|a))z(a)b(?=\1)arYz(a)b(?=\1)c�abacz(?:(a)|(x))b(?=(?(2)x|c))cr�z(?:(a)|(x))b(?=(?(2)c|x))cz(?:(a)|(x))b(?=(?(1)b|x))cz(?:(a)|(x))b(?=(?(1)c|x))cz(a)b(?=(?(2)x|c))(c)z(a)b(?=(?(2)b|x))(c)z(a)b(?=(?(1)c|x))(c))rArHr}r�r�r|rZs r�test_lookahead�ReTests.test_lookahead
s���������"2�E�:�@�@��C�S�I�������"3�U�;�A�A�!�D�c�J�������"3�U�;�A�A�!�D�c�J�������"4�f�=�C�C�A�F��L�������.�%�8�>�>�q�A�3�G�������/�6�:�@�@��C�S�I�������"5�u�=�C�C�A�F��L�������"2�E�:�@�@��C�S�I�������"3�U�;�A�A�!�D�c�J�������.�%�8�>�>�q�A�3�G�������"5�u�=�C�C�A�F��L�	
��������7�8����"�(�(�>�6�:�;�������!>��F�G����"�(�(�#@�%�H�I�������!>��F�G����"�(�(�#@�%�H�I�������!>��F�G�������!8�%�@�A����"�(�(�#:�E�B�C�������!8�%�@�Arc�N�UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"SS	55 UR[R"S
S55 UR[R"SS	55 UR[R"SS55 UR[R"S
S55 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR	[R
[RS5 UR[R"SS55 UR[R"SS55 UR	[R
[RS5 UR	[R
[RS5 UR	[R
[RS5 UR	[R
[RS5 g)Nz	ab(?<=b)cr�z	ab(?<=c)cz	ab(?<!b)cz	ab(?<!c)cz(a)a(?<=\1)c�aacz(a)b(?<=\1)a�abaaz(a)a(?<!\1)cz(a)b(?<!\1)az(?:(a)|(x))b(?<=(?(2)x|c))cz(?:(a)|(x))b(?<=(?(2)b|x))cz(?:(a)|(x))b(?<=(?(2)x|b))cz(?:(a)|(x))b(?<=(?(1)c|x))cz(?:(a)|(x))b(?<=(?(1)b|x))cz(a)b(?<=(?(2)b|x))(c)z(a)b(?<=(?(1)c|x))(c)z(a)b(?<=(?(1)b|x))(c)z(a)b(?<=(.)\2)(c)z(a)b(?<=(?P<a>.)(?P=a))(c)z(a)b(?<=(a)(?(2)b|x))(c)z(a)b(?<=(.)(?<=\2))(c))r�rHr}r|rGrIrJrZs r�test_lookbehind�ReTests.test_lookbehind)s����������u�5�6����"�(�(�<��7�8����"�(�(�<��7�8��������u�5�6��������%�8�9����"�(�(�?�F�;�<����"�(�(�?�E�:�;��������&�9�:����"�(�(�#A�5�I�J����"�(�(�#A�5�I�J�������!?��G�H����"�(�(�#A�5�I�J�������!?��G�H����"�/�/�2�:�:�7O�P����"�(�(�#;�U�C�D�������!9�5�A�B����"�/�/�2�:�:�7K�L����"�/�/�2�:�:�7T�U����"�/�/�2�:�:�7R�S����"�/�/�2�:�:�7P�Qrc��UR[R"SS[R5R	S5S5 UR[R"SS[R5R	S5S5 UR[R"SS[R5R	S5S5 UR[R"S	S
[R5R	S5S
5 UR[R"SS[R5R	S5S5 UR[R"SS
[R5R	S5S
5 UR[R"S
S[R5R	S5S5 UR[R"SS[R5R	S5S5 UR[R"SS[R5R	S5S5 UR[R"SS[R5R	S5S5 UR[R"SS[R55 UR[R"SS[R55 UR[R"SS[R55 UR[R"SS[R55 UR[R"SS[R55 UR[R"SS[R55 UR[R"SS[R55 UR[R"SS[R55 UR[R"SS[R55 UR[R"SS[R55 UR[R"SS[R55 UR[R"SS[R55 UR[R"S S[R55 UR[R"S S[R55 UR[R"S!S"[R55 UR[R"S#S$[R55 g)%Nr��ABCrr�sABCz	(a\s[^a])r�rsz
(a\s[^a]*)za bbz
(a\s[abc])z(a\s[abc]*)z	((a)\s\2)r�z
((a)\s\2*)r�z((a)\s(abc|a))z((a)\s(abc|a)*)�K�K�kz\u212ar�ſrkz\u017fz\u0412�в�ᲀz\u0432�Вz\u1c80z\ufb05�stz\ufb06�ſt)rArHr}r�r�r�rZs r�test_ignore_case�ReTests.test_ignore_caseCs���������%�����5�;�;�A�>��F�������&�&�"�$�$�7�=�=�a�@�&�I�������,��r�t�t�<�B�B�1�E�u�M�������-�����>�D�D�Q�G��P�������-�����=�C�C�A�F��N�������.�&�"�$�$�?�E�E�a�H�&�Q�������,��r�t�t�<�B�B�1�E�u�M�������-�����>�D�D�Q�G��P�������"3�U�B�D�D�A�G�G��J�E�R�������"4�f�b�d�d�C�I�I�!�L�f�U�	
�������x����6�7��������x����6�7��������C����6�7��������C����6�7�	
�������x����6�7��������x����6�7��������C����6�7��������C����6�7�	
�������H�b�d�d�;�<��������H�b�d�d�;�<��������H�b�d�d�;�<��������H�b�d�d�;�<��������H�b�d�d�;�<��������H�b�d�d�;�<�	
�������H�b�d�d�;�<��������H�b�d�d�;�<rc�T�UR[R"SS[R55 UR[R"SS[R55 UR[R"SS[R55 UR[R"SS[R55 UR[R"SS[R55 UR[R"SS[R55 UR[R"SS[R55 UR[R"SS[R55 UR[R"S	S
[R55 UR[R"S	S[R55 UR[R"SS
[R55 UR[R"SS[R55 UR[R"S
S[R55 UR[R"S
S[R55 UR[R"SS[R55 UR[R"SS[R55 UR[R"SS[R55 UR[R"SS[R55 UR[R"SS[R55 UR[R"SS[R55 UR[R"SS[R55 UR[R"SS[R55 UR[R"SS[R55 UR[R"SS[R55 UR[R"SS[R[R-55 UR[R"SS[R[R-55 UR[R"SS[R[R-55 UR[R"SS[R[R-55 UR[R"S	S
[R[R-55 UR[R"S	S[R[R-55 UR[R"SS
[R[R-55 UR[R"SS[R[R-55 UR[R"S
S[R[R-55 UR[R"S
S[R[R-55 UR[R"SS[R[R-55 UR[R"SS[R[R-55 UR[R"SS[R[R-55 UR[R"SS[R[R-55 UR[R"SS[R[R-55 UR[R"SS[R[R-55 UR[R"SS[R55 UR[R"SS[R55 UR[R"SS[R55 UR[R"SS[R55 UR[R"SS[R55 UR[R"SS[R55 UR[R"SS[R55 UR[R"SS [R55 UR[R"S!S"[R55 UR[R"S!S#[R55 UR[R"S$S%[R55 UR[R"S$S#[R55 UR[R"S&S%[R55 UR[R"S&S"[R55 UR[R"S'S([R55 UR[R"S)S*[R55 g)+Nz[19A]r�z[19a]r�s[19A]�As[19a]r_z[19\xc7]�Ç�çz[19\xe7]z
[19\u0400]�Ѐ�ѐz
[19\u0450]z[19\U00010400]�𐐀�𐐨z[19\U00010428]z[19K]rz[19k]z
[19\u212a]r
rz[19S]r
z[19s]z
[19\u017f]rrkz
[19\u0412]rrz
[19\u0432]rz
[19\u1c80]z
[19\ufb05]rz
[19\ufb06]r)r�rHr}r�r�r|rZs r�test_ignore_case_set�ReTests.test_ignore_case_setks����������3����5�6��������3����5�6��������3����5�6��������3����5�6��������D�"�$�$�7�8��������D�"�$�$�7�8��������D�"�$�$�7�8��������D�"�$�$�7�8��������f�b�d�d�;�<��������f�b�d�d�;�<��������f�b�d�d�;�<��������f�b�d�d�;�<���������"�$�$�?�@���������"�$�$�?�@���������"�$�$�?�@���������"�$�$�?�@�������!2�L�"�$�$�G�H�������!2�L�"�$�$�G�H�������!2�L�"�$�$�G�H�������!2�L�"�$�$�G�H��������D�"�$�$�7�8��������D�"�$�$�7�8��������D�"�$�$�7�8��������D�"�$�$�7�8��������3����R�T�T�	�:�;��������3����R�T�T�	�:�;��������3����R�T�T�	�:�;��������3����R�T�T�	�:�;��������f�b�d�d�2�4�4�i�@�A����"�(�(�;�����R�T�T�	�B�C����"�(�(�;�����R�T�T�	�B�C��������f�b�d�d�2�4�4�i�@�A���������"�$�$�r�t�t�)�D�E����"�(�(�=�(�B�D�D����I�F�G����"�(�(�=�(�B�D�D����I�F�G���������"�$�$�r�t�t�)�D�E�������!2�L�"�$�$�r�t�t�)�L�M����"�(�(�#4�l�B�D�D����I�N�O����"�(�(�#4�l�B�D�D����I�N�O�������!2�L�"�$�$�r�t�t�)�L�M�	
�������8�R�T�T�:�;��������8�R�T�T�:�;���������R�T�T�:�;���������R�T�T�:�;�	
�������8�R�T�T�:�;��������8�R�T�T�:�;���������R�T�T�:�;���������R�T�T�:�;�	
��������"�$�$�?�@���������"�$�$�?�@���������"�$�$�?�@���������"�$�$�?�@���������"�$�$�?�@���������"�$�$�?�@�	
��������"�$�$�?�@���������"�$�$�?�@rc���UR[R"SS[R55 UR	[R"SS[R55 UR[R"SS[R55 UR	[R"SS[R55 UR[R"SS[R55 UR[R"SS	[R55 UR	[R"SS
[R55 UR[R"SS
[R55 UR[R"SS[R55 UR	[R"SS[R55 UR[R"S
S[R55 UR[R"S
S[R55 UR[R"SS[R55 UR[R"SS[R55 UR[R"SS[R55 UR[R"SS[R55 UR[R"SS[R55 UR[R"SS[R55 UR[R"SS[R[R
-55 UR	[R"SS	[R[R
-55 UR[R"SS
[R[R
-55 UR	[R"SS[R[R
-55 UR[R"S
S[R[R
-55 UR	[R"S
S[R[R
-55 UR	[R"SS[R[R
-55 UR[R"SS[R[R
-55 UR[R"SS[R[R
-55 UR	[R"SS[R[R
-55 UR	[R"SS[R[R
-55 UR[R"SS[R[R
-55 UR[R"SS[R[R
-55 UR[R"SS[R[R
-55 UR[R"SS[R[R
-55 UR[R"SS[R[R
-55 UR[R"SS[R[R
-55 UR[R"SS[R[R
-55 UR[R"SS[R55 UR[R"SS[R55 UR[R"S S![R55 UR[R"S S"[R55 UR[R"S#S$[R55 UR[R"S%S$[R55 UR[R"S&S'[R55 UR[R"S&S([R55 UR[R"S)S*[R55 UR[R"S)S+[R55 UR[R"S,S-[R55 UR[R"S,S+[R55 UR[R"S.S-[R55 UR[R"S.S*[R55 UR[R"S/S0[R55 UR[R"S1S2[R55 g)3Nz[9-a]�_z[9-A]s[9-a]�_s[9-A]z[\xc0-\xde]�×r�÷z[\xe0-\xfe]rz[\u0430-\u045f]rrz[\u0400-\u042f]z[\U00010428-\U0001044f]rrz[\U00010400-\U00010427]z[N-\x7f]r�z[n-\x7f]�Zz
[N-\uffff]z
[n-\uffff]z[N-\U00010000]z[n-\U00010000]z[J-M]rz[j-m]z[\u2129-\u212b]r
rz[R-T]r
z[r-t]z[\u017e-\u0180]rrkz[\u0411-\u0413]rrz[\u0431-\u0433]rz[\u1c80-\u1c82]z[\ufb04-\ufb05]rz[\ufb06-\ufb07]r)r�rHr}r�r|r�rZs r�test_ignore_case_range�ReTests.test_ignore_case_range�s����������3����5�6����"�(�(�8�S�"�$�$�7�8��������D�"�$�$�7�8����"�(�(�9�d�B�D�D�9�:������������>�?������������>�?����"�(�(�>�6�2�4�4�@�A������������>�?������������>�?����"�(�(�>�6�2�4�4�@�A�������!3�X�r�t�t�D�E�������!3�X�r�t�t�D�E�������!3�X�r�t�t�D�E�������!3�X�r�t�t�D�E�������!;�\�2�4�4�P�Q�������!;�\�2�4�4�P�Q�������!;�\�2�4�4�P�Q�������!;�\�2�4�4�P�Q������������b�d�d��C�D����"�(�(�>�6�2�4�4����9�E�F������������b�d�d��C�D����"�(�(�>�6�2�4�4����9�E�F�������!3�X�r�t�t�B�D�D�y�I�J����"�(�(�#5�x����b�d�d��K�L����"�(�(�#5�x����b�d�d��K�L�������!3�X�r�t�t�B�D�D�y�I�J�������!;�\�2�4�4�PR�PT�PT�9�U�V����"�(�(�#=�|�R�T�T�RT�RV�RV�Y�W�X����"�(�(�#=�|�R�T�T�RT�RV�RV�Y�W�X�������!;�\�2�4�4�PR�PT�PT�9�U�V��������c�2�4�4����9�=�>��������c�2�4�4����9�=�>���������R�T�T�"�$�$�Y�?�@���������R�T�T�"�$�$�Y�?�@�������!2�C����b�d�d��C�D�������!2�C����b�d�d��C�D�	
�������8�R�T�T�:�;��������8�R�T�T�:�;�������!3�S�"�$�$�?�@�������!3�S�"�$�$�?�@�	
�������8�R�T�T�:�;��������8�R�T�T�:�;�������!3�S�"�$�$�?�@�������!3�S�"�$�$�?�@�	
������!3�X�r�t�t�D�E�������!3�X�r�t�t�D�E�������!3�X�r�t�t�D�E�������!3�X�r�t�t�D�E�������!3�X�r�t�t�D�E�������!3�X�r�t�t�D�E�	
������!3�X�r�t�t�D�E�������!3�X�r�t�t�D�Erc�p�UR[R"SS5RS5S5 g)Nz(\s)r�rs�rArHr}r�rZs r�
test_category�ReTests.test_category�s(��������'�3�/�5�5�a�8�#�>rc���UR[R"SS5RS5S5 UR[R"SS5RS5S5 g)Nz\s([^a])� brsrdz	\s([^a]*)z bb�bb�rArHrzr�rZs r�test_not_literal�ReTests.test_not_literal�sN��������;��5�;�;�A�>��D�������<��7�=�=�a�@�$�Grc�D�[[S55R5nUR[S5n[
R"S5nSSS5 URWR[5 URWRU5[S55 UR[S5nUR[
R"SU5[S55 SSS5 URUR[5 UR[
R"SU5[S55 UR[S5n[
R"S5nSSS5 URUR[5 URURU5[S	55 UR[S
5n[
R"S5nSSS5 URUR[5 URURU5[S55 UR[S
5n[
R"S5nSSS5 URUR[5 URURU5[S55 UR[S
5nUR[
R"SU5[S55 SSS5 URUR[5 UR[S
5n[
R"S5nSSS5 URUR[5 URURU5[S55 UR[
R"SU5[S55 UR[S5n[
R"S5nSSS5 URUR[5 URURU5[S55 UR[S5n[
R"S5nSSS5 URUR[5 URURU5[S55 UR[
R"SU5[S55 UR[S5n[
R"S5nSSS5 URUR[5 URURU5[S55 UR[S5n[
R"S5nSSS5 URUR[5 URURU5[S55 UR[
R"SU5[S 55 UR[S!5n[
R"S"5nSSS5 URUR[5 URURU5[S#55 UR[S!5nUR[
R"S$U5[S%55 SSS5 URUR[5 UR[S!5n[
R"S&5nSSS5 URUR[5 URURU5[S'55 g!,(df   GN]=f!,(df   GN�=f!,(df   GNc=f!,(df   GN�=f!,(df   GN�=f!,(df   GN=f!,(df   GN�=f!,(df   GN"=f!,(df   GN�=f!,(df   GN=f!,(df   GN�=f!,(df   GN=f!,(df   GN�=f!,(df   GND=f)(N�zPossible set differencez[0-9--1]z
-./0123456789z[0-9--2]z[--1]z-./01z[%--1]z
%&'()*+,-1zPossible set difference z[%--]z	%&'()*+,-zPossible set intersection z[0-9&&1]z&0123456789z[0-8&&1]z
&012345678z[\d&&1]z[&&1]z&1zPossible set union z[0-9||a]z0123456789a|z[\d||a]z[||1]z1|z"Possible set symmetric difference z[0-9~~1]z0123456789~z[\d~~1]z[~~1]z1~zPossible nested set z[[0-9]|]z0123456789[]z[[0-8]|]z012345678[]z[[:digit:]|]z:[]dgit)�bytesr�decode�assertWarnsRegex�
FutureWarningrHrJrAr�r�rjr6)rrkr�r�s    r�test_possible_set_operations�$ReTests.test_possible_set_operations�s����%��*��$�$�&��
�
"�
"�=�2K�
L�PQ��
�
�;�'�A�M�������X�.�������1��t�O�'<�=�
�
"�
"�=�2K�
L�PQ����R�Z�Z��Q�7��o�9N�O�M�������X�.�������H�a�0�$�w�-�@�
�
"�
"�=�2K�
L�PQ��
�
�9�%�A�M�������X�.�������1��t�L�'9�:�
�
"�
"�=�2L�
M�QR��
�
�8�$�A�N�������X�.�������1��t�K�'8�9�
�
"�
"�=�2N�
O�ST��
�
�;�'�A�P�������X�.�������1��t�M�':�;�
�
"�
"�=�2N�
O�ST����R�Z�Z��Q�7��l�9K�L�P�������X�.�
�
"�
"�=�2N�
O�ST��
�
�:�&�A�P�������X�.�������1��t�M�':�;�������H�a�0�$�t�*�=�
�
"�
"�=�2G�
H�A��
�
�;�'�A�I�������X�.�������1��t�N�';�<�
�
"�
"�=�2G�
H�A��
�
�:�&�A�I�������X�.�������1��t�N�';�<�������H�a�0�$�t�*�=�
�
"�
"�=�2V�
W�[\��
�
�;�'�A�X�������X�.�������1��t�M�':�;�
�
"�
"�=�2V�
W�[\��
�
�:�&�A�X�������X�.�������1��t�M�':�;�������H�a�0�$�t�*�=�
�
"�
"�=�2H�
I�Q��
�
�;�'�A�J�������X�.�������1��t�N�';�<�
�
"�
"�=�2H�
I�Q����R�Z�Z��Q�7��m�9L�M�J�������X�.�
�
"�
"�=�2H�
I�Q��
�
�?�+�A�J�������X�.�������1��t�I��7�MM�
L��M�
L��M�
L��
N�
M��
P�
O��P�
O��P�
O��I�
H��
I�
H��X�
W��
X�
W��J�
I��J�
I��J�
I�s��^&�81^8�_
�_�_.�1`�`�2`$�1`6� a�a�a,�
1a>�<b�&
^5�8
_�

_�
_+�.
_=�
`�
`!�$
`3�6
a�
a�
a)�,
a;�>
b
�
bc���UR[R"SS5RS5S5 UR[R"SS5RS5S5 g)Nz\s(b)r,rsrdza\sza rr.rZs r�test_search_coverage�ReTests.test_search_coverageHsN��������8�T�2�8�8��;�S�A�������6�4�0�6�6�q�9�4�@rc��UcUcUnS[U54nOUbUc[S5eU"X5nURU5 URUR	5U5 URUR5U5 g)Nrz@If match is not None, span should be specified (and vice versa).)rr�r�rAr�r{)rrF�textr}r{�matcherr�s       r�assertMatch�ReTests.assertMatchLsz���=�T�\��E��s�4�y�>�D�
�]�d�l��1�2�
2��G�"��������������E�*��������4�(rz!"%',/:;<=>@_`c�b�SRS[S555nUH~nUR[R"U5U5 URS[R"U5-S-U5 URS[R"U5-U5 M� UR[R"U5U5 SH,nUR[R"U5SSS	5 M. URnUR[R"U5U5 g)
Nr�c3�8# �UHn[U5v� M g7fr)r�rs  rr	�)ReTests.test_re_escape.<locals>.<genexpr>]s���/�J�q�C��F�F�J�s�r�r�r�z(?x)z-.]{}rsr�)rrr?rH�escaperA�
LITERAL_CHARS)rr�r��
literal_charss    r�test_re_escape�ReTests.test_re_escape\s����G�G�/�E�#�J�/�/���A����R�Y�Y�q�\�1�-����S�2�9�9�Q�<�/�#�5�q�9����V�b�i�i��l�2�A�6��	
������1��q�)��A����R�Y�Y�q�\�"�1�-�t�4���*�*�
�������=�1�=�Arc��[[S55nUH�n[U/5nUR[R"U5U5 URS[R"U5-S-U5 URS[R"U5-U5 M� UR[R"U5U5 SH8n[U/5nUR[R"U5SSS5 M: URRS5nUR[R"U5U5 g)	Nr��[�]s(?x)s-.]{}rs�\�ascii)r3rr?rHrDrArE�encode)rr�rrdrFs     r�test_re_escape_bytes�ReTests.test_re_escape_byteshs����%��*����A��q�c�
�A����R�Y�Y�q�\�1�-����T�B�I�I�a�L�0�4�7��;����W�r�y�y��|�3�Q�7�	�
	
������1��q�)��A��q�c�
�A����R�Y�Y�q�\�"�1�-�u�5���*�*�1�1�'�:�
�������=�1�=�Arc���Sn[R"U5nURX!5 URX!5 URS[R"S5-USS[R5 g)Nuxxx☠☠☠xxxz.%s+.�☠ux☠☠☠x)r�r�)rHrDrAr?rz)rrk�	s_escapeds   r�test_re_escape_non_ascii� ReTests.test_re_escape_non_asciivs\��&���I�I�a�L�	�����&�����&�����2�9�9�X�#6�6��/�����	Drc�@�SRS5n[R"U5nURX!5 UR	X!5 [R
"[R"SRS55U5nUR[
U5S5 g)Nu	y☠y☠yzutf-8rRr�)rNrHrDrAr?rjr)rrd�	b_escaped�ress    r�test_re_escape_non_ascii_bytes�&ReTests.test_re_escape_non_ascii_bytes~sq���$�$�W�-���I�I�a�L�	�����&�����&��j�j����8�?�?�7�#;�<�a�@������S��1�%rc��SSKn[R"S[R5n[	UR
S-5H6nUR
X#5nURU5nURXR5 M8 SSKJ	n g)Nrza(?:b|(c|e){1,2}?|d)+?(.)rs)�_compile)
�picklerHrJ�UNICODEr�HIGHEST_PROTOCOL�dumps�loadsrAr\)rr]�oldpat�proto�pickled�newpatr\s       r�
test_pickling�ReTests.test_pickling�sc������7����D���6�2�2�Q�6�7�E��l�l�6�1�G��\�\�'�*�F����V�,�8�
	 rc�b�SSKn[R"S5nURURU5U5 URUR	U5U5 URS5nURURU5U5 URUR	U5U5 g)Nrz (?P<int>\d+)(?:\.(?P<frac>\d*))?z12.34)�copyrHrJr8�deepcopyr})rrir�r�s    r�test_copying�ReTests.test_copying�s|����J�J�:�;���
�
�d�i�i��l�A�&��
�
�d�m�m�A�&��*�
�G�G�G����
�
�d�i�i��l�A�&��
�
�d�m�m�A�&��*rc���UR[R[R5 UR[R[R
5 UR[R[R5 UR[R[R5 UR[R[R5 gr)rArHr��
IGNORECASE�Lr�r��	MULTILINErr�r��VERBOSErZs r�test_constants�ReTests.test_constants�sz��������r�}�}�-�������r�y�y�)�������r�|�|�,�������r�y�y�)�������r�z�z�*rc�(�[R[R[R[R[R
[R4H)nUR[R"SU55 M+ [R[R[R[R[R
[R4H)nUR[R"SU55 M+ g)Nz	^pattern$s	^pattern$)
rHr�r�r�rr�r�r�rJro)r�flags  r�
test_flags�ReTests.test_flags�s����T�T�2�4�4����r�t�t�R�T�T�2�4�4�8�D��O�O�B�J�J�{�D�9�:�9��T�T�2�4�4����r�t�t�R�T�T�2�4�4�8�D��O�O�B�J�J�|�T�:�;�9rc	��SGH�nUS:Ga8UR[R"SU-[U555 UR[R"SU-[U5S-55 UR[R"SU-[U5S-55 UR[R"SU-[U555 UR[R"S	U-[U5S-55 UR[R"S
U-[U5S-55 US:a�UR[R"S
U-[U555 UR[R"SU-[U5S-55 UR[R"SU-[U5S-55 UR[R"SU-[U555 UR[R"SU-[U5S-55 UR[R"SU-[U5S-55 GM� UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR	SSS5 UR	SSS 5 UR	S!S"S5 UR	S#S"S5 UR	S$S%S5 UR	S&S%S5 UR	S'S(S5 UR	S)S(S5 UR	S*S+S5 g),N�rr��� �@�r2r�r��r�i��r��\%03o�\%03o0�0�\%03o8�8�\x%02x�\x%02x0�\x%02xz�zr�z\u%04xz\u%04x0z\u%04xzz\U%08xz\U%08x0z\U%08xzr�r�r�r�z\01r�z\018z8z\567�0octal escape value \567 outside of range 0-0o377rz\911�invalid group reference 91rsz\x1�incomplete escape \x1z\x1zz\u123�incomplete escape \u123z\u123zz	\U0001234�incomplete escape \U0001234z
\U0001234zz
\U00110000�bad escape \U00110000�r�rHr}r�rQr�s  r�test_sre_character_literals�#ReTests.test_sre_character_literals�s���R�A��3�w��������A��s�1�v� >�?��������Q���A��s�
� C�D��������Q���A��s�
� C�D��������Q���A�� ?�@��������a���Q���� D�E��������a���Q���� D�E��7�{��������Q���A�� ?�@��������a���Q���� D�E��������a���Q���� D�E��O�O�B�H�H�Y��]�C��F�;�<��O�O�B�H�H�Z�!�^�S��V�C�Z�@�A��O�O�B�H�H�Z�!�^�S��V�C�Z�@�A�S�	
��������/�0���������1�2���������0�1��������'�2�3����w� 0�12�	4�	
���w�(D�a�H����v�'?��C����w�(@�!�D����x�)C�Q�G����y�*D�a�H����|�-K�Q�O����}�.L�a�P����}�.F��Jrc	���SGH�nUS:Ga�UR[R"SU-[U555 UR[R"SU-[U555 UR[R"SU-[U555 UR[R"SU-[U555 UR[R"SU-[U555 UR[R"SU-[U555 UR[R"S	U-[U555 UR[R"S
U-[U555 US:a�UR[R"SU-[U555 UR[R"S
U-[U555 UR[R"SU-[U555 UR[R"SU-[U555 UR[R"SU-[U5S-55 UR[R"SU-[U5S-55 GM� UR	SSS5 UR	SSS5 UR	SSS5 UR	SSS5 UR	SSS5 UR	SS S5 UR[R"S!S"55 g)#Nryr��[\%o]�[\%o8]�[\%03o]�[\%03o0]�[\%03o8]�[\x%02x]�	[\x%02x0]�	[\x%02xz]r�z[\u%04x]z	[\u%04x0]z	[\u%04xz]z[\U%08x]z	[\U%08x0]r�z	[\U%08xz]r�z[\567]r�rsz[\911]�
bad escape \9z[\x1z]r�z[\u123z]r�z[\U0001234z]r�z[\U00110000]r�z[\U0001d49c-\U0001d4b5]u𝒞r�r�s  r�!test_sre_character_class_literals�)ReTests.test_sre_character_class_literals�so��R�A��3�w��������A��s�1�v� >�?��������Q���A�� ?�@��������a���Q�� @�A��������q��#�a�&� A�B��������q��#�a�&� A�B��������q��#�a�&� A�B���������)9�3�q�6� B�C���������)9�3�q�6� B�C��7�{��������q��#�a�&� A�B���������)9�3�q�6� B�C���������)9�3�q�6� B�C��O�O�B�H�H�[�1�_�c�!�f�=�>��O�O�B�H�H�\�A�%5�s�1�v�c�z�B�C��O�O�B�H�H�\�A�%5�s�1�v�c�z�B�C�!S�"	
���y� 0�12�	4�	
���y�*:�A�>����y�*B�A�F����{�,F��J�����0N�PQ�R�����0H�!�L�������!;�\�J�Krc	���SGH�nUR[R"SU-R5[	U/555 UR[R"SU-R5[	U/5S-55 UR[R"SU-R5[	U/5S-55 UR[R"SU-R5[	U/555 UR[R"SU-R5[	U/5S-55 UR[R"S	U-R5[	U/5S
-55 GM� UR[R[RS5 UR[R[RS5 UR[R"S
S55 UR[R"SS55 UR[R"SS55 UR[R"SS55 URSSS5 URSSS5 URSSS5 URSSS5 g)N�rr�rzr{r|r}r2r�rr��0r��8r�r�r��zs\u1234s
\U00012345s\0�s\08s8s\01�s\018s8s\567r�rs\911r�rss\x1r�s\x1z�	r�rHr}rNr3rGrIrJrQr�s  r�test_sre_byte_literals�ReTests.test_sre_byte_literals�s���2�A��O�O�B�H�H�h��l�%:�%:�%<�e�Q�C�j�I�J��O�O�B�H�H�i�!�m�%;�%;�%=�u�a�S�z�$��O�P��O�O�B�H�H�i�!�m�%;�%;�%=�u�a�S�z�$��O�P��O�O�B�H�H�i�!�m�%;�%;�%=�u�a�S�z�J�K��O�O�B�H�H�j�1�n�%<�%<�%>��q�c�
�4��P�Q��O�O�B�H�H�j�1�n�%<�%<�%>��q�c�
�4��P�Q�
3�	
���"�/�/�2�:�:�z�B����"�/�/�2�:�:�~�F���������1�2��������(�3�4��������'�2�3��������8�4�5����x� 0�12�	4�	
���x�)E�q�I����w�(@�!�D����x�)A�1�Erc	�X�SGHnUR[R"SU-R5[	U/555 UR[R"SU-R5[	U/555 UR[R"SU-R5[	U/555 UR[R"SU-R5[	U/555 UR[R"SU-R5[	U/555 UR[R"SU-R5[	U/555 UR[R"SU-R5[	U/555 UR[R"S	U-R5[	U/555 GM UR[R[RS
5 UR[R[RS5 URSS
S5 URSSS5 URSSS5 g)Nr�r�r�r�r�r�r�r�r�s[\u1234]s[\U00012345]s[\567]r�rss[\911]r�s[\x1z]r�r�r�s  r�test_sre_byte_class_literals�$ReTests.test_sre_byte_class_literals�s���2�A��O�O�B�H�H�h��l�%:�%:�%<�e�Q�C�j�I�J��O�O�B�H�H�i�!�m�%;�%;�%=�u�a�S�z�J�K��O�O�B�H�H�j�1�n�%<�%<�%>��q�c�
�K�L��O�O�B�H�H�k�A�o�%=�%=�%?���s��L�M��O�O�B�H�H�k�A�o�%=�%=�%?���s��L�M��O�O�B�H�H�k�A�o�%=�%=�%?���s��L�M��O�O�B�H�H�l�Q�&6�%>�%>�%@�%���*�M�N��O�O�B�H�H�l�Q�&6�%>�%>�%@�%���*�M�N�3�	
���"�/�/�2�:�:�|�D����"�/�/�2�:�:�7G�H����z� 0�12�	4�	
���z�+;�Q�?����z�+C�Q�Grc��URSSS5 URSSS5 URSSS5 URSSS5 URSSS	5 URS
SS	5 URSS
S	5 g)Nr�zunterminated character setrz[^z[az[a-z[\w-b]zbad character range \w-brsz[a-\w]zbad character range a-\wz[b-a]zbad character range b-ar rZs r�test_character_set_errors�!ReTests.test_character_set_errors	s������t�%A�1�E����u�&B�A�F����u�&B�A�F�	
���v�'C�Q�G����y�*E�q�I����y�*E�q�I����x�)B�A�Frc�H�UR[R"SS5RS5S5 UR[R"SS5R	S5S5 UR[R"SS5RS5S5 g)Nz(a)|(b)rdrsrx)rxrx)rArHr}�start�endr{rZs r�test_bug_113254�ReTests.test_bug_113254st��������*�c�2�8�8��;�R�@�������*�c�2�6�6�q�9�2�>�������*�c�2�7�7��:�H�Erc���UR[R"SS5R5 UR	[R"SS5RS5 UR	[R"SS5R
S5 UR	[R"SS5R
S5 UR	[R"SS5RS5 g)	Nz(a)?ar�z(a)(b)?br�rsz(?P<a>a)(?P<b>b)?bz(?P<a>a(b))z((a)))r|rHr}�	lastindexrA�	lastgrouprZs r�test_bug_527371�ReTests.test_bug_527371s������"�(�(�8�C�0�:�:�;�������+�d�3�=�=�q�A�������"7��=�G�G��M�������.�$�7�A�A�3�G�������(�C�0�:�:�A�>rc��UR[R"SSS-S-5RS5S5 UR[R"SSS-S	-SS--S
-5RS5S5 UR[R"SSS
-S-5RS5S5 UR[R"SSS-S-5RS5S5 g)Nz.*?cr�r�r�ri!Nz.*?cdi�r��cdei#Ni Nr��deia�z(a|b)*?c)rArHr}r�rzrZs r�test_bug_418626�ReTests.test_bug_418626!s���	
������&�%��*�T�/�:�>�>�q�A�5�I�������'�4��9�S�=��d��+B�5�+H�I�M�M�a�P��	 �������'�5��;�t�+;�<�@�@��C�U�K�	
������:�u�T�z�$��?�C�C�A�F��Nrc��S[R"S5-S-nUR[R"U5=(a SS5 g)Nr�u‹r�rs)rHrDrArJrs  r�test_bug_612074�ReTests.test_bug_612074-s7����	�	�(�#�#�C�'��������C��.�Q��2rc�f�UR[R"SSS-5RS5S5 UR[R"SSS-S-5RS5S5 UR[R"SSS-S-5RS5S5 g)Nz(x)*iP�r<rsz(x)*yr=z(x)*?yr(rZs r�test_stack_overflow�ReTests.test_stack_overflow1s���	
������&�%��)�4�:�:�1�=�s�C�������'�5��9�S�=�9�?�?��B�C�H�������(�E�#�I�c�M�:�@�@��C�S�Irc��SH@nSH7nURU<U<3SS5 URSU<U<S3SS5 M9 MB g)N��*�+�?z{1,2}�r�r�znothing to repeatr�(?:r�rtr )r�reps�mods   r�test_nothing_to_repeat�ReTests.test_nothing_to_repeat8sJ��*�D����&�&��s�';�':�A�?��&�&�T�3�'?�':�A�?��+rc��SHVnSHMnX-nSH@nSH7nXQ-S;aM
XE-nURSU<U<3SS[U5-5 M9 MB MO MX g)Nr�)r�r�r�)r�r�r<zmultiple repeatrs)rQr)r�
outer_reps�	outer_mod�outer_op�
inner_reps�	inner_mod�inner_ops       r�test_multiple_repeat�ReTests.test_multiple_repeat@sl��0�J�)�	�%�1��"8�J�%1�	�$�1�Z�?�$�#-�#9���.�.�8�X�/N� 1�1�s�8�}�3D�F�	&2�#9�*�1rc���UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"SS55 g)Nz(?:a?)*yr�z(?:a?)+yz(?:a?){2,}yz	(?:a?)*?yz	(?:a?)+?yz(?:a?){2,}?y)r|rHr}rZs r� test_unlimited_zero_width_repeat�(ReTests.test_unlimited_zero_width_repeatLs������"�(�(�;��4�5����"�(�(�;��4�5����"�(�(�>�3�7�8����"�(�(�<��5�6����"�(�(�<��5�6����"�(�(�?�C�8�9rc��SnSnSnSn[SU4SU4SU4SU4S	/5nURURRS
5R5 UR	URS5/SQS
45 g)
Nc��U$rr ��scanner�tokens  r�s_ident�%ReTests.test_scanner.<locals>.s_identVs��E�\rc��SU-$)Nzop%sr r�s  r�
s_operator�(ReTests.test_scanner.<locals>.s_operatorWs��v��~�(=rc��[U5$r)�floatr�s  r�s_float�%ReTests.test_scanner.<locals>.s_floatXs��E�%�L�%8rc��[U5$r)r�r�s  r�s_int�#ReTests.test_scanner.<locals>.s_intYs��#�e�*�#4rz[a-zA-Z_]\w*z\d+\.\d*r�z=|\+|-|\*|/)z\s+Nr�zsum = 3*foo + 312.50 + bar)	�sumzop=rtzop*�foo�op+g�s@r��bar)rr�r�rFrA�scan)rr�r�r�r�r�s      r�test_scanner�ReTests.test_scannerUs���1�=�8�4��
�g�&�
�'�"�
�U�O�
�Z�(�����	
������/�/��3�;�;�<�������&B�C�)�*,�.�	/rc��SHsnUR[R"SU-S5R5S5 UR[R"SU-S5R5S5 Mu g)N)r�r�r�z
((.%s):)?zr�r�za:z)rIr��rArHr}ri)r�ops  r�test_bug_448951�ReTests.test_bug_448951isf���B����R�X�X�m�B�&6��<�C�C�E�)�
+����R�X�X�m�B�&6��>�E�E�G�(�
*�rc�T�UR[R"SS5R5S5 UR[R"SS5R5S5 UR[R"SS5R5S5 UR[R"SS5R5S5 UR[R"S	S5R5S5 UR[R"S
S5R5S5 UR[R"SS5R5S5 UR[R"S
S5R5S5 g)Nz	^((a)|b)*r�rzz^(([ab])|c)*)r�rdz^((d)|[ab])*�rdNz
^((a)c|[ab])*z^((a)|b)*?cz^(([ab])|c)*?dr�z^((d)|[ab])*?cz^((a)c|[ab])*?cr�rZs r�test_bug_725106�ReTests.test_bug_725106rs=��������+�u�5�<�<�>�#�	%�������.�%�8�?�?�A�#�	%�������.�%�8�?�?�A�$�	&�������/�5�9�@�@�B�$�	&�������-��7�>�>�@�#�	%�������"2�F�;�B�B�D�#�	%�������"2�E�:�A�A�C�$�	&�������"3�U�;�B�B�D�$�	&rc���UR[R"SS5R5S5 UR[R"SS5R5S5 g)Nz(a)(?:(?=(b)*)c)*r�)r�Nz(a)((?!(b)*))*rer�rZs r�test_bug_725149�ReTests.test_bug_725149�sR��������"5�u�=�D�D�F�$�	&�������"2�E�:�A�A�C�*�	,rc��"SS[5n[R"U"S55nURUR	S55 g)Nc��\rSrSrSrg)�+ReTests.test_bug_764548.<locals>.my_unicodei�r N�r"r#r$r%r&r rr�
my_unicoder��s��trrr�r�)r�rHrJr|r})rrrs   r�test_bug_764548�ReTests.test_bug_764548�s4��#��#��j�j��E�*�+�����#�)�)�E�*�+rc��[R"SS5nURUVs/sHo"RS5PM sn/SQ5 [R"S5nURSSS5nURUVs/sHo"RS5PM sn/SQ5 [R"S5nURSSSS9nURUVs/sHo"RS5PM sn/SQ5 [R"S5nURSSSS9nURUVs/sHo"RS5PM sn/SQ5 [R"S5nURSS	S
S9nURUVs/sHo"RS5PM snSS/5 gs snfs snfs snfs snfs snf)Nr=rRrrSrsr�r�)r�rMrtr�r?)rHrarAr�rJ)r�iter�itemrs    r�
test_finditer�ReTests.test_finditer�s����{�{�5�,�/�����D�9�D�D�*�*�Q�-�D�9�+�	-��j�j�����|�|�L�!�R�0�����D�9�D�D�*�*�Q�-�D�9�+�	-��j�j�����|�|�L�a��|�;�����D�9�D�D�*�*�Q�-�D�9�+�	-��j�j�����|�|�L���|�;�����D�9�D�D�*�*�Q�-�D�9�+�	-��j�j�����|�|�L�a��|�:�����D�9�D�D�*�*�Q�-�D�9����	'��):��
:��
:��
:��
:s�F6�F;�G�7G�G
c�x�UR[R"S5[R"S55 g)N�
bug_926075s
bug_926075)�assertIsNotrHrJrZs r�test_bug_926075�ReTests.test_bug_926075�s'��������L�1����M�2�	4rc�v�SnUR[R"U5RS5/SQ5 g)Nu[.。.。]za.b.cr�)rArHrJr�r�s  r�test_bug_931848�ReTests.test_bug_931848�s.��.��������G�,�2�2�7�;�&�	(rc��[R"SS5nUR[U5R	5S5 UR[[U5 [R"S5RS5nURUR5R	5S5 URUR55 g)Nz\sr�)rsr�)rHrarA�nextr{rG�
StopIterationrJr�rzr|)rrr�s   r�test_bug_581080�ReTests.test_bug_581080�s����{�{�5�%�(������d����*�E�2����-��t�4��*�*�U�#�+�+�E�2��������)�.�.�0�&�9����'�.�.�*�+rc��[R"SS5nUR[U5R	5S5 UR[U5R	5S5 UR[[U5 g)Nz.*�asdfr�)rr)rHrarArr{rGr)rrs  r�test_bug_817234�ReTests.test_bug_817234�sZ���{�{�5�&�)������d����*�F�3�����d����*�F�3����-��t�4rc���/SQnUH9nUR[R"SU5RS5U5 M; /SQnUH)nUR	[R"SU55 M+ g)N)�7u๘u0z^\d$r)uⅥu〹u₂u㊴)rArHr}r�r|)r�decimal_digitsr<�not_decimal_digitss    r�
test_bug_6561�ReTests.test_bug_6561�sh����
 �A����R�X�X�g�q�1�7�7��:�A�>� ���$�A����b�h�h�w��2�3�$r)�categoryc�.�SSKnSH�nURU5nUR[R"S5R	U55 UR[R"S5R	U5R
5S5 M� g)Nr�bBhuwHiIlLfdsblarr )�arrayr|rHrJr}rAri)rr#�typecoder�s    r�test_empty_array�ReTests.test_empty_array�sm��	�&�H����H�%�A����b�j�j��0�6�6�q�9�:����R�Z�Z��_�2�2�1�5�<�<�>��C�'rc���SnSn[R"SU-[R[R-5nUR	SU-5nURU5 [R"SU-[R[R-5nUR	SU-5nURU5 [R"SU-[R5nUR	SU-5nURU5 [R"SU-[R5nUR	SU-5nURU5 [R"SU-5nUR	SU-5nURU5 [R"SU-5nUR	SU-5nURU5 [R"SU-5nUR	SU-5nURU5 [R"SU-5nUR	SU-5nURU5 UR[R"SU-U55 UR[R"SU-U55 UR[R"S	U-U[R55 UR[R"S
U-U55 UR[R"SU-U[R55 SnURUS
-US5 [R"5 [R"S[5 URSUS5 SSS5 URSU-US5 URSU-S-US5 URSU-US5 URSU-US5 URSU-US5 URSU-S-US5 URSU-S-US5 URSU-S-US5 g!,(df   N�=f) NuẠuạr�r�z(?i).z(?is).z	(?s)(?i).z(?ix) z (?i) z
(?x) (?i) z (?x) (?i) z/global flags not at the start of the expressionz(?i)rs�errorsA(?i)z	(?s).(?i)rz(?i) z (?x)r�z^(?i)z$|(?i)r�z(?:(?i)r�rtz
(^)?(?(1)(?i)r�z($)?(?(1)|(?i)r�)rHrJr�rr}r�r�rQ�warnings�catch_warnings�simplefilter�BytesWarning)r�
upper_char�
lower_charr��qr>s      r�test_inline_flags�ReTests.test_inline_flags�s����
��
��J�J�s�Z�'��������5��
�G�G�D�:�%�&��������J�J�s�Z�'��������5��
�G�G�D�:�%�&��������J�J�w��+�R�T�T�2��
�G�G�D�:�%�&��������J�J�w��+�R�T�T�2��
�G�G�D�:�%�&��������J�J�x�*�,�-��
�G�G�D�:�%�&��������J�J�x�*�,�-��
�G�G�D�:�%�&��������J�J�{�Z�/�0��
�G�G�D�:�%�&��������J�J�{�Z�/�0��
�G�G�D�:�%�&��������������J�!6�
�C�D��������J�!6�
�C�D��������J�!6�
�B�D�D�I�J��������
�!:�J�G�H���������!;�Z����N�O�?�����z�F�2�C��;��
$�
$�
&��!�!�'�<�8��"�"�8�S�!�4�'�	
���{�Z�7��a�@����w��3�g�=�s�A�F����}�z�9�3��B����w��3�S�!�<����x�*�4�c�1�=����y�:�5��;�S�!�D������;�c�A�3��J����/�*�<�s�B�C��L�'�
&�s�+/Q�
Q-c��[R"S5nURURSS5S5 URURSS5S5 URURSS5S5 [R"S[R5nURURSS5S	5 URURSS5S
5 URURSS5S5 g)z_Test 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#r�z#
#za#
b#
#za#
b#
c#N)rHrJrArUrpr�s  r�test_dollar_matches_twice�!ReTests.test_dollar_matches_twices����*�*�S�/��������S�(�3�Z�@�������S�)�4�j�A�������S�$�/��8��*�*�S�"�,�,�/��������S�(�4�k�C�������S�)�4�l�C�������S�$�/��8rc�x�[R"S5n[R"S5nUR[URS5 UR[URS5 UR[UR
SS5 UR[UR
SS5 UR[UR
SS5 UR[UR
SS5 UR[UR
SS5 UR[UR
SS5 g)Nr��.rArdr�rB)rHrJrGr�r}rU)rr�bpats   r�test_bytes_str_mixing�ReTests.test_bytes_str_mixing+s����j�j��o���z�z�$������)�S�Y�Y��5����)�T�Z�Z��5����)�S�W�W�d�C�8����)�S�W�W�c�4�8����)�S�W�W�d�D�9����)�T�X�X�t�S�9����)�T�X�X�s�D�9����)�T�X�X�s�C�8rc��S[R4H�n[R"SU[R-5nUR	URS55 [R"SU5nUR	URS55 M� [R"S[R[R-5nURURS55 [R"S[R5nURURS55 [R"S[R5nURURS55 [R"S5nURURS55 S[R4H�n[R"SU[R-5nURURS55 [R"S	U5nURURS55 M� UR[[RS	[R5 UR[R[RS
5 UR[[RS[R[R-5 UR[[RS[R5 UR[[RS[R5 UR[R[RS5 g)
Nr�Àr�z\wu(?a)Àz(?a)\w�����\ws(?u)\wz(?u)\wz(?au)\w)rHr^rJrnr�r}r�r|rGr�rI)rr�rs   r�test_ascii_and_unicode_flag�#ReTests.test_ascii_and_unicode_flag8s0������_�E��*�*�V�U�R�]�]�%:�;�C��O�O�C�I�I�f�-�.��*�*�U�E�*�C��O�O�C�I�I�f�-�.�	%�
�j�j�����B�M�M�!9�:�����#�)�)�F�+�,��j�j��R�]�]�3�����#�)�)�F�+�,��j�j�����)�����#�)�)�F�+�,��j�j��#�����#�)�)�F�+�,�����]�E��*�*�W�e�b�m�m�&;�<�C����c�i�i��0�1��*�*�V�U�+�C����c�i�i��0�1�	#�	
���*�b�j�j�&�"�*�*�E����"�/�/�2�:�:�z�B����*�b�j�j�%����b�h�h�9N�O����*�b�j�j�)�R�X�X�F����*�b�j�j�)�R�Z�Z�H����"�/�/�2�:�:�z�Brc��[R"5n[SS5H�n[U/5R	U5nUR5nXC:XaM6UR
U5n[U5S:waMXUR	U5U:waMo[R"[U/55n O SnSn[R"U[R[R-5nU(a URUR!U55 [R"SU-[R5nU(a URUR!U55 [R"U[R5nU(a UR#UR!U55 [R"S[R5nU(a URUR!U55 [R"S5nU(a URUR!U55 [R"S5nU(a UR#UR!U55 UR%[&[RS[R5 UR%[R([RS	5 UR%[&[RS
[R[R*-5 UR%[&[RS[R*5 UR%[&[RS[R5 UR%[R([RS5 g![[4a GM�f=f)
Nr2r�rsrs(?L)r@s(?L)\wr�z(?L)rs(?a)s(?aL))�locale�getpreferredencodingrr3r4�lowerrNrrHrD�UnicodeErrorr�rJr�rnr�r}r|rGr�rIr�)r�encrr��sletter�bletterr9rs        r�test_locale_flag�ReTests.test_locale_flagUsr���)�)�+���s�C��A�

��1�#�J�%�%�c�*���'�'�)���<��!�.�.��-���w�<�1�$�h��>�>�#�&�'�1�8��y�y���s��,���!��G��D��j�j��r�y�y�2�=�=�8�9����O�O�C�I�I�g�.�/��j�j��4�����7����O�O�C�I�I�g�.�/��j�j��r�}�}�-������c�i�i��0�1��j�j�����+����O�O�C�I�I�g�.�/��j�j��$����O�O�C�I�I�g�.�/��j�j�� ������c�i�i��0�1����*�b�j�j�"�b�i�i�@����"�/�/�2�:�:�v�>����*�b�j�j�#�r�y�y�2�8�8�7K�L����*�b�j�j�'�2�8�8�D����*�b�j�j�'�2�9�9�E����"�/�/�2�:�:�x�@��=!�)�,�
��
�s#�0N7� N7�:N7� N7�7O�Oc�D�UR[R"SS55 UR[R"SS55 UR[R"SS[R55 UR[R"SS[R55 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"S	S[R
55 UR
S
SS5 UR
S
SS5 UR
SSS5 UR
SSS5 UR
SSS5 UR
SSS5 UR
SSS5 UR
SSS5 UR
SSS5 UR
SSS5 UR
SSS5 UR
SS S!5 UR
S"S#S5 UR
S$S#S5 UR
S%SS5 g)&Nz(?i:a)b�Ab�aBz(?-i:a)bz
(?i:(?-i:a)b)z\w(?a:\W)\wuàààz(?a:\W(?u:\w)\W)z\W(?u:\w)\Wz(?a)(?-a:\w)z8bad inline flags: cannot turn off flags 'a', 'u' and 'L'r�z(?i-i:a)z(bad inline flags: flag turned on and offrz(?au:a)z9bad inline flags: flags 'a', 'u' and 'L' are incompatiblers(?aL:a)z(?-zmissing flagrtz(?-+z(?-z�unknown flagz(?-iz	missing :z(?-i)z(?-i+z(?-izz(?i:r�r�(?i�missing -, : or )z(?i+z(?iz)r�rHr}r|rnr�rQrZs r�test_scoped_flags�ReTests.test_scoped_flags�s���������T�2�3����"�(�(�:�t�4�5����"�(�(�;��b�m�m�D�E��������d�B�M�M�B�C����"�(�(�#3�T�:�;�������!1�4�8�9���������@�A�������!4�n�E�F������������J�K�����J�A�	O����{�:�A�	?����z�K�Q�	P����{�K�Q�	P�	
���v�~�q�9����w���:����w���:����w��Q�7����x��a�8����x��a�8����x���;����w�(L�a�P����v�':�A�>����w�(;�Q�?����w���:rc��SH;nUR[R"US-S[R55 M= SH;nUR[R"US-S[R55 M= UR[R"SS55 UR[R"SS[R55 UR[R"SS55 UR[R"SS	55 UR[R"S
S[R55 UR[R"SS55 UR[R"S
S55 UR[R"S
S55 g)Nz 	

r�)r��	�
�
��r_z(?x) az (?x) az(?x) (?x) az a(?x: b) cz ab cz a(?-x: b) cr�z(?x) a(?-x: b) cz	(?x) a| brd�r�rHr�rq)r�spaces  r�test_ignore_spaces�ReTests.test_ignore_spaces�s��"�E��O�O�B�L�L����c�2�:�:�F�G�#�<�E��O�O�B�L�L����t�R�Z�Z�H�I�=�������X�s�3�4�������Y��R�Z�Z�@�A�������]�C�8�9�������]�G�<�=�������^�V�R�Z�Z�H�I�������%7��@�A�������[�#�6�7�������[�#�6�7rc�t�UR[R"SS[R55 UR[R"SS[R55 UR[R"SS55 UR[R"SS[R55 UR[R"SS55 UR[R"SS	55 UR[R"S
S[R55 UR[R"SS55 UR[R"S
S55 UR[R"S
S55 g)Nz#x
ar�s#x
ar_z(?x)#x
az#x
(?x)#y
az(?x)#x
(?x)#y
az#x
a(?x:#y
b)#z
cz	#x
ab#z
cz#x
a(?-x:#y
b)#z
cza#y
bcz(?x)#x
a(?-x:#y
b)#z
cz
(?x)#x
a|#y
brdr[rZs r�
test_comments�ReTests.test_comments�s��������W�c�2�:�:�>�?�������X�t�R�Z�Z�@�A�������[�#�6�7�������_�c�2�:�:�F�G�������%8�#�>�?�������%;�]�K�L�������%<�i�%'�Z�Z�1�	2�������%@�)�L�M�������%6��<�=�������%6��<�=rc��[R"S5nURURSS5S5 [R"S5nURURSS5S5 [R"S5nURURS	S
5S5 [R"S5nURURS
S5S5 [R"S5nURURS
S5S5 [R"S5nURURSS5S5 g)Nza(\w)zb\1rbrcza(.)uaሴubሴz..c��g)Nr�r r�s rr��'ReTests.test_bug_6509.<locals>.<lambda>�s��5r�a5r�sa(\w)sb\1sacsbcsa(.)sa�sb�s..c��g)N�bytesr r�s rr�rd�s��8rsa5rg)rHrJrArUrs  r�
test_bug_6509�ReTests.test_bug_6509�s����j�j��"����������.��5��j�j�� ����������3�Y�?��j�j�����������$�7��?��j�j��#���������%�0�%�8��j�j��!���������(�3�X�>��j�j����������!3�U�;�X�Frc��UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"SS55 g)Nz123.*-z123abc-u123é-u123€-u123􏿿-u
123é€􏿿-)r�rHrzrZs r�test_search_dot_unicode�ReTests.test_search_dot_unicode�sw������	�	�(�I�6�7�����	�	�(�J�7�8�����	�	�(�L�9�:�����	�	�(�,<�=�>�����	�	�(�,F�G�Hrc�H�[R"S5nURU[R5 [R"U5nURU[R5 UR	X!5 UR[[RS5 g)N�random patternr)rHrJ�assertIsInstance�Patternr8rGr�)rrF�same_patterns   r�test_compile�ReTests.test_compile�si���*�*�-�.�����g�r�z�z�2��z�z�'�*�����l�B�J�J�7��
�
�l�,����)�R�Z�Z��3rrs)�size�memusec���SU-n[R"SU5nURU5 URUR	5U5 URUR5U5 g)Nr�r3)rHrz�assertIsNotNonerAr�r�)rrtrkr�s    r�test_large_search�ReTests.test_large_search�sW��
�$�J���I�I�c�1������Q���������D�)��������$�'r�c��SU-n[R"SSU5up4URX25 URXAS-5 g)Nr�r�rs)rHr�rA)rrtrkr��ns     r�test_large_subn�ReTests.test_large_subn�sA��
�$�J���w�w�r�2�q�!������������1�H�%rc��UR[R"SS5S/5 UR[R"SS5R	5S5 g)Nz	(?i)(a)\1uaa Ār�z
(?s).{1,3}uĀĀr�)rArHrjr}r{rZs r�test_bug_16688�ReTests.test_bug_16688�sE��	
������L�+�>���F�������-��@�E�E�G��Prc���SS-nUR[R"SU5R5S5 UR[R"SU5R5S5 UR[R"SU5R5S5 UR[R"SU5R5S5 UR[R"S	U5R5S5 UR[R"S
U5R5S5 UR	[
[RSSS
--5 UR	[
[RSSS
--5 UR	[
[RSSS
--5 UR	[
[RSSS-SS
-4-5 g)Nr<順z.{65535})rr~z	.{,65535}z
.{65535,}?z.{65536})rr�z	.{,65536}z
.{65536,}?�.{%d}r�r2�.{,%d}�.{%d,}?z.{%d,%d}�)rArHr}r{rG�
OverflowErrorrJ)rrVs  r�test_repeat_minmax_overflow�#ReTests.test_repeat_minmax_overflow�sh���v���������+�v�6�;�;�=�z�J�������,��7�<�<�>�
�K�������-��8�=�=�?��L�������+�v�6�;�;�=�z�J�������,��7�<�<�>�
�K�������-��8�=�=�?��L����-����X��3��5F�G����-����Y��C��5G�H����-����Z�!�S�&�5H�I����-����[�A�s�F�A�s�F�CS�5S�Trc���SS-nSnSnUR[R"US-U5R5S5 UR[R"US-U5R5S5 [R"US-5 [R"US	-5 [R"US
-5 [R"US-5 [R"US	-5 [R"US
-5 SnUR[RU[RUS-5 UR[RU[RUS-5 g)
Nr<i�%&z(?<=((.{%d}){%d}){%d})z(?<!((.{%d}){%d}){%d}))r2r2r2)� r�rq)�@rsrs)rsr�rs)rsrsr�zlooks too much behind)r�r�r�)rArHrzr{rJr�r()rrV�p1�p2rNs     r�test_look_behind_overflow�!ReTests.test_look_behind_overflow	s"���y���
&��
&��	
������2�(:�#:�F�C�H�H�J�'�	)�������2�(:�#:�F�C�H�H�J��	!�	�
�
�2�
�%�&�
�
�
�2�
�%�&�
�
�
�2�
�%�&�
�
�
�2�
�%�&�
�
�
�2�
�%�&�
�
�
�2�
�%�&�(�����r�x�x�����R�BW�=W�X����r�x�x�����R�BW�=W�Xrc�*�URSSS5 g)Nz
(?P=<foo>)z#bad character in group name '<foo>'rr rZs r�$test_backref_group_name_in_exception�,ReTests.test_backref_group_name_in_exception s�����|�D�a�	Irc�*�URSSS5 g)Nz
(?P<?foo>)z"bad character in group name '?foo'rr rZs r�test_group_name_in_exception�$ReTests.test_group_name_in_exception%s�����|�C�Q�	Hrc�n�SH�nSH�nSU-U-S-nUR[R"U[R5R	S5S/US9 UR5nUR[R"U[R5R	S5S/US9 M� M� g)N)r�r�r�z{1}r�r��yzr�)r>r�)rArHrJrrjrN)rr�r�rFs    r�test_issue17998�ReTests.test_issue17998*s���(�D�����*�s�*�T�1��� � ����G�R�T�T�!:�!B�!B�5�!I�"'��g�!�7�!�.�.�*��� � ����G�R�T�T�!:�!B�!B�6�!J�"(��w�!�8��)rc�|�S[S54Hfn[R"SU5nS[U5R<S[U5R
<S3nUR
[U5U5 Mh S[S5[S5[S54Hfn[R"SU5nS[U5R<S[U5R
<S3nUR
[U5U5 Mh [[R"S	S
55upES[U5R<S[U5R
<S3nUR
[U5U5 S[U5R<S[U5R
<S3nUR
[U5U5 g)
Nz
[abracadabra]z(.+)(.*?)\1z<(z\.)?z- object; span=\(1, 12\), match='abracadabra'>s
[abracadabra]s(.+)(.*?)\1z. object; span=\(1, 12\), match=b'abracadabra'>z	(aa)|(bb)zaa bbz# object; span=\(0, 2\), match='aa'>z# object; span=\(3, 5\), match='bb'>)
rrHrzr9r#r$�assertRegex�reprr+r`r�r6ra)rrVr�rFr�r�s      r�test_match_repr�ReTests.test_match_repr4sV��%�q��'9�9�F��	�	�.�&�1�A��Q��"�"�D��G�$8�$8��G�
���T�!�W�g�.�:�(��+;�)<� �!1�2�!�"2�3�5�F��	�	�/�6�2�A��Q��"�"�D��G�$8�$8��G�
���T�!�W�g�.�5��R�[�[��g�>�?�
��v���L�#�#�T�&�\�%>�%>�
��	
����e��g�.���L�#�#�T�&�\�%>�%>�
��	
����f��w�/rc��UR[R"SS5/SQ5 UR[R"SS5/SQ5 UR[R"SS5/SQ5 UR[R"SS5/S	Q5 UR[R"SS
S5S5 UR[R"SS
S5S5 UR[R"S
SS5S5 UR[R"SS5/SQ5 UR[R"SS5/SQ5 UR[R
"SS5Vs/sHoR
5PM sn/SQ5 UR[R
"SS5Vs/sHoR
5PM sn/SQ5 gs snfs snf)NrHza::bc)r�r�r?rcr�z\b|:+)r�r�r�r�rcr�z(?<!\w)(?=\w)|:+)r�r�r�rcz(?<=\w)(?!\w)|:+)r�r�rcr�r�z	-a-::-bc-z-a---bc-z(\b|:+)z[\1]z[]a[][::][]bc[])r�r�r?r�r�z\b|\w+)rqr�rr�rtrt�rr)rqr�r�r�)rtrr�)rArHr�rUrjrar{�rr�s  r�test_zerowidth�ReTests.test_zerowidthNsy��������%��1�3L�M�������(�G�4�6Q�R�������"5�w�?�AT�U�������"5�w�?�AT�U��������s�G�4�k�B��������#�w�7��D�������
�G�W�=�?P�Q�������H�g�6�8N�O�������I�w�7�4�	6�	
���B�K�K��'�,J�K�,J�q�&�&�(�,J�K�A�	C����B�K�K�	�7�,K�L�,K�q�&�&�(�,K�L�I�	K��L��Ls�G>�Hc�L�SH�nSH�n[R"SU<SU<35nURS5nURUR	S5S5 URUR	S5S	5 URUR	S
5S5 M� M� g)N)�{0,}r�r�z{1,187})r�r�r�z^((x|y)r��xyyzyr�xyyrsr�r�r=)rHrJr}rAr�)rr�r�r�r�s     r�
test_bug_2537�ReTests.test_bug_2537bs��5�H�.���J�J��8�D�E���G�G�G�$��� � ������U�3�� � ������R�0�� � ������S�1�/�6rc�L�[R"S5nURURSSSS9R	5S5 URURSSSS9R	5S5 URUR
SSSS9R	5S5 URURSSSS9S	/5 URURSS
S9/SQ5 URURSSSS9R
5R	5S5 g)
Nz(ab)�abracadabrar�r�)rVrMr�)r�r�r�rtr�rs)rVr�)r�r��	racadabra)
rHrJrAr}r{r�rzrjr�r�rs  r�test_keyword_parameters�ReTests.test_keyword_parametersls���j�j��!������I�I�]��"�I�=�B�B�D�f�	N�����M�M��A�a�M�@�E�E�G��	Q�����J�J�m��2�J�>�C�C�E�v�	O�����K�K�}�!�B�K�?�$��	I�����I�I�]�Q�I�7�#�	%�	
����K�K�}�!�B�K�?�F�F�H�M�M�O��	rc��UR[R"SS[R5R	5S5 g)Nz[a-c]+r	rx)rArHr�r�r{rZs r�test_bug_20998�ReTests.test_bug_20998~s.��	
������h��r�t�t�<�A�A�C�V�Lrz-musl libc issue on Emscripten/WASI, bpo-46390�sunosz&test doesn't work on Solaris, gh-91214c�:�[R"[R5nUR[R[RU5 SH)n[R"[RU5 M+ [R"5 UR5 UR5 [R"5 UR5 UR5 g![Ra URSU-5 M�f=f)N��en_US.iso88591�
en_US.utf8�test needs %s locale)
rD�	setlocale�LC_CTYPE�
addCleanup�Error�skipTestrHr��check_en_US_iso88591�check_en_US_utf8)r�	oldlocale�locs   r�test_locale_caching�ReTests.test_locale_caching�s����$�$�V�_�_�5�	�����(�(�&�/�/�9�E�1�C�
<�� � ����#�6�2�	���
��!�!�#�����
���
������!�!�#���<�<�
<��
�
�4�s�:�;�
<�s�%C.�.(D�Dc���[R"[RS5 UR[R
"SS[R[R-55 UR[R
"SS[R[R-55 UR[R
"SS[R[R-55 UR[R
"SS55 UR[R
"SS55 UR[R
"SS55 g)Nr���������(?Li)���(?Li)��(?Li)�)rDr�r�r�rHr}ror�rZs rr��ReTests.check_en_US_iso88591�s���������*:�;��������k�2�4�4����9�E�F��������'�2�4�4����9�=�>��������'�2�4�4����9�=�>�������!1�;�?�@��������w�7�8��������w�7�8rc���[R"[RS5 UR[R
"SS[R[R-55 UR[R
"SS[R[R-55 UR[R
"SS[R[R-55 UR[R
"SS55 UR[R
"SS55 UR[R
"SS55 g)Nr�r�r�r�r�r�r�)	rDr�r�r�rHr}ror�r|rZs rr��ReTests.check_en_US_utf8�s���������,�7��������k�2�4�4����9�E�F����"�(�(�7�G�R�T�T�"�$�$�Y�?�@����"�(�(�7�G�R�T�T�"�$�$�Y�?�@�������!1�;�?�@����"�(�(�<��9�:����"�(�(�<��9�:rc���[R"[R5nUR[R[RU5 SH)n[R"[RU5 M+ [R"[RS5 [R"S[R[R-5n[R"S[R[R-5n[R"S[R[R-5n[R"S[R[R-5nX4U4HcnURURS55 URURS55 URURS	55 Me URURS
55 URURS55 URURS	55 [R"[RS5 X4U4HcnURURS55 URURS55 URURS	55 Me URURS
55 URURS55 URURS	55 g![Ra URSU-5 GMf=f)Nr�r�r�r�s[a�][a�]s
[az�][az�]s[^�][^�]s��s��s��r�)
rDr�r�r�r�r�rHrJror�r�r}r|)rr�r�r�r��p3�p4r�s        r�test_locale_compiled�ReTests.test_locale_compiled�sG���$�$�V�_�_�5�	�����(�(�&�/�/�9�E�1�C�
<�� � ����#�6�2�	������*:�;�
�Z�Z��R�T�T�"�$�$�Y�
/��
�Z�Z�)�2�4�4����9�
5��
�Z�Z�+�R�T�T�"�$�$�Y�
7��
�Z�Z�)�2�4�4����9�
5�����A��O�O�A�G�G�K�0�1��O�O�A�G�G�K�0�1��O�O�A�G�G�K�0�1��	
���"�(�(�;�/�0����"�(�(�;�/�0����"�(�(�;�/�0�������,�7����A��O�O�A�G�G�K�0�1����a�g�g�k�2�3����a�g�g�k�2�3��	
�������-�.����"�(�(�;�/�0����"�(�(�;�/�0��1�<�<�
<��
�
�4�s�:�;�;�
<�s�%L<�<(M)�(M)c�.�UR[R5n[R"S5 SSS5 WRnURUR[5 URURS5 URURS5 URURS5 URURS5 URUR[U55 URS[U55 URSUR5 UR[R5n[R"S5 SSS5 URnURUR[5 URURS5 URURS5 UR[R5n[R"S[R 5 SSS5 URnURURS5 URURS	5 URURS
5 URUR[U55 URS[U55 URS[U55 g!,(df   GN�=f!,(df   GN�=f!,(df   N�=f)
Nu(€))rtrsrz at position 3s(�))zq
                (
                    abc
                )
                )
                (
                �Mr�z at position 77z(line 5, column 17))rGrHrIrJrLrorFr�rArM�lineno�colno�assertInr>�assertNotInr3rq)rrOrPs   r�
test_error�ReTests.test_error�s��
�
�
�r���
/�2��J�J�{�#�0��l�l�����c�k�k�3�/�������k�2�������!�$�������Q�'�������A�&��
�
�c�g�g�s�3�x�(��
�
�&��C��1����)�3�7�7�3�
�
�
�r���
/�2��J�J�z�"�0��l�l�����c�k�k�5�1�������j�1�������!�$�
�
�
�r���
/�2��J�J���Z�Z�

!�0��l�l��������"�%�������Q�'�������B�'��
�
�c�g�g�s�3�x�(��
�
�'��S��2��
�
�+�S��X�6�C0�
/��0�
/��0�
/�s#�K"�K4�8&L�"
K1�4
L�
Lc��URSSS5 URSSS5 URSSS5 URSS	S
5 URSSS
5 URSSS
5 URSSS
5 URSSS5 URSS	S
5 URSSS
5 URSS	S5 g)NrUr�rz((a|b)z(a|b))zunbalanced parenthesisrz(?Pzunexpected end of patternrtz(?z)zunknown extension ?zrsz(?iz)rPrQrRz(?#abczmissing ), unterminated commentz(?<z(?<>)zunknown extension ?<>z(?r�r rZs r�test_misc_errors�ReTests.test_misc_errors�s������t�%I�1�M����y�*N�PQ�R����y�*B�A�F����v�'B�A�F����w�(>��B����x���;����v�':�A�>����y�*K�Q�O����v�'B�A�F����x�)@�!�D����u�&A�1�Erc��URS[[R55 URS[[R55 g)Nr�r�)r�r�rHr�rrZs r�	test_enum�ReTests.test_enum	s0��	
�
�
�g�s�2�4�4�y�)��
�
�h��B�D�D�	�*rc���[R"S[R5nURX5 UR	X:g5 [R
"5 [R"S[R5nUR[
U5[
U55 URX!5 [R
"5 [R"S[R5nURX15 [R
"5 [R"S5nURXA5 UR[5 X: SSS5 g!,(df   g=f)Nr��XYZ)
rHrJrnrA�assertFalser��hash�assertNotEqualrGr�)r�pattern1�pattern2�pattern3�pattern4s     r�test_pattern_compare�ReTests.test_pattern_compare
	s����:�:�e�R�]�]�3��	
����,�����-�.�	���
��:�:�e�R�]�]�3������h���h��8�����,�	���
��:�:�e�R�]�]�3��	
���H�/�	���
��:�:�e�$�����H�/��
�
�y�
)���*�
)�
)�s�E#�#
E1c��[R"S5n[R"5 [R"S5nUR[	U5[	U55 URX!5 [R"5 [R"S5n[
R"5 [
R"S[5 URX15 SSS5 g!,(df   g=f)Nr�r�r()
rHrJr�rAr�r)r*r+r,r�)rr�r�r�s    r�test_pattern_compare_bytes�"ReTests.test_pattern_compare_bytes'	s����:�:�f�%��	���
��:�:�f�%������h���h��8�����,�	���
��:�:�e�$��
�
$�
$�
&��!�!�'�<�8�����3�'�
&�
&�s�7-C-�-
C;c��[S5n[R"SU5n[R"SU5nURUR	5S5 URUR	5S5 SUSS&URUR	5S5 URUR	5S5 g)Nsabcdefghs[a-h]+s[e-h]+sefghr�r)r`rHrzrAr�)rrkr��m2s    r�test_bug_29444�ReTests.test_bug_294448	s����k�"���I�I�i��#��
�Y�Y�y�!�
$���������K�0��������W�-���!���������F�+��������S�)rc��SnSnUR[R"X!5R5S5 SnSnUR[R"X!5SS/5 UR[R
"X!5Vs/sHo3R5PM snSS/5 S	nS
nUR[R"X!5SS/5 UR[R
"X!5Vs/sHo3R
5PM snS
SS.SSS./5 SnUR[R
"X!5Vs/sHo3R
5PM snS
SS.SSS./5 SnUR[R
"X!5Vs/sHo3R
5PM snS
SS.SSS.SSS./5 gs snfs snfs snfs snf)Nza	xz\b(?=(\t)|(x))x)Nr<r�z(?=(.)(.)?)r�)rdr�r�z1(?=<(?P<tag>\w+)/?>(?:(?P<text>.+?)</(?P=tag)>)?)z<test><foo2/></test>)r��<foo2/>)�foo2r�r�r�)�tagr=r�z<test>Hello</test><foo/>�Hellor�z<test>Hello</test><foo/><foo/>)rArHrzrirjrar��rrkr�r�s    r�test_bug_34294�ReTests.test_bug_34294B	s���
����������1��/�/�1�;�?�
����������A�)�$�i�0�	2����b�k�k�!�.?�@�.?��(�(�*�.?�@�$�k�2�	4�
A��"��������A�)�-�|�<�	>�������Q�1B�C�1B�A�+�+�-�1B�C�"(�)�<�"(�$�7�9�	:�
'��������Q�1B�C�1B�A�+�+�-�1B�C�"(�'�:�"'��6�8�	9�
-��������Q�1B�C�1B�A�+�+�-�1B�C�"(�'�:�"'��6�"'��6�8�	9��!A��D��D��Ds�G�:G	�G�Gc��UR[R"SS5R5S5 UR[R"SS5R5S5 UR[R"SS5R5S5 UR[R"SS5R5S5 g)Nz	(ab|a)*?br�r`z	(ab|a)+?bz
(ab|a){0,2}?bz	(.b|a)*?br�rZs r�test_MARK_PUSH_macro_bug� ReTests.test_MARK_PUSH_macro_bugd	s���	
������,��5�<�<�>��G�������,��5�<�<�>��G�������"2�D�9�@�@�B�F�K�������,��5�<�<�>��Grc�j�SnSnUR[R"X!5R5S5 SnSn[R"X!5nURUR	5S5 URUR	S5S5 URUR5S	5 g)
N�axxzbczz(?:(?:a|bc)*?(xx)??z)*�r��xtcxyzxcz((x|yz)+?(t)??c)*)rr�r�)�r�)�xyzxcr<�t�rArHr}rir{r�s    r�test_MIN_UNTIL_mark_bug�ReTests.test_MIN_UNTIL_mark_bugl	s���
��%��������!��.�.�0�'�:�
�� ���H�H�Q�N���������6�*���������F�+��������%8�9rc�Z�SnSn[R"X!5nURUR5S5 URURS5S5 URUR	5S5 SnSn[R"X!5nURUR5S	5 URURS5S
5 URUR	5S5 UR[R"SS5R	5S
5 g)N�aabaabz(?:[^b]*a(?=(b)|(a))ab)*)rrr�)rrr��ababz(?:[^b]*(?=(b)|(a))ab)*r�)r�rtz(ab?)*?br�r`�rHr}rAr{rir�s    r�test_REPEAT_ONE_mark_bug� ReTests.test_REPEAT_ONE_mark_bug{	s���
��'���H�H�Q�N���������6�*���������F�+��������[�1�
��&���H�H�Q�N���������6�*���������F�+��������[�1�������+�t�4�;�;�=�v�Frc�j�SnSn[R"X!5nURUR5S5 URURS5S5 URUR	5S5 SnSnUR[R"X!5R	5S	5 g)
Nr
z(?:.*?(?=(a)|(b))b)*r�r��rtr)Nrd�axxzazz(?:a*?(xx)??z)*rrr�s    r�test_MIN_REPEAT_ONE_mark_bug�$ReTests.test_MIN_REPEAT_ONE_mark_bug�	s���
��#���H�H�Q�N���������6�*���������F�+��������[�1�����������!��.�.�0�'�:rc��UR[R"SS5R5S5 [R"SS5nURUR	5S5 URUR	S5S5 URUR	S	5S5 URUR5S
5 g)Nz	(?!(..)c)r�rz((?!(ab)c)(.))*r
r�rsrrt)rdNrdrr�s  r�test_ASSERT_NOT_mark_bug� ReTests.test_ASSERT_NOT_mark_bug�	s���	
������,��5�<�<�>��H�
�H�H�'��0���������6�*���������F�+���������F�+��������%5�6rc�(�UR[S5 [R"SS5 SSS5 UR[S5 [R"S[5 SSS5 g!,(df   NI=f!,(df   g=f)Nz	got 'int'rorz
got 'type')r�r�rHrzr9rZs r�test_bug_40736�ReTests.test_bug_40736�	s[��
�
#�
#�I�{�
;��I�I�d�A��<�
�
#�
#�I�|�
<��I�I�d�D�!�=�
<�<�
;��
<�
<�s�A2�
B�2
B�
B�cpuc
�2�SS-n[5nSH�nUR[R"X155 UR	[R
"X15U/5 UR	[R"X15/5 UR	[[R"X155/5 UR	[R"USU5U5 M� SSS5 URWRS5 g!,(df   N+=f)Nr<i���)z\Ayz^yr�g�������?)r
r|rHrzrAr�rjr6rarU�
assertLess�seconds)rrk�	stopwatchr�s    r�test_search_anchor_at_beginning�'ReTests.test_search_anchor_at_beginning�	s�����I��
�^�y�"���!�!�"�)�)�A�/�2�� � ����!��!��5�� � ����A�!1�2�6�� � ��b�k�k�!�&7�!8�"�=�� � �����2�q�!1�1�5�#��	
���	�)�)�3�/��^�s�CD�
Dc�l	�UR[R"SS55 UR[R"SS5R	S5S5 UR[R"SS5R	S5S5 UR[R"SS5R	S5S5 UR[R"S	S
55 UR[R"SS5R5S
5 UR[R"SS5R5S
5 UR[R"SS5R5S5 UR[R"SS5R5S5 UR[R"SS5R5S5 UR[R"SS5R5S5 UR[R"SS5R5S5 UR[R"SS5R5S5 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"S S5R	S!5S"5 UR[R"S#S5R	S!5S"5 UR[R"S$S5R	S!5S"5 UR[R"S%S55 UR[R"S&S55 UR[R"S'S55 UR[R"S(S55 UR[R"S)S55 UR[R"S*S55 UR[R"S*S+55 g,)-z�Test 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*+e�eeeeze++a�eeearze?+a�eaze{2,4}+az(.)++.�eez(ae)*+a�aea)�aez
([ae][ae])?+az(e?){2,4}+a)r�z()*+ar�zx*+rprqzx++rr�a*+rvrwrx�a++z
^(\w){1}+$r�z^(\w){1,2}+$z
^(\w){3}+$rsr�z^(\w){1,3}+$z^(\w){1,4}+$z^x{1}+$z	^x{1,2}+$z^x{3}+$z	^x{1,3}+$z	^x{1,4}+$z^x{}+$r�N)	r|rHr}rAr�rirzr{r�rZs r�test_possessive_quantifiers�#ReTests.test_possessive_quantifiers�	s2��	
���"�(�(�6�6�2�3�������&�&�1�7�7��:�F�C�������&�$�/�5�5�a�8�$�?�������*�f�5�;�;�A�>��G����"�(�(�8�T�2�3�������)�U�3�:�:�<�g�F�������/�5�9�@�@�B� �	"�������-��8�?�?�A��	 �������'�3�/�6�6�8�%�@�������5�%�0�5�5�7��@�������5�%�0�5�5�7��@�������%��/�4�4�6��?�������%��0�5�5�7��@����"�(�(�5�%�0�1����"�(�(�=�%�8�9����"�(�(�?�E�:�;�������-��7�=�=�a�@�#�F�������/�5�9�?�?��B�C�H�������/�5�9�?�?��B�C�H����"�(�(�9�e�4�5����"�(�(�;��6�7��������E�2�3��������e�4�5��������e�4�5����"�(�(�8�U�3�4��������5�1�2rc�$�UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"S	S55 UR[R"S
S55 UR[R"SS55 UR[R"SS55 UR[R"S
S55 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"S
S55 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"SS55 g)Nr+r�r*�a?+�a{1,3}+r�za++bza*+bza?+bza{1,3}+b�(?:ab)++�(?:ab)*+�(?:ab)?+�(?:ab){1,3}+r�z	(?:ab)++cz	(?:ab)*+cz	(?:ab)?+cz
(?:ab){1,3}+c�r�rHr�r|rZs r�%test_fullmatch_possessive_quantifiers�-ReTests.test_fullmatch_possessive_quantifiers�	s;��������V�S�1�2�������V�S�1�2�������V�S�1�2�������Z��5�6����"�,�,�v�t�4�5����"�,�,�v�t�4�5����"�,�,�v�t�4�5����"�,�,�z�4�8�9�������W�d�3�4�������W�d�3�4�������W�d�3�4�������[�$�7�8�������[�$�7�8�������[�$�7�8�������[�$�7�8�������_�d�;�<����"�,�,�{�E�:�;����"�,�,�{�E�:�;����"�,�,�{�E�:�;����"�,�,���>�?�������\�5�9�:�������\�5�9�:�������\�5�9�:�������%5�u�=�>rc��UR[R"SS5S/5 UR[R"SS5/SQ5 UR[R"SS5/SQ5 UR[R"SS5S/5 UR[R"S	S
5S/5 UR[R"SS
5/S
Q5 UR[R"SS
5/SQ5 UR[R"SS
5S/5 g)Nr+�aabr�r*�r�r�r�r/�r�r�r�r�r0r1�ababcr
r2�r
r�r�r3�r�r�r�r�r4r[rZs r�#test_findall_possessive_quantifiers�+ReTests.test_findall_possessive_quantifiers
s���������F�E�2�T�F�;�������F�E�2�N�C�������F�E�2�4F�G�������J��6���?�������K��9�F�8�D�������K��9�;K�L�������K��9�;O�P�������O�W�=��x�Hrc�,�[R"S5nURURS55 UR	URS55 UR[R"SS55 UR	[R"SS55 UR	[R"SS55 UR[R"SS55 UR[R"S	S55 g
)z�Test 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)cr��abccz(?>.*).z(?>x)++rvz(?>x++)z(?>x)++xz(?>x++)xN)rHrJr|r}r�)rr�s  r�test_atomic_grouping�ReTests.test_atomic_grouping
s���
�:�:�m�,�����(�.�.��/�0�������v�.�/����"�(�(�:�u�5�6��������U�3�4��������U�3�4����"�(�(�;��6�7����"�(�(�;��6�7rc�$�UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"S	S55 UR[R"S
S55 UR[R"SS55 UR[R"SS55 UR[R"S
S55 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"S
S55 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"SS55 UR[R"SS55 g)N�(?>a+)r��(?>a*)�(?>a?)�
(?>a{1,3})r�z(?>a+)bz(?>a*)bz(?>a?)bz(?>a{1,3})b�(?>(?:ab)+)�(?>(?:ab)*)�(?>(?:ab)?)�(?>(?:ab){1,3})r�z(?>(?:ab)+)cz(?>(?:ab)*)cz(?>(?:ab)?)cz(?>(?:ab){1,3})cr5rZs r�test_fullmatch_atomic_grouping�&ReTests.test_fullmatch_atomic_grouping
s=��������Y��4�5�������Y��4�5�������Y��4�5�������]�C�8�9����"�,�,�y�$�7�8����"�,�,�y�$�7�8����"�,�,�y�$�7�8����"�,�,�}�d�;�<�������Z��6�7�������Z��6�7�������Z��6�7�������^�T�:�;�������^�T�:�;�������^�T�:�;�������^�T�:�;�������%7��>�?����"�,�,�~�u�=�>����"�,�,�~�u�=�>����"�,�,�~�u�=�>����"�,�,�'9�5�A�B�������_�e�<�=�������_�e�<�=�������_�e�<�=�������%8�%�@�Arc��UR[R"SS5S/5 UR[R"SS5/SQ5 UR[R"SS5/SQ5 UR[R"SS5S/5 UR[R"S	S
5S/5 UR[R"SS
5/S
Q5 UR[R"SS
5/SQ5 UR[R"SS
5S/5 g)NrFr9r�rGr:rHr;rIrJr<r
rKr=rLr>rMr[rZs r�test_findall_atomic_grouping�$ReTests.test_findall_atomic_grouping5
s���������I�u�5��v�>�������I�u�5�~�F�������I�u�5�7I�J�������M�5�9�D�6�B�������N�G�<�v�h�G�������N�G�<�>N�O�������N�G�<�>R�S�������$6��@�6�(�Krc��UR[R"SS55 UR[R"SS55 g)Nz(?s:(?>.*?\.).*)\Zza.txtz!(?s:(?=(?P<g0>.*?\.))(?P=g0).*)\Z)r�rHr�rZs r�test_bug_gh91616�ReTests.test_bug_gh91616@
s2��������%:�G�D�E�������%I�7�S�Trc��UR[R"SS5R5S5 UR[R"SS5R5S5 UR[R"SS5R5S5 UR[R"SS5R5S5 UR[R"SS5R5S	5 UR[R"S
S5R5S	5 UR[R"SS5R5S5 UR[R"SS5R5S5 UR[R"S
S5R5S5 UR[R"SS5R5S5 UR[R"SS5R5S5 UR[R"SS5R5S5 UR[R"SS5R5S	5 UR[R"SS5R5S	5 UR[R"SS5R5S5 UR[R"SS5R5S5 g)Nz(?>(?:.(?!D))+)�ABCDEr�z(?:.(?!D))++z(?>(?:.(?!D))*)z(?:.(?!D))*+z(?>(?:.(?!D))?)�CDErqz(?:.(?!D))?+z(?>(?:.(?!D)){1,3})z(?:.(?!D)){1,3}+z
(?>(?:ab?c)+)�acaz
(?:ab?c)++z
(?>(?:ab?c)*)z
(?:ab?c)*+z
(?>(?:ab?c)?)r�z
(?:ab?c)?+z(?>(?:ab?c){1,3})z(?:ab?c){1,3}+r�rZs r�test_bug_gh100061�ReTests.test_bug_gh100061D
sI��������"3�W�=�B�B�D�f�M�������.�'�:�?�?�A�6�J�������"3�W�=�B�B�D�f�M�������.�'�:�?�?�A�6�J�������"3�U�;�@�@�B�F�K�������.�%�8�=�=�?��H�������"7��A�F�F�H�&�Q�������"4�g�>�C�C�E�v�N�������/�5�9�>�>�@�&�I�������,��6�;�;�=�v�F�������/�5�9�>�>�@�&�I�������,��6�;�;�=�v�F�������/�3�7�<�<�>��G�������,��4�9�9�;�V�D�������"5�u�=�B�B�D�f�M�������"2�E�:�?�?�A�6�Jrc�B�UR[R"SS5R5S5 UR[R"SS5R5S5 UR[R"SS5R5S5 g)Nz((x)|y|z)*+r�)r�r<z
((x)|y|z){3}+z((x)|y|z){3,}+r�rZs r�test_bug_gh101955�ReTests.test_bug_gh101955X
so��������-��7�>�>�@�*�M�������/�5�9�@�@�B�J�O�������"2�E�:�A�A�C�Z�Prztest requires multiprocessingc���[R"S5nSn[R"URSU4S9nUR5 UR
[5 URUR5S5 UR5(a!UR5 UR
5 gg!UR5(a!UR5 UR
5 ff=f)Nz�(?<=[({}])(((//[^\n]*)?[\n])([\000-\040])*)*((/[^/\[\n]*(([^\n]|(\[\n]*(]*)*\]))[^/\[]*)*/))((((//[^\n]*)?[\n])([\000-\040]|(/\*[^*]*\*+([^/*]\*+)*/))*)+(?=[^\000-\040);\]}]))zja(function() {
            ///////////////////////////////////////////////////////////////////
        });r�)�target�argszpattern.sub() timed out)rHrJ�multiprocessing�ProcessrUr�rrr��is_alive�	terminate)rrF�input_jsr�s    r�test_regression_gh94675�ReTests.test_regression_gh94675^
s����*�*�H�I��
��
�#�#�7�;�;�b�(�^�L��	���	�	���}��	����Q�Z�Z�\�+D�E��z�z�|�|����
�������q�z�z�|�|����
������s�  B7�78C/c�X�UR[R"SS5SS5 g)Nz12(?!)|3�123r�3)rArHrzrZs r�	test_fail�ReTests.test_failr
s"��������;��6�q�9�3�?rc�B�SnSH�nURUS9 UR[R"X!5[	U55 UR[R
"SU-S-U5R
5U5 SSS5 M� g!,(df   M�=f)N�1x
)z[\s\S]z[\d\D]z[\w\W]z[\S\s]z\s|\SrEr�z)+)rKrArHrjr6r�r��rrkr�s   r�test_character_set_any�ReTests.test_character_set_anyu
s{��
��E�A����a��(�� � ����A�!1�4��7�;�� � ����e�a�i�$�.>��!B�!H�!H�!J�A�N�)�(�F�(�(�s�A+B�
B	c�
�SnSHinURUS9 UR[R"X!55 UR[R"SU-U55 SSS5 Mk g!,(df   M}=f)Nro)z[^\s\S]z[^\d\D]z[^\w\W]z[^\S\s]rEz(?s:.))rKr|rHrzrps   r�test_character_set_none�ReTests.test_character_set_none~
sd��
��?�A����a��(��!�!�"�)�)�A�/�2��!�!�"�)�)�H�q�L�!�"<�=�)�(�@�(�(�s�AA3�3
B	c�P�"SS[5n[R"U5n[U5H:nUR	Xd5 URU5 UUR	SS5 s $ g!Ua Of=fUR	SS5 M`!UR	SS5 f=f)Nc��\rSrSrSrg)�*ReTests.check_interrupt.<locals>.Interrupti�
r Nrr rr�	Interruptrx�
s��rryrx)�	ExceptionrHrJr�_fail_afterr})rrFrV�maxcountryr�r|s       r�check_interrupt�ReTests.check_interrupt�
s���	�	�	��J�J�w����x��A�
(��
�
�a�+��������
�
�b�$�'�!��
�
��
����
�
�b�$�'���
�
�b�$�'�s#�#A0�0A9�6B�8A9�9B�B%r{zrequires debug buildc���URSSS5 URSSS5 URSSS5 URSSS5 URSSS5 URSSS5 g)	Nz(.)*:zabc:�dz	([^:])*?:z	([^:])*+:z	(.){2,4}:z
([^:]){2,4}?:z
([^:]){2,4}+:)r}rZs r�test_memory_leaks�ReTests.test_memory_leaks�
sp�����X�v�s�3����\�6�3�7����\�6�3�7����\�6�3�7����-�v�s�;����-�v�s�;rr r)�r"r#r$r%rBrQrWr[rfrlr~r�r�r�r�r�r�r�r�r�r�rrr!r*r5r:rKrOrVr\rjr{r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr%r)r/r7r:rHr�r?rV�
ascii_letters�digitsrErGrOrTrYrfrkrrrvr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrrrr�ignore_warningsr�r%r0r5r:rArKrSr]r`rhrkrrrrrxr}r�r�r�r�r�r�r�r�r�r�r��unittest�skipIfr	r
�sys�platform�
startswithr�r�r�r�r�r�r�r�r�r�r�r�r	rrrrrr!r,r6r?rCrNrQrTrZr]rbrgrlrqrtr}�
skipUnless�hasattrrpr�r&r rrr0r0%s��� �/�/�+�	�E�
1�H�""�+@�Z%�
	'�A�,�. �`/�$/�((�@�"M�H	H�#H�J0�*3J�j.�09�4;�N�BB�**-�XR�<@�<?�>3�
M�O�?�
�"H�H3�,N�@M�&&N�PBF�HB�)�#�B�8R�4&=�PEA�NCF�J?�H�H8�TA�04�$��L�L�)��(�(�6�=�=�8�;L�L�M�
B�B�D�&� �+�+�<�K�@L�8F�*H�$	G�F�
?�
O�3�J�?�
F�:�/�(*�&�&,�,�'�24�(�
,�5�4�*�$�$�.@�A�D�B�D�:M�z9�9�C�:+A�Z;�B8�>�G�$I�4��S��#�(�$�(��S��(�&�)�&�Q�
U�Y�.I�
H�
8�0�4K�(2��$M�
�_�_�� ��7���_�_�S�\�\�,�,�W�5�=�?�$�?�	�$�$9�;��_�_�� ��7���_�_�S�\�\�,�,�W�5�=�?�1�?�	�1�@"7�HF�+� �:4�"*� 9�DH�
:�G�(;�
7�"��u��0��0�%3�N?�6	I�8�B�6	L�U�K�(Q��_�_�_��,�.M�N��O��&@�O�>�(��������]�;�=S�T�<�U�<rr0c���[5n[R"U[R5 SSS5 UR	5$!,(df   WR	5$=fr)rrHrJ�DEBUG�getvalue)r�outs  r�
get_debug_outr��
sB��	�	�c�
�
�
�3����!�
��<�<�>��
�	��<�<�>��s�&A	�	
A&c�0�\rSrSrSrSrSrSrSrSr	g)�
DebugTestsi�
Nc�x�SnSnUR[U5U5 UR[U5U5 g)Nz(\.)(?:[ch]|py)(?(1)$|: )a�SUBPATTERN 1 0 0
  LITERAL 46
BRANCH
  IN
    LITERAL 99
    LITERAL 104
OR
  LITERAL 112
  LITERAL 121
GROUPREF_EXISTS 1
  AT AT_END
ELSE
  LITERAL 58
  LITERAL 32

 0. INFO 8 0b1 2 5 (to 9)
      prefix_skip 0
      prefix [0x2e] ('.')
      overlap [0]
 9: MARK 0
11. LITERAL 0x2e ('.')
13. MARK 1
15. BRANCH 10 (to 26)
17.   IN 6 (to 24)
19.     LITERAL 0x63 ('c')
21.     LITERAL 0x68 ('h')
23.     FAILURE
24:   JUMP 9 (to 34)
26: branch 7 (to 33)
27.   LITERAL 0x70 ('p')
29.   LITERAL 0x79 ('y')
31.   JUMP 2 (to 34)
33: FAILURE
34: GROUPREF_EXISTS 0 6 (to 41)
37. AT END
39. JUMP 5 (to 45)
41: LITERAL 0x3a (':')
43. LITERAL 0x20 (' ')
45: SUCCESS
�rAr�)rr�dumps   r�test_debug_flag�DebugTests.test_debug_flag�
s=��*��(��R	
����s�+�T�2�	
����s�+�T�2rc�:�UR[S5S5 g)Nz(?>ab?)z�ATOMIC_GROUP
  LITERAL 97
  MAX_REPEAT 0 1
    LITERAL 98

 0. INFO 4 0b0 1 2 (to 5)
 5: ATOMIC_GROUP 11 (to 17)
 7.   LITERAL 0x61 ('a')
 9.   REPEAT_ONE 6 0 1 (to 16)
13.     LITERAL 0x62 ('b')
15.     SUCCESS
16:   SUCCESS
17: SUCCESS
r�rZs r�test_atomic_group�DebugTests.test_atomic_group�
s������z�2�5�	rc�:�UR[S5S5 g)Nr/z�POSSESSIVE_REPEAT 0 1
  LITERAL 97

 0. INFO 4 0b0 0 1 (to 5)
 5: POSSESSIVE_REPEAT_ONE 6 0 1 (to 12)
 9.   LITERAL 0x61 ('a')
11.   SUCCESS
12: SUCCESS
r�rZs r�test_possesive_repeat_one�$DebugTests.test_possesive_repeat_one�
s������v�.�	1�		rc�:�UR[S5S5 g)Nr3z�POSSESSIVE_REPEAT 0 1
  LITERAL 97
  LITERAL 98

 0. INFO 4 0b0 0 2 (to 5)
 5: POSSESSIVE_REPEAT 7 0 1 (to 13)
 9.   LITERAL 0x61 ('a')
11.   LITERAL 0x62 ('b')
13: SUCCESS
14. SUCCESS
r�rZs r�test_possesive_repeat� DebugTests.test_possesive_repeat�
s������{�3�6�	rr )
r"r#r$r%�maxDiffr�r�r�r�r&r rrr�r��
s���G�.3�`�"
�rr�c�b�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
SrS
rSrSrg)�PatternReprTestsic�b�UR[[R"U55U5 gr�rAr�rHrJ)rrFrJs   r�check�PatternReprTests.checks ������b�j�j��1�2�H�=rc�b�UR[[R"X55U5 grr�)rrFr�rJs    r�check_flags�PatternReprTests.check_flags	s ������b�j�j��8�9�8�Drc�(�URSS5 g)Nrn�re.compile('random pattern')�r�rZs r�test_without_flags�#PatternReprTests.test_without_flagss���
�
�#�1�	3rc�F�URS[RS5 g)Nrnz+re.compile('random pattern', re.IGNORECASE))r�rHrnrZs r�test_single_flag�!PatternReprTests.test_single_flags�����)�2�=�=�9�	;rc��URS[R[R-[R-S5 g)Nrnz@re.compile('random pattern', re.IGNORECASE|re.DOTALL|re.VERBOSE))r�rHr�rr�rZs r�test_multiple_flags�$PatternReprTests.test_multiple_flagss.�����)�2�4�4����9�R�T�T�>�
2�	3rc���URS[RS5 URS[R[R-[R-S5 g)Nrnr�z5re.compile('random pattern', re.IGNORECASE|re.DOTALL))r�rHr�r�rrZs r�test_unicode_flag�"PatternReprTests.test_unicode_flagsH�����)�2�4�4�7�	9����)�2�4�4����9�R�T�T�>�4�	5rc�(�URSS5 g)Nz(?i)patternz(re.compile('(?i)pattern', re.IGNORECASE)r�rZs rr0�"PatternReprTests.test_inline_flags s���
�
�=�=�	?rc�r�URSSS5 URSS[R-S5 g)Nrni0z&re.compile('random pattern', 0x123000)z4re.compile('random pattern', re.IGNORECASE|0x123000))r�rHr�rZs r�test_unknown_flags�#PatternReprTests.test_unknown_flags$s8�����)�8�A�	C����)�8�B�D�D�=�B�	Drc�j�URSS5 URS[RS5 g)N�
bytes patternzre.compile(b'bytes pattern')z&re.compile(b'bytes pattern', re.ASCII))r�r�rHr�rZs r�
test_bytes�PatternReprTests.test_bytes*s/���
�
�#�1�	3����)�2�4�4�A�	Crc�F�URS[RS5 g)Nr�z're.compile(b'bytes pattern', re.LOCALE))r�rHrorZs r�test_locale�PatternReprTests.test_locale0s�����)�2�4�4�B�	Drc�p�URSS5 URSS5 URSS5 g)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')r�rZs r�test_quotes�PatternReprTests.test_quotes4s;���
�
�3�>�	@��
�
�3�>�	@��
�
�:�E�	Grc��SSS--n[[R"U55nUR[	U5S5 URUSSS5 [[R"U[R55nUR[	U5S5 URUSSS5 URUSSS5 g)	NzVery %spatternzlong ryi,�zre.compile('Very long long loni�z, re.IGNORECASE))r�rHrJrrrAr�)rrFr�s   r�test_long_pattern�"PatternReprTests.test_long_pattern<s���"�g��n�5������G�$�%������A���$�����3�B��!A�B�����G�R�T�T�*�+������A���$�����3�B��!A�B�����3�4��"4�5rc��UR[[R5S5 UR[[R[R-[R
-5S5 UR[[R[R-[R
-S-5S5 UR[[R)5S5 UR[[R[R-[R
-)5S5 UR[[R[R-[R
-S-)5S5 g)Nz
re.IGNORECASEz"re.IGNORECASE|re.DOTALL|re.VERBOSEiz+re.IGNORECASE|re.DOTALL|re.VERBOSE|0x100000zLre.ASCII|re.LOCALE|re.UNICODE|re.MULTILINE|re.DOTALL|re.VERBOSE|re.DEBUG|0x1z7re.ASCII|re.LOCALE|re.UNICODE|re.MULTILINE|re.DEBUG|0x1z;re.ASCII|re.LOCALE|re.UNICODE|re.MULTILINE|re.DEBUG|0xffe01)rAr�rHr�rr�rZs r�test_flags_repr� PatternReprTests.test_flags_reprFs�������b�d�d��_�5�����b�d�d�2�4�4�i����n�-�=�	?�����b�d�d�2�4�4�i����n�e�4�5�F�	H�����b�d�d�U��^�	`�	
�������R�T�T�	�"�$�$��/�0�R�	T��������R�T�T�	�"�$�$��� 6�7�8�V�	Xrr N)r"r#r$r%r�r�r�r�r�r�r0r�r�r�r�r�r�r&r rrr�r�sI��>�E�3�;�3�
5�?�D�C�D�G�6�Xrr�c��\rSrSrSr\S5rSrSr\S5r	Sr
\S5r\S	5r\S
5r
\S5rSrg
)�ImplementationTestiUz/
Test implementation details of the re module.
c���UR[5 S[RlSSS5 UR[5 S[R
lSSS5 UR[5 [R"S5n[URS55nSUlSSS5 g!,(df   N�=f!,(df   Nu=f!,(df   g=f)Nrsr�)	rGr�rH�Matchr�rprJr9r�)rr�tps   r�test_immutable�!ImplementationTest.test_immutableZs����
�
�y�
)��B�H�H�L�*�
�
�
�y�
)��B�J�J�N�*�
�
�
�y�
)��*�*�R�.�C��c�k�k�"�o�&�B��B�F�*�
)�	*�
)��
)�
)��
)�
)�s#�B=�	C�<8C�=
C�
C�
C-c�j�[RRnURU"S5/5 URU"S5S/5 URU"S5/SQ5 URU"S5/SQ5 URU"S5/S	Q5 URU"S
5/SQ5 g)Nr�r�rr�)rrrr�aaaa)rrsr�rt�ababba)rrrsr�rrs�abcabdac)rrrrsr�rrsr)rH�	_compiler�_generate_overlap_tablerA)r�fs  r�test_overlap_table�%ImplementationTest.test_overlap_tablefs����L�L�0�0������2���#�����3��!��%�����6��L�1�����6��L�1�����8��&8�9�����:��(@�Arc��UR[RRS5 UR[RRS5 g)Nr)�assertGreaterEqualrHr��	MAXREPEATr�rZs r�test_signedness�"ImplementationTest.test_signednessos6�������� 6� 6��:������� 6� 6��:rc���[U[R5 [U[R5 [R"S5n[U[UR
S555 g)Nr�)rrHr�rprJr9r�rs  r�test_disallow_instantiation�.ImplementationTest.test_disallow_instantiationssD��	%�T�2�8�8�4�$�T�2�:�:�6��j�j��n��$�T�4����B��+@�Arc	��/SQ/SQ/SQS.nUGHPnURUS9 [RRUS5 UR	[
5n[
U5 SSS5 UR[WR5SU<S35 URUR[5 URU[R5 [RUnURURU5 URURS5 XHnUR[!XE55 M [RU	SSS5 GMS g!,(df   GN=f!,(df   GMx=f)	N)rJr(�SRE_FLAG_IGNORECASE�
SUBPATTERN�
_compile_info)r(r�r��_NamedIntConstant)�
SubPattern�parser�r��
_parse_sub)�sre_compile�
sre_constants�	sre_parse)�modulezmodule z is deprecatedr�)rKr��modules�popr�r��
__import__rAr�r�r�r�r�r"�__package__r�r�)r�
deprecated�namer�r��attrs      r�test_deprecated_modules�*ImplementationTest.test_deprecated_modules{s'��-�3�(�
	
�
��D����T��*�������d�+��%�%�&8�9�Q��t�$�:�� � ��Q�Y�Y��#*�4�(�.�!A�C�� � ����X�6��
�
�d�C�K�K�0��k�k�$�'��� � ����t�4�� � ����"�5�&�,�D��O�O�G�C�$6�7�-��K�K��%�+�*��:�9��+�*�s$�6E7�E%�$C3E7�%
E4�/E7�7
F	c��SSKn[S5H�n[U5n[UR	55nURUR
U5U5 URURU5U5 U[R;nURURU5U5 URURU5U5 M� [[SS55SS/-GHn[U5nURUR
U5U5 US:wa8URURU5[UR	555 X3R	5:g=(d X3R5:gnURURU55 URURU5X3R	5:g=(d X3R5:g5 GM URUR
S5S5 URURS5[S55 URURS55 URURS55 g)Nrr2iii(i0r)�_srerr��ordrFrA�
ascii_tolower�unicode_tolowerrVr��
ascii_iscased�unicode_iscasedr6�upperr�r�)rr�rr��lo�iscaseds      r�test_case_helpers�$ImplementationTest.test_case_helpers�s�����s��A��A��A��Q�W�W�Y��B����T�/�/��2�B�7����T�1�1�!�4�b�9��6�/�/�/�G����T�/�/��2�G�<����T�1�1�!�4�g�>���e�C��(�)�W�g�,>�>�A��A��A����T�/�/��2�A�6��F�{�� � ��!5�!5�a�!8�#�a�g�g�i�.�I��7�7�9�n�6��W�W�Y��G����T�/�/��2�3����T�1�1�!�4��'�'�)�^�=�q�G�G�I�~�
?�?�	
����+�+�F�3�V�<�����-�-�f�5�s�3�x�@�����+�+�F�3�4�����,�,�V�4�5rc	��SSKnSS-nUR[[RS05 UR[
5 UR
SSU/S0S5 SSS5 UR[5 UR
0S/S//5 SSS5 UR[5 UR
SSS/S0S5 SSS5 g!,(df   Nx=f!,(df   NU=f!,(df   g=f)Nrr�r2r�r�r r�)r�rGr�rHrar�rJ)rr��
long_overflows   r�test_dealloc�ImplementationTest.test_dealloc�s���	�
�3��
����)�R�[�[�#�r�:�
�
�
�}�
-��L�L���M�?�A�r�2�>�.�
�
�
�y�
)��L�L��Q��A�r�2�.�*��
�
�y�
)��L�L��Q����B��3�*�
)�.�
-��
)�
)��*�
)�s$�C�:C �.C1�
C� 
C.�1
C?c�v�SSKJn SS-nUR	[
R"SWS-
-U55 UR[
R"SUS-
-U5R5S	5 UR	[
R"S
US-
-U55 UR[[
RSU-5 UR[[
RSU-5 UR[[
RS
U-5 g![a URS5 GN/f=f)Nr)r�z requires _sre.MAXREPEAT constantr<r�r�rsr�)rr�r�)r�r��ImportErrorr�r|rHr}rAr{rGr�rJ)rr�rVs   r�%test_repeat_minmax_overflow_maxrepeat�8ImplementationTest.test_repeat_minmax_overflow_maxrepeat�s���	>�&��v������"�(�(�8�y�1�}�#=�v�F�G�������)�y�1�}�"=�v�F�K�K�M�$�	&����"�(�(�:��Q��#?��H�I����-����X�	�5I�J����-����Y��5J�K����-����Z�)�5K�L���	>��M�M�<�=�	>�s�D�D8�7D8c��SSKnUR[5nURS/SQ5 SSS5 UR	S[WR55 UR[5nURS/SQ5 SSS5 UR	S[UR55 g!,(df   N�=f!,(df   NE=f)Nrr�)r�rxr�zinvalid template)r�r r�zan integer is required)r�rGr��templater�r�rL)rr�rOs   r�%test_sre_template_invalid_group_index�8ImplementationTest.test_sre_template_invalid_group_index�s���	�
�
�
�y�
)�R��M�M�"�l�+�*��
�
�(�#�b�l�l�*;�<�
�
�
�y�
)�R��M�M�"�l�+�*��
�
�.��B�L�L�0A�B�*�
)��*�
)�s�B4�1C�4
C�
Cr N)r"r#r$r%�__doc__rr�r�r�r�r�rrrrr&r rrr�r�Us�����	��	�B�;��B��B�&�6�6��6�4�4��4�"�M��M��C��Crr�c� �\rSrSrSrSrSrg)�
ExternalTestsi�c���SSKJn UGH?up#URX#S9 [R"U5nURUR
U55 URURU55 URURU55 SS-U-SS--nURUR
U55 URURUS55 URURUSS[U5-55 URURUSS[U5-55 SSS5 GMB g!,(df   GMU=f)zre_tests benchmarksr)�
benchmarks�rFrVr�r�N)
�
test.re_testsrrKrHrJr�rzr}r�r)rrrFrkr��s2s      r�test_re_benchmarks� ExternalTests.test_re_benchmarks�s���,�$�J�G����g��8��J�J�w�'����������,��������
�+�������A��/���Y��]�S��Y�.����������-��������E� 2�3��������E�5�3�q�6�>� B�C�������B��u�s�1�v�~� F�G�9�8�%�8�8�s�D"E�
E	c�	�SSKJnJnJn UGH�nS=n=n=n=p�[	U5S:XaUupVpxn	O![	U5S:XaUupVnO[SU5eUR
XVS9 Xs:XaIUR[R5 [R"U5 SSS5 SSS5 M�[R"U5n
U
RU5nXr:XaURUS5 SSS5 M�UR
5 URUS	5 URS5up�URS5UR5URR S
.n[#SS5H"nURU5nUcS
nUUSU-'M$ URR&R)5HnURU5nUcS
nUX�'M  UR+[-X�5U	S5 SSS5 [/US5n[/US5nUR
S5 [R"U5n
URU
RU55 SSS5 UR
S5 [R"U[R05n
U
RU5nUc[3SU5 SSS5 USSS:waaUSSS:waXUbUUR
S5 [R"U5n
URU
RUWW
S-55 SSS5 UR
S5 [R"U[R65n
URU
RU55 SSS5 UR
S5 [R"U[R85n
URU
RU55 SSS5 SSS5 GM� g!,(df   GNj=f![$a SnGN�f=f![$a SnGN^f=f!,(df   GNE=f!,(df   GN�=f!,(df   GN�=f![4a GN�f=f!,(df   GNZ=f!,(df   GN
=f!,(df   N�=f!,(df   GM�=f)zre_tests test suiter)�tests�FAIL�SYNTAX_ERRORNrrtz%Test tuples should have 3 or 5 fieldsrzSucceeded incorrectlyzFailed incorrectly)�foundrir�rsr��Noner�zg%dzgrouping errorrMzbytes pattern matchzlocale-sensitive matchz#=== Fails on locale-sensitive matchr�r����zrange-limited matchzcase-insensitive matchzunicode-sensitive match)rr r!r"rr�rKrGrHrIrJrzr|r�r{r�r�rr4r��keysrA�evalr3r��print�UnicodeEncodeErrorrnr^)rr r!r"rrFrk�outcomerTrJ�objr�r�r��vardictr�gir9�bss                   r�
test_re_tests�ExternalTests.test_re_tests�s���;�;��A�6:�:�G�:�a�:�'�:�D��1�v��{�67�3��G�8��Q��1��&'�#��G� �!H�!�L�L����g��8��*��*�*�2�?�?�;��
�
�7�+�<��	9�8��j�j��)�����A����?��%�%�f�.E�F��9�8��\�\�^��O�O�F�,@�A�"(���Q��J�E�(.���Q��)/����(.�	�	���9�G�#�1�c�]��)�!'���a��B�!�z�%+��.0����	�*�+�$�Y�Y�1�1�6�6�8��)�!'���a��B�!�z�%+��&(��
�9��$�$�T�$�%8�(�%5�7�3$�<L� ��'�2�D��q�'�*�B�
���&;�<� �j�j��.������
�
�2��7�=����&>�?� �j�j��r�y�y�9��!$���B���!�>�!�"G��K�	@��B�Q�K�5�(�W�R�S�\�U�-B� &� 2����&;�<� �j�j��1������
�
�1�e�S�1�W�(E�F�=��\�\�":�;��*�*�W�b�m�m�<�C��O�O�C�J�J�q�M�2�<��\�\�";�<��*�*�W�b�j�j�9�C��O�O�C�J�J�q�M�2�=�_9�8��<�;��0 *�)�!(�B�)�� *�)�!(�B�)��-$�^��J=�<��@�?��*�����,=�<��<�;��=�<��_9�8�s0� %R3�O?�	R3�/?R3�8R3�A,P7�5P�3P7�?P$�$P7�9R3�Q-�R3�+7Q	�"R3�;AQ�.R3�/<Q>�+R3�AR�
R3�#AR"�)R3�?
P�	R3�P!�P7� P!�!P7�$P4�0P7�3P4�4P7�7
Q�R3�	
Q�R3�
Q*�%R3�-
Q;�7R3�:Q;�;R3�>
R
�R3�
R�R3�"
R0�,R3�3
S	r N)r"r#r$r%rr/r&r rrrr�s��
H�]3rr�__main__)'�test.supportrrrrrrr	r
rrr
rrDrHrVr��timer�r)r�weakrefr�_multiprocessingrbrr�rr3r+�TestCaser0r�r�r�r�rr"�mainr rr�<module>r8s��[�[�[�[��	�
�
���������-��-�-��-�w)<�h���w)<�tS��\��"�"�\��\�~MX�x�(�(�MX�`FC��*�*�FC�Rn3�H�%�%�n3�b�z���M�M�O���{a���O��s�C.�.C9�8C9

Youez - 2016 - github.com/yon3zu
LinuXploit