Sindbad~EG File Manager

Current Path : /proc/2568807/root/usr/local/lib/python3.12/test/__pycache__/
Upload File :
Current File : //proc/2568807/root/usr/local/lib/python3.12/test/__pycache__/test_re.cpython-312.opt-1.pyc

�

'Μg�,����ddlmZmZmZmZmZmZmZmZm	Z	m
Z
ddlZddlZddl
Z
ddlZddlZddlZddlZddlmZddlmZ	ddlZddlZGd�de�ZGd�de�ZGd	�d
ej8�Zd�ZeGd�d
ej8��ZGd�dej8�Z Gd�dej8�Z!Gd�dej8�Z"e#dk(rejH�yy#e$rdZY��wxYw)�)
�
gc_collect�
bigmemtest�_2G�cpython_only�captured_stdout�check_disallow_instantiation�
is_emscripten�is_wasi�
SHORT_TIMEOUT�requires_resourceN)�Scanner)�proxyc���eZdZ�fd�Z�xZS)�Sc�4��tt�|�	|��S�N)r�super�__getitem__��self�index�	__class__s  ��)/usr/local/lib/python3.12/test/test_re.pyrz
S.__getitem__�������$�U�+�,�,���__name__�
__module__�__qualname__r�
__classcell__�rs@rrr�
���-�-rrc���eZdZ�fd�Z�xZS)�Bc�4��tt�|�	|��Sr)r$rrrs  �rrz
B.__getitem__"rrrr!s@rr$r$!r"rr$c��eZdZd�d�Zd�d�Zd�d�Zd�Zd�Zd�Zd�Z	d	�Z
d
�Zd�Zd�Z
d
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d �Z!d!�Z"d"�Z#d#�Z$d$�Z%d%�Z&d&�Z'd'�Z(d(�Z)d)�Z*d*�Z+d+�Z,d,�Z-d-�Z.d.�Z/d/�Z0d0�Z1d1�Z2d2�Z3d3�Z4d4�Z5d5�Z6d6�Z7d7�Z8dde9jtfd8�Z;e<jze<j|zd9zZ?d:�Z@d;�ZAd<�ZBd=�ZCd>�ZDd?�ZEd@�ZFdA�ZGdB�ZHdC�ZIdD�ZJdE�ZKdF�ZLdG�ZMdH�ZNdI�ZOdJ�ZPdK�ZQdL�ZRdM�ZSdN�ZTdO�ZUdP�ZVdQ�ZWdR�ZXdS�ZYdT�ZZdU�Z[dV�Z\dW�Z]dX�Z^dY�Z_dZ�Z`d[�Zad\�Zbd]�Zcd^�Zdd_�Zed`�Zfda�Zgdb�Zhdc�Zidd�Zjde�Zkelemdf�g�dh��Znelemdi�g�dj��Zodk�Zpdl�Zqdm�Zrdn�Zsdo�Ztdp�Zudq�Zvdr�Zwds�Zxdt�Zydu�Zze{j�e}xse~dv�dw��Zdx�Z�dy�Z�e{j�e}xse~dv�dz��Z�d{�Z�d|�Z�d}�Z�d~�Z�d�Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�e�d��d���Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�e{j�e�dud��d���Z�y)��ReTestsNc�P�����j||�����fd���||�y)Nc���t|ttf�rt||�D]\}}�||��y�j	t|�t|���yr)�
isinstance�tuple�list�zip�assertIs�type)�actual�expect�x�y�msg�recursers    ���rr5z)ReTests.assertTypedEqual.<locals>.recurse)sI����&�5�$�-�0����/�D�A�q��A�q�M�0��
�
�d�6�l�D��L�#�>r)�assertEqual)rr0r1r4r5s`  `@r�assertTypedEqualzReTests.assertTypedEqual's&���������-�	?�	���rc�p�|jtj�5}tj|�ddd�|j	|��5j
}|j
|j|�|�|j
|j|�ddd�y#1swY�kxYw#1swYyxYw)N)�pattern)	�assertRaises�re�error�compile�subTest�	exceptionr6r4�pos)rr9�errmsgr@�cm�errs      r�checkPatternErrorzReTests.checkPatternError1s���
�
�
�r�x�x�
(�B��J�J�w��)�
�\�\�'�\�
*��,�,�C����S�W�W�f�-���� � ����#�.�	+�
*�)�
(��
*�
*�s�B �AB,� B)�,B5c�v�|jtj�5}tj|||�ddd�|j	||��5j
}|j
|j|�|�|j
|j|�ddd�y#1swY�lxYw#1swYyxYw)N)r9�repl)	r:r;r<�subr>r?r6r4r@)rr9rF�stringrAr@rBrCs        r�checkTemplateErrorzReTests.checkTemplateError:s���
�
�
�r�x�x�
(�B��F�F�7�D�&�)�)�
�\�\�'��\�
5��,�,�C����S�W�W�f�-���� � ����#�.�	6�
5�)�
(��
5�
5�s�B#�AB/�#B,�/B8c�
�td�}tjd|�}|jt�5|jd�ddd�t
|�~t�|jd�y#1swY�1xYw)N�x�as�xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)�	bytearrayr;�finditerr:�BufferError�extendr,r)r�b�its   r�test_keep_bufferzReTests.test_keep_bufferCs^���d�O��
�[�[��q�
!��
�
�
�{�
+�
�H�H�X��,��R�����	�����,�
+�s�A9�9Bc��d}tjd�}t|�}|j|j	d�|j	d��y)N�QabbbcRzab+c)r;r=rr6�findall)r�sr2r3s    r�test_weakrefzReTests.test_weakrefNs@�����J�J�v����!�H��������9�-�q�y�y��/C�Drc���|jtjdd�jd�d�|jtjdd�j�d�|jtjdd�jd�d�|jtjdd�j�d�|j	tjdd��|jtj
d	d
�jd�d�|jtj
d	d
�j�d�|jtj
dd�jd�d�|jtj
dd�j�d�|j	tj
d
d
��y)N�x*�axxr�rrzx+���r2�aaaza*�xxx�xxxa�rr_�a+)r6r;�search�span�assertIsNone�match�rs r�test_search_star_pluszReTests.test_search_star_plusTs\��������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��|jtjdd�j�d�|jtjdd�j�d�|jtjdd�j�d�|jtjdd�j�d�|jtjdd	�j�d�|jtjdd
�j�d�|jtjdd�j�d
�|jtjdd�j�d
�|jtjdd�j�d
�y)zDTest Branching
        Test expressions using the OR ('|') operator.z(ab|ba)�ab�r��baz(abc|bac|ca|cb)�abcrc�bac�ca�cbz
((a)|(b)|(c))�a�rr^rQ�cN�r6r;rhrfris r�test_branchingzReTests.test_branching`sX��	
������)�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�t|jd��}t|dz�S)Nrr^)�int�group�str)r�matchobj�	int_values   r�bump_numzReTests.bump_numqs$������q�)�*�	��9�q�=�!�!rc
�t
��|jtjddd�d�|jtjdtd�td��d�|jtjddd�d�|jtjdt	d�t	d��d�|jtjdtd�td��d�|jtjdt
d�t
d��d�d	D],}|jtj|dd
|z�d��.|jtjddd
�d�|jtjd|jd�d�|jtjd|jdd�d�|jtjd|jdd��d�|jtjdd�d�d�|jtjddd�d�d�|jtjd�d�d�|jtjd�jdd�d���|jtjd�fd�d���|jtjdd d�d!�|jtjdd"d�d!�|jtjd#d$d�d!�|jtjd#d%d�d!�|jtjd&d'd�d!�|jtjdd(d�d)�|jtjdd)d�d)�|jtjdd)d�td*�td+�ztd,�ztd-�ztd.�ztd/�ztd0�z�d1D]q}|j|�5|jtj�5|jtjdd|zd�d|z�ddd�ddd��s|jtjd2d3d4�d5�y#1swY�;xYw#1swY��xYw)6Nr3rt�xyz�xaz�yrL�xyzsxaz��àuаu𝒜zx%sz�(?i)b+r2�	bbbb BBBB�x x�\d+z08.2 -2 23x99yz9.3 -3 24x100yr_z
9.3 -3 23x99y��count�.c��y)N�\n���ms r�<lambda>z+ReTests.test_basic_re_sub.<locals>.<lambda>�s��urr��
z\1\1z(.)�xx�\�\\c����Srr�)r�rWs �rr�z+ReTests.test_basic_re_sub.<locals>.<lambda>�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)r7r;rGrr$rM�
memoryviewr6r�replace�chrr>r:r<)rr3rvrWs   @r�test_basic_re_subzReTests.test_basic_re_subus�������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�)�	+���������
�
�7G��K�(�	*���������
�
�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�x�x�0��$�$�R�V�V�C����3�%?����J�1�!��@�
	
��������f�5�w�?�1�0��!��s$� T.�:.T"�(T.�"T+�'T.�.T7	c�R�|jtjddd�d�y)Nr�z\g<1>\g<1>\br�zxxxx�r6r;rGris r�test_bug_449964zReTests.test_bug_449964�s"��������
���E�#�	%rc�<�|jtjddd�d�|jtjddd�d�|jtjddd�d�|jtjddd�d�y)Nz\r\nr�z
abc
def
zabc
def
z
r�r�ris r�test_bug_449000zReTests.test_bug_449000�s�����������0@�A�%�	'���������/?�@�%�	'���������/?�@�%�	'���������.>�?�%�	'rc���tjd�}|jttj|dtj
�|jttj|dtj
�|jttj|dtj
�|jttj|tj
�y)Nr��A)r;r=r:�
ValueErrorrh�IrerV�rr9s  r�
test_bug_1661zReTests.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�.�tjd�y)Nz(?P<quote>)(?(quote)))r;r=ris r�
test_bug_3629zReTests.test_bug_3629�s��
�
�
�*�+rc��|jtjddd�d�|jtjddd�d�|jtjddd�d�|jtjddd�d�|jtjdd	d�d
�|jtjddd�d�|jtjdd
d�d�|jtjddd�d�|jtjddd�d�|jtjddd�d�|jtjddd�d�|jtjddd�d�|jtjddd�d�|jtjddd�d
�|jtjddd�d�|jddddd�|jddddd�|jdddd d!�|jdd"dd#d!�|jdd$dd%d!�|jdd&dd'd!�|jdd(dd)d!�|jdd*dd d!�|jdd+dd,d!�|jdd-dd.d!�|jdd/dd'd!�|jdd0dd'd!�|jdd1dd)d!�|jdd2dd3d!�|jdd"d4d#d!�|jtjd5d&d�d�|jtjd6d/d7�d8�|jtjd6d0d7�d9�y):Nr2�\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 1r^z\8zinvalid group reference 8z\9zinvalid group reference 9z\11zinvalid group reference 11z\18zinvalid group reference 18z\1az\90zinvalid group reference 90z\99zinvalid group reference 99z\118z\11az\181z\800zinvalid group reference 80�z(((((((((((x)))))))))))z((((((((((y))))))))))(.)r��xz8�xza)r6r;rGrIris r� test_sub_template_numeric_escapez(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���|jtjddd�d�|jtjdddd�d�|jtjdddd��d�y)NrtrQ�aaaaa�bbbbbr^�baaaar�r�ris r�test_qualified_re_subzReTests.test_qualified_re_sub�s]���������S�'�2�G�<��������S�'�1�5�w�?��������S�'��;�W�Erc�R�|jtjddd�d�y)Nz(\S)\s+(\S)z\1 \2zhello  therezhello therer�ris r�test_bug_114660zReTests.test_bug_114660�s"����������.�I�&�	(rc��tjd�tjd�tjd�tjd�tjd�tjd�djd�td	d
�D��}d|z}|j	tj
|d�j
�d
�y)Nz(?P<a>x)(?P=a)(?(a)y)z(?P<a1>x)(?P=a1)(?(a1)y)z(?P<a1>x)\1(?(1)y)s(?P<a1>x)(?P=a1)(?(a1)y)u(?P<µ>x)(?P=µ)(?(µ)y)uf(?P<𝔘𝔫𝔦𝔠𝔬𝔡𝔢>x)(?P=𝔘𝔫𝔦𝔠𝔬𝔡𝔢)(?(𝔘𝔫𝔦𝔠𝔬𝔡𝔢)y)�|c3�*K�|]}d||fz���
y�w�z
x(?P<a%d>%x)yNr���.0�is  r�	<genexpr>z/ReTests.test_symbolic_groups.<locals>.<genexpr>������K�9J�A��!�Q��/�9J���r^��z(?:%s)(?(200)z|t)�xc8yz�r�)r;r=�join�ranger6rhrf�r�pats  r�test_symbolic_groupszReTests.test_symbolic_groups�s���
�
�
�+�,�
�
�
�.�/�
�
�
�(�)�
�
�
�.�/�
�
�
�-�.�
�
�
�{�|��h�h�K��q�'�9J�K�K��!�C�'��������#�w�/�4�4�6��?rc�$�|jdd�|jddd�|jdd�|jdd	d
�|jddd
�|jddd
�|jddd
�|jdd�|jdd�|jddd
�|jddd
�|jddd
�|jddd
�|jddd
�|jddd
�|jddd
�|jddd�|jd dd�|jd!dd�|jd"d#d�|jd$d%d�|jd&dd�|jd'd(d
�|jd)d(d
�|jd*d(d�|jd+d,d
�|jd-d,d
�|jd.d,d�y)/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(?(r_z(?())z(?(a))z(?(-1))� bad character in group name '-1'z(?(1a))z bad character in group name '1a'z(?(a.))u	(?P<©>x)� bad character in group name '©'u(?P=©)u(?(©)y)s	(?P<µ>x)�&bad character in group name '\xc2\xb5's(?P=µ)s(?(µ)y)�rDris r�test_symbolic_groups_errorsz#ReTests.test_symbolic_groups_errorss(�����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��|jtjddd�d�|jtjddd�d�|jtjddd�d�|jtjd	d
d�d�|jtjddd�d�d
jd�t	dd�D��}|jtj|dd�d�y)Nz(?P<a>x)|(?P<b>y)z\g<b>r�r��\2s	(?P<a1>x)s\g<a1>�xxu	(?P<µ>x)u\g<µ>u#(?P<𝔘𝔫𝔦𝔠𝔬𝔡𝔢>x)u \g<𝔘𝔫𝔦𝔠𝔬𝔡𝔢>r�c3�*K�|]}d||fz���
y�wr�r�r�s  rr�z-ReTests.test_symbolic_refs.<locals>.<genexpr>.r�r�r^r�z\g<200>�	xc8yzxc8y�c8zc8)r6r;rGr�r�r�s  r�test_symbolic_refszReTests.test_symbolic_refs&s��������� 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�R�|jddddd�|jddddd�|jdddd	d
�|jddddd�|jdd
ddd�|jddddd�|jddddd�|jddddd�|jtd�5tjddd�ddd�|jddddd�|jddddd�|jddddd�|jddddd�|jdddd d�|jd!d"d#d$d�|jdd%dd&d�|jdd'dd(d�|jdd)dd*d�y#1swY��xYw)+Nr�z\g<ar�r�r_z\g<r�z\gz	missing <rnz\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�r^zunknown group name 'ab'z\g<ab>z\g<-1>r�z\g<+1>� bad character in group name '+1'z()()()()()()()()()()z\g<1_0>�!bad character in group name '1_0'z\g< 1 >�!bad character in group name ' 1 'u\g<©>r�s(?P<a>x)s\g<µ>r�r�u\g<㊀>�!bad character in group name '㊀'u\g<¹>� bad character in group name '¹'u\g<१>�!bad character in group name '१')rI�assertRaisesRegex�
IndexErrorr;rGris r�test_symbolic_refs_errorsz!ReTests.test_symbolic_refs_errors1s������
�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���|jtjddd�d�|jtjddd�d�|jtjddd�d�|jtjd	dd�d
�|jtjd	ddd�d�|jtjd	ddd�
�d�y)Nr�r2r�)r�rnzb+)zx BBBBr^r�)r�rzb*)�xxxyxzxr�rn)�xxxyzrnr�)r6r;�subnris r�test_re_subnzReTests.test_re_subnVs����������3��<�j�I��������s�K�8�-�H��������s�E�2�J�?��������s�E�2�N�C��������s�E�1�5�|�D��������s�E��;�\�Jrc��dtd�fD]z}|jtjd|�gd��|jtjd|�gd��|jtjd|�gd���|dt	d�td�t
d�fD]z}|jtjd	|�gd
��|jtjd|�gd��|jtjd
|�gd���|dD]�\}}}d|�d|�d|��}|jtjd|�d||d|g�|jtjd|�d|||g�|jtjd|�dd|d|d|g���|jtjdd�gd��|jtjdd�gd��|jtjdd�gd��|jtjdd�gd��|jtjdd�gd��dgd�fdgd�fdgd�fd gd!�ffD]F\}}|j|�"�5|jtj|d�|�ddd��Hdgd#�fd$gd%�fd&gd'�fd(gd)�ffD]F\}}|j|�"�5|jtj|d�|�ddd��Hy#1swY��xYw#1swY�_xYw)*N�:a:b::c�:)r�rtrQr�rv�:+)r�rtrQrv�(:+))r�rrtrrQ�::rvs:a:b::c�:)rrL�br�c�:+)rrLr	r
�(:+))rrrLrr	�::r
)uàßçuабвu𝒜𝒞𝒵rr�z(?::+)z(:)+)r�rrtrrQrrvz([b:]+))r�rrtz:b::rvz(b)|(:+))
r�NrrtNrr�rQNr�Nrrvz(?:b)|(?::+))r�rtr�r�rvz:*)r�r�rtr�rQr�rvr�z(?::*)�(:*))r�rr�r�rtrr�r�rQrr�r�rvr�r�z(:)*)r�rr�Nrtrr�NrQrr�NrvNr�)�sep)	r�rrtrrQrrrvr��\b)rrtrrQrrvr�z(?=:))r�z:az:brz:cz(?<=:))r�a:zb:rrv)	rr7r;�splitr$rMr�r6r>)rrHrtrQrvr�expecteds       r�
test_re_splitzReTests.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�q�!�%&��1�-�F����R�X�X�c�6�2�R��A�r�1�4E�F����R�X�X�d�F�3�b�!�Q��]�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�7'M�'M�M	�M	c��|jtjddd�gd��|jtjddd��gd��|jtjddd��gd��|jtjddd��gd	��|jtjd
dd��gd	��|jtjddd��gd��y)
Nrrrn)r�rt�b::c)�maxsplitza:b:c:d)rtrQzc:dz(:))r�rrtrrrr)r�rr�r�za:b::c)r6r;rris r�test_qualified_re_splitzReTests.test_qualified_re_split�s���������#�y�!�4�6G�H�������#�y�1�=�?P�Q�������#�y�1�=�?P�Q�������%��Q�?�4�	6�������&�)�a�@�4�	6�������&�)�a�@�4�	6rc
��|jtjdd�g�dtd�fD]z}|j	tjd|�gd��|j	tjd|�gd��|j	tjd|�gd���|dtd�t
d�td�fD]z}|j	tjd	|�gd
��|j	tjd|�gd
��|j	tjd|�gd
���|dD]�}|dz}|dz}d|�d|�d|�d�}|jtjd|z|�|||g�|jtjd|z|�|||g�|jtjd|�d|�d�|�|df||f||fg���y)Nrrp�
a:b::c:::d�rrz:::rz(:)(:*)))rr�)rr)rrs
a:b::c:::dr)rr
s:::rs(:)(:*)))rr)rr)rr
r�rnr_rtrQrv�dz%s+z(%s+)�(z)(z*)r�)r6r;rVrr7r$rMr�)rrHr2r�ras     r�test_re_findallzReTests.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��1�v��2�w�7�
9�
2rc�T�|jtjdd�gd��y)Nz(a|(b))�aba)�rtr�)rQrQr!�r6r;rVris r�test_bug_117612zReTests.test_bug_117612�s ��������J��6�9�	;rc�4
�dtd�fD�]}|jtjd|�j	�d�|jtjd|�j	�d�|jtjd|�jd�d�|jtjd|�jd�d�|jtjd|�jdd�d���dt
d�td�td�fD�]}|jtjd|�j	�d�|jtjd	|�j	�d
�|jtjd	|�jd�d�|jtjd	|�jd�d�|jtjd	|�jdd�d���dD�]}|jtj||�j	�d�|jtjd
|z|�j	�|f�|jtjd
|z|�jd�|�|jtjd
|z|�jd�|�|jtjd
|z|�jdd�||f���tjd�}|j|jd�j	�d�|j|jd�j	�d�|j|jd�j	�d�|j|jd�j	�d�|j|jd�j	d�d�tjd�}|j|jd�jddd�d�|j|jd�jddd�d�|j|jd�jddd�d �y)!Nrtr��(a)�rtrr^�rtrtrLs(a))rL)rLrLr�z(%s)z
((a)|(b))(c)?)rtrtNNrQ)rQNrQN�ac)rtrtNrv�bc)rQNrQrvr�)rQr�rQrv�!(?:(?P<a1>a)|(?P<b2>b))(?P<c3>c)?rnr_�rtNN�a1�b2�c3)NrQN)rtNrv)
rr6r;rh�groupsr{r$rMr�r=)rrHrtr�s    r�
test_re_matchzReTests.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�a�&�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�X�Gd�d�}tjdd�}|j|j�d�|j|jd�d�|j|jd�d�|j|j|d��d�|j	t
|jd�|j	t
|jd	�|j	t
|jdd
z�|j	t
|j|dd
z��|j	t
|jd�|j|jdd�d
�|j|j|d�|d��d
�y)Nc��eZdZd�Zd�Zy)�!ReTests.test_group.<locals>.Indexc��||_yr��value)rr6s  r�__init__z*ReTests.test_group.<locals>.Index.__init__�s	��"��
rc��|jSrr5ris r�	__index__z+ReTests.test_group.<locals>.Index.__index__�s���z�z�!rN)rrrr7r9r�rr�Indexr3�s��
#�
"rr:z(a)(b)rlrr^rt���r_��r2rn�rQrt)r;rhr6r{r:r�)rr:r�s   r�
test_groupzReTests.test_group�s8��	"�	"�
�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��tjd�}|jd�}|j|dd�|j|dd�|j|dd�|jdj	|�d�|j|dd�|j|d	d�|j|d
d�|j|dd�|jtd�5|d
ddd�|jtd�5|dddd�|jtd�5|dddd�|jtd�5|dddd�|jtd�5|dddd�|jtd�5|dddd�|jtd�5dj	|�ddd�|jd�}|j|dd�|j|dd�|j|dd�|jdj	|�d�|j|dd�|j|d	d�|j|d
d�|j|dd�|jt�5d	|d<ddd�|jtt|�y#1swY���xYw#1swY���xYw#1swY���xYw#1swY���xYw#1swY���xYw#1swY��xYw#1swY��\xYw#1swY��xYw)Nr*rtr,r-r.za1={a1} b2={b2} c3={c3}za1=a b2=None c3=Nonerr^rnr_z
no such groupr�r;r�ru)rza1={a2}r(rvza1=a b2=None c3=c)
r;r=rhr6�
format_mapr�r�r:�	TypeError�len)rr�r�s   r�test_match_getitemzReTests.test_match_getitem�s����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`�1K'�K4�9L�L�L�%L(�	L5�=M�'K1�4K>�L�L�L%�(L2�5L?�Mc�H�|jtjdd�j�d�dt	d�fD]6}|jtjd|�j�d��8dtd�t
d�td�fD]6}|jtjd|�j�d��8dD]F\}}|�d	||z��}|jtj|||z�j�d��H|jtjd
d�j�d�|jtjd
d�j�d�|jtjdd�j�d�|jtjdd�j�d�|jtjdd�j�d�|jtjdd��|jtjdd��|jtjdd��|jtjdd��|jtjdd�j�d�|jtjdd�j�d�|jtjdd�j�d�|jtjd�jddd��j�d�|jtjd
�jddd��j�d�|jtjd
�jddd��j�d�y) Nrtrurlza|abrm�absa|ab)uàßuабu𝒜𝒞r�z.*?$rprcz.*?za.*?b�abb�axxb�rr�rdzabc$zabc
zabc\Zz(?m)abc$z	ab(?=c)cd�abcdz
ab(?<=b)cdz
(?=a|ab)abr)r^r_�r@�endposr])
r6r;�	fullmatchrfrr$rMr�rgr=)rrHrtrQ�rs     r�test_re_fullmatchzReTests.test_re_fullmatchs��������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��q�1�u�%�A����R�\�\�!�Q��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�$�|jtjdd�j�d�|jtjdd�j�d�|j	tjdd��|j	tjdd��|jtjdd	�j�d
�|jtjdd�j�d�|jtjd
d�j�d�|jtjd
d�j�d�tj
d�}|j|jd�j�d�|j|jd�j�d�|j	|jd��|j	|jd��dj
d�tdd�D��}d|z}|jtj|d�j�d�y)Nz^(\()?([^()]+)(?(1)\))$r%)rrtrt�Nrtza)z(az^(?:(a)|c)((?(1)b|d))$rl�rtrQ�cd)Nrz^(?:(a)|c)((?(1)|d))$r!z(?P<g1>a)(?P<g2>b)?((?(g2)c|d))rp�rtrQrv�ad)rtNr�abdr(r�c3�*K�|]}d||fz���
y�wr�r�r�s  rr�z2ReTests.test_re_groupref_exists.<locals>.<genexpr>Vr�r�r^r�z(?:%s)(?(200)z)r�r�)	r6r;rhr/rgr=r�r�rf)r�pr�s   r�test_re_groupref_existszReTests.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��|jddd�|jddd�|jddd�|jd	d
d�|jdd
d�|jddd�|jddd�|jddd�|jddd�|jddd�|jddd�|jddd�|jddd�|jddd�y)Nz(?P<a>)(?(0)a|b)zbad group numberr�z()(?(-1)a|b)r�r�z()(?(+1)a|b)r�z()()()()()()()()()()(?(1_0)a|b)r��z
()(?( 1 )a|b)r�u
()(?(㊀)a|b)r�u()(?(¹)a|b)r�u
()(?(१)a|b)r�z()(?(1r�z()(?(1)a�"missing ), unterminated subpatternrnz
()(?(1)a|bz()(?(1)a|b|cz/conditional backref with more than two branchesz
()(?(1)a|b|c)z	()(?(2)a)r�r�ris r�test_re_groupref_exists_errorsz&ReTests.test_re_groupref_exists_errorsZs@�����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��td�D]5}|j|��5tjd|z�ddd��7y#1swY�BxYw)N�)�codez()(?(1)\x%02x?))r�r>r;r=�rr�s  r�&test_re_groupref_exists_validation_bugz.ReTests.test_re_groupref_exists_validation_bugys?���s��A����1��%��
�
�-��1�2�&�%��%�%�s�A�A	c�x�ddlm}|jdd|zdd|zd�|jd|zd|zd	�y)
Nr)�	MAXGROUPSz()z\g<%s>r�zinvalid group reference %dr_z(?P<a>)(?(%d))r�)�
re._constantsrcrIrD)rrcs  r�test_re_groupref_overflowz!ReTests.test_re_groupref_overflow~sJ��+�����i�)�&;�T� <�y� H�!�	M����0�9�<�;�i�G��	Mrc�^�|jtjdd�j�d�|jtjdd�j�d�|j	tjdd��|j	tjdd��|jtjd	d
�j�d�|jtjdd
�j�d�|jddd�y)Nz^(\|)?([^()]+)\1$z|a|)r�rtz^(\|)?([^()]+)\1?$rtrPza|z|az^(?:(a)|c)(\1)$�aar'z^(?:(a)|c)(\1)?$rv�NNz(abc\1)r�r�)r6r;rhr/rgrDris r�test_re_grouprefzReTests.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�r�|jtjdd�j�ddd��y)N�#(?P<first>first) (?P<second>second)�first second�first�second)rmrn)r6r;rh�	groupdictris r�test_groupdictzReTests.test_groupdict�s0��������"G�"0�2�2;�)�+�")�H�=�	?rc���|jtjdd�jd�d�|jtjdd�jd�d�y)	Nrkrlz\2 \1 \g<second> \g<first>zsecond first second firstz#(?P<first>first)|(?P<second>second)rmz
\2 \g<second>� )r6r;rh�expandris r�test_expandzReTests.test_expand�s^��������"G�"0�2�#)�6�*G�#H�4�	6�	
������"G�")�+�#)�6�*:�#;��	rc��|jtjdd��|jtjdd��|jtjdd��|jtjdd��|jtjdd�j	d�d�|jtjd	d�j	d�d�|jtjd
d�j	d�d�|jtjdd�j	d�d�|jtjdd�j	d�d�|jtjd
d�j	d�d�|jtjdd�j	d�d�|jtjdd�j	d�d�|jtjdd��|jtjdd��|jtjdd��|jtjdd��|jtjdd��|jtjdd��|jtjdd��|jtjdd��|jtjdd��|jtjdd��|jtjdd��|jtjdd��|jtjdd��|jtjdd��|jtjdd��|j
ddd �y)!Nz	^(\w){1}$rpz
^(\w){1}?$z^(\w){1,2}$z^(\w){1,2}?$z	^(\w){3}$r^rvz^(\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}$raz^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 repeatrn)rgr;rhr6r{�
assertTruerDris r�test_repeat_minmaxzReTests.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�b�|jtjd�jd�|jtjd�jtj
tjz�|jtjd�jd�|jtjd�ji�|jtjd�jddd��|jtjdd�jd�|jtjdd�jd�|jtjdd�jd�|jtjdd�jd	�|jtjdd�j�tjd�}|jt|j�d
dg�|j|jdd�|j!t"�5d|jd<ddd�|j|jdd�y#1swY�)xYw)Nz
(?i)(a)(b)rnz(?i)(?P<first>a)(?P<other>b)r^)rm�otherr%rtr)rururmrz)r6r;r=r9�flagsr��Ur/�
groupindexrhr@rKrH�regsrw�sortedr:rA)rrWs  r�test_getattrzReTests.test_getattr�s���������L�1�9�9�<�H�������L�1�7�7��������E�������L�1�8�8�!�<�������L�1�<�<�b�A�������$B�C�N�N�#$�q�1�	3�	
������%��-�1�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�-J%�%J.c��|jtjdd�jd�d�|jtjdd�jd�d�|jtjddtj�jd�d�|jtjddtj�jd�d�|jtjddtj
�jd	�d
�|jtjdd
tj
�jd	�d
�|j
tjddtj
��|jtjdd
�jd�d�|jtjdd�jd�d�|jtjdd
tj�jd�d�|jtjddtj�jd�d�|jtjddtj
�jd	�d�|jtjddtj
�jd	�d�|j
tjddtj
��|jtjdd�jd	�d�|jtjdd�jd	�d�|jtjddtj�jd	�d�|jtjddtj�jd	�d�y)Nz\b(b.)\bzabcd abc bcd bxr^�bxz\B(b.)\Bzabc bcd bc abxdz^abc$z
abc
rrpz	^\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)r6r;rer{�ASCII�Mrg�LOCALEris r�test_special_escapeszReTests.test_special_escapes�s��������;�#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��|jddd�|jtjdd�j	�d�|jtjdd��|jtjdd�j	�d�|jtjdd	�j	�d	�|jtjdd
��|jtjdd�j	�d�|jtjdd
��|jtjdd�j	�d�|jtjdd
��tj�dD]N}|j|�5|jtjtjd|z�ddd��PdD]N}|j|�5|jtjtjd|z�ddd��Py#1swY��xYw#1swY�gxYw)Nr�zbad escape (end of pattern)rz\(r�)r�z[\]]�]�[z[a\-c]�-rQz[\^a]+za^�!ceghijklmopqyzCEFGHIJKLMNOPQRTVXYz\%c�$ceghijklmopqyzABCEFGHIJKLMNOPQRTVXYZz[\%c])rDr6r;rhr{rg�purger>r:r<r=)rrvs  r�test_other_escapeszReTests.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���!�!�"�(�(�B�J�J���
�C�!��5�8�A����a���!�!�"�(�(�B�J�J��1��E�!��8�!���!��s�3I'�)3I3�'I0	�3I<	c��|jtjdd��|jtjdd��|jtjdd��|jtjdd��|jtjdd��|jtjd	d
��|jtjd	d��|j	dd
d�|j	dd
d�|j	ddd�|j	ddd�|j	ddd�|j	ddd�|j	dd
d�|j	dd
d�|j	ddd�|j	ddd�|j	ddd�|j	dd d!�|j	d"d d�|j	d#d$d!�|j	d%d$d�|j	d&d'd!�|j	d(d'd�y))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 {rnz[\N]r_z\N{zmissing character namez[\N{r�z\N{}z[\N{}]z\NSNAKE}z
[\NSNAKE}]z\N{SNAKEzmissing }, unterminated namez
[\N{SNAKE]z[\N{SNAKE]}z!undefined character name 'SNAKE]'r^z\N{SPAM}zundefined character name 'SPAM'rz
[\N{SPAM}]z\N{KEYCAP NUMBER SIGN}z-undefined character name 'KEYCAP NUMBER SIGN'z[\N{KEYCAP NUMBER SIGN}]s\N{LESS-THAN SIGN}z
bad escape \Ns[\N{LESS-THAN SIGN}])rwr;rhrgrDris r�test_named_unicode_escapesz"ReTests.test_named_unicode_escapess��������!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	�t(�|jtjdd�jd�d�|jtjddtj�jd�d�|jtjdd�jd�d�|jtjddtj
�jd�d�|jtjdd�jd�d�|j
tjddtj��|jtjdd	��|jtjdd	tj��|jtjd
d��|jtjd
dtj
��|jtjdd��|j
tjddtj��|jtjdd
��|jtjdd
tj��|jtjd
d��|jtjd
dtj
��|jtjdd��|j
tjddtj��|j
tjdd��|j
tjddtj��|j
tjd
d��|j
tjd
dtj
��|j
tjdd��|j
tjddtj��|j
tjdd��|j
tjddtj��|j
tjd
d��|j
tjd
dtj
��|j
tjdd	��|j
tjdd	tj��|j
tjdd��|j
tjddtj
��|j
tjdd��|jtjddtj��|j
tjdd
��|j
tjdd
tj��|j
tjdd��|j
tjddtj
��|j
tjdd��|jtjddtj��|jtjdd��|jtjddtj��|jtjdd��|jtjddtj
��|jtjdd��|jtjddtj��|jtjdd��|jtjddtj��|jtjdd��|jtjddtj
��|jtjdd��|jtjddtj��|jtjdd��|jtjddtj
��|jtjdd��|j
tjddtj��|jtjdd��|jtjddtj��|jtjdd��|jtjddtj
��|jtjdd��|j
tjddtj��|jtjdd�j�d�|jtjddtj�j�d�|jtjdd�j�d�|jtjddtj
�j�d�|jtjdd�j�d�|jtjddtj�j�d�|j
tjdd��|j
tjddtj��|j
tjdd��|j
tjddtj
��|j
tjdd��|jtjddtj��|j
tjdd��|j
tjddtj��|j
tjd d��|j
tjd dtj
��|j
tjdd��|jtjddtj��|j
tjdd!��|j
tjdd!tj��|j
tjdd"��|j
tjdd"tj
��|j
tjdd!��|j
tjdd!tj��|j
tjdd"��|j
tjdd"tj
��|jttjdd#��d$�|jttjdd#tj��d$�|jttjdd%��d$�|jttjdd%tj
��d$�|jttjdd#��d&�|jttjdd#tj��d&�|jttjdd%��d&�|jttjdd%tj
��d&�|jttjdd'��d&�|jttjdd'tj��d&�|jttjdd(��d&�|jttjdd(tj
��d&�|jttjdd)��d&�|jttjdd)tj��d&�|jttjdd*��d&�|jttjdd*tj
��d&�|jttjdd'��d$�|jttjdd'tj��d$�|jttjdd(��d$�|jttjdd(tj
��d$�y)+Nz	\b(abc)\brpr^s	\b(abc)\br�u\b(ьюя)\buьюяz.\bza=s.\bsa=uя=z=as=au=яrlrEuюяz=-s=-z.\Bs.\Brs\bz.+\bs.+\b�\B�r^r^s\Br\z.+\Bs.+\Br�rrtrnrLrrr� z   s   )
r6r;rer{r�r�rgrwrhrLrfrBrVris r�test_word_boundarieszReTests.test_word_boundaries7s���������<��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�0�|jtjdd�jd�d�ddj	tttddd���z}|jtj|d	�j�d	�y)
Nu
([∢∣])u∢r^z[%s]r�r^��u!)r6r;rhr{r��mapr�r��rrMs  r�test_bigcharsetzReTests.test_bigcharset�st��������"4�"*�,�,1�E�!�H�h�	@��R�W�W�S��e�C���&<�=�>�>��������!�X�.�4�4�6��Arc���tjdjd�td�D���}|j	|jd��|j	|jd��y)Nr�c3�&K�|]	}d|z���y�w)z%dNr�)r�r2s  rr�z,ReTests.test_big_codesize.<locals>.<genexpr>�s���� >��A��a���s��'�1000�9999)r;r=r�r�rwrhr�s  r�test_big_codesizezReTests.test_big_codesize�sK���J�J�s�x�x� >��u�� >�?�@����������(���������(rc��|jtjddtj�j	d�d�|jtjddtj�j	d�d�y)Nza.bza
brza.*bza

b)r6r;rh�DOTALLr{ris r�test_anyallzReTests.test_anyall�s`��������%�����;�A�A�!�D��	!�������&�(�B�I�I�>�D�D�Q�G�!�	#rc�v�|jtjdd�jd�d�|jtjdd�jd�d�|jtjdd�jd�d�|jtjdd�jd�d�|jtjd	d
�jd�d�|jtjdd�jd�d�|jtjd
d
�jd�d�|jtjdd
�jd�d�|jtjdd�jd�d�|jtjdd�jd�d�|jtjdd�jd�d�|j	tjdd��|jtjdd��|j	tjdd��|jtjdd��|j	tjdd��|jtjdd��|j	tjdd��|j	tjdd��|jtjdd��|j	tjdd��y)Nz
(a(?=\s[^a]))�a br^rtz(a(?=\s[^a]*))z(a(?=\s[abc]))z(a(?=\s[abc]*))�a bcz(a)(?=\s\1)�a az(a)(?=\s\1*)�a aaz(a)(?=\s(abc|a))z
(a(?!\s[^a]))z(a(?!\s[abc]))za dz(a)(?!\s\1)z(a)(?!\s(abc|a))z(a)b(?=\1)ar z(a)b(?=\1)c�abacz(?:(a)|(x))b(?=(?(2)x|c))crpz(?:(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))r6r;rhr{rwrgris r�test_lookaheadzReTests.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�0�|jtjdd��|jtjdd��|jtjdd��|jtjdd��|jtjdd��|jtjdd	��|jtjd
d��|jtjdd	��|jtjdd��|jtjd
d��|jtjdd��|jtjdd��|jtjdd��|j	tj
tjd�|jtjdd��|jtjdd��|j	tj
tjd�|j	tj
tjd�|j	tj
tjd�|j	tj
tjd�y)Nz	ab(?<=b)crpz	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))rwr;rhrgr:r<r=ris r�test_lookbehindzReTests.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����"�(�(�B�J�J�0H�I����"�(�(�#;�U�C�D�������!9�5�A�B����"�(�(�B�J�J�0D�E����"�(�(�B�J�J�0M�N����"�(�(�B�J�J�0K�L����"�(�(�B�J�J�0I�Jrc���|jtjddtj�j	d�d�|jtjddtj�j	d�d�|jtjddtj�j	d�d�|jtjd	d
tj�j	d�d
�|jtjddtj�j	d�d�|jtjdd
tj�j	d�d
�|jtjd
dtj�j	d�d�|jtjddtj�j	d�d�|jtjddtj�j	d�d�|jtjddtj�j	d�d�|jtjddtj��|jtjddtj��|jtjddtj��|jtjddtj��|jtjddtj��|jtjddtj��|jtjddtj��|jtjddtj��|jtjddtj��|jtjddtj��|jtjddtj��|jtjddtj��|jtjd dtj��|jtjd dtj��|jtjd!d"tj��|jtjd#d$tj��y)%Nrp�ABCrr�sABCz	(a\s[^a])r�r^z
(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�ſrWz\u017fz\u0412�в�ᲀz\u0432�Вz\u1c80z\ufb05�stz\ufb06�ſt)r6r;rhr�r{rwris r�test_ignore_casezReTests.test_ignore_cases���������%�����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��	�|jtjddtj��|jtjddtj��|jtjddtj��|jtjddtj��|jtjddtj��|jtjddtj��|jtjddtj��|jtjddtj��|jtjd	d
tj��|jtjdd
tj��|jtjdd
tj��|jtjddtj��|jtjddtj��|jtjddtj��|jtjddtj��|jtjddtj��|jtjddtj��|jtjddtj��|jtjddtj��|jtjddtj��|jtjddtj��|jtjddtj��|jtjddtj��|jtjddtj��y)Nz[19A]r�z[19a]rts[19A]�As[19a]rLz[19K]r�z[19k]z
[19\u212a]r�r�z[19S]r�z[19s]z
[19\u017f]rrWz
[19\u0412]r�r�z
[19\u0432]r�z
[19\u1c80]z
[19\ufb05]r�z
[19\ufb06]r�)rwr;rhr�ris r�test_ignore_case_setzReTests.test_ignore_case_set+s����������3����5�6��������3����5�6��������3����5�6��������3����5�6��������D�"�$�$�7�8��������D�"�$�$�7�8��������D�"�$�$�7�8��������D�"�$�$�7�8�	
�������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�
�|jtjddtj��|j	tjddtj��|jtjddtj��|j	tjddtj��|jtjddtj��|j	tjdd	tj��|jtjd
d	tj��|j	tjd
dtj��|jtjddtj��|jtjdd
tj��|jtjddtj��|jtjdd
tj��|jtjddtj��|jtjddtj��|jtjddtj��|jtjddtj��|jtjddtj��|jtjddtj��|jtjddtj��|jtjddtj��|jtjddtj��|jtjddtj��|jtjddtj��|jtjddtj��|jtjdd tj��|jtjdd!tj��|jtjd"d#tj��|jtjd"d!tj��|jtjd$d#tj��|jtjd$d tj��|jtjd%d&tj��|jtjd'd(tj��y))Nz[9-a]�_z[9-A]s[9-a]�_s[9-A]z[\xc0-\xde]�×�÷z[\xe0-\xfe]z[\u0430-\u045f]uѐuЀz[\u0400-\u042f]z[\U00010428-\U0001044f]u𐐨u𐐀z[\U00010400-\U00010427]z[J-M]r�z[j-m]z[\u2129-\u212b]r�r�z[R-T]r�z[r-t]z[\u017e-\u0180]rrWz[\u0411-\u0413]r�r�z[\u0431-\u0433]r�z[\u1c80-\u1c82]z[\ufb04-\ufb05]r�z[\ufb06-\ufb07]r�)rwr;rhr�rgris r�test_ignore_case_rangezReTests.test_ignore_case_rangeQs����������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�	
�������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�n�|jtjdd�jd�d�y)Nz(\s)rrr^�r6r;rhr{ris r�
test_categoryzReTests.test_category�s(��������'�3�/�5�5�a�8�#�>rc���|jtjdd�jd�d�|jtjdd�jd�d�y)Nz\s([^a])� br^rQz	\s([^a]*)z bb�bb�r6r;rer{ris r�test_not_literalzReTests.test_not_literal�sN��������;��5�;�;�A�>��D�������<��7�=�=�a�@�$�Grc��ttd��j�}|jtd�5}tjd�}ddd�|jjt�|jj|�td��|jtd�5}|jtjd|�td��ddd�|j|jt�|jtjd|�td��|jtd�5}tjd�}ddd�|j|jt�|j|j|�td	��|jtd
�5}tjd�}ddd�|j|jt�|j|j|�td��|jtd
�5}tjd�}ddd�|j|jt�|j|j|�td��|jtd
�5}|jtjd|�td��ddd�|j|jt�|jtd
�5}tjd�}ddd�|j|jt�|j|j|�td��|jtjd|�td��|jtd�5}tjd�}ddd�|j|jt�|j|j|�td��|jtd�5}tjd�}ddd�|j|jt�|j|j|�td��|jtjd|�td��|jtd�5}tjd�}ddd�|j|jt�|j|j|�td��|jtd�5}tjd�}ddd�|j|jt�|j|j|�td��|jtjd|�td ��|jtd!�5}tjd"�}ddd�|j|jt�|j|j|�td#��|jtd!�5}|jtjd$|�td%��ddd�|j|jt�|jtd!�5}tjd&�}ddd�|j|jt�|j|j|�td'��y#1swY��GxYw#1swY���xYw#1swY��FxYw#1swY���xYw#1swY��dxYw#1swY���xYw#1swY���xYw#1swY���xYw#1swY���xYw#1swY���xYw#1swY��pxYw#1swY���xYw#1swY��ExYw#1swY��xYw)(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�
FutureWarningr;r=r6�filename�__file__rVr,)rrW�wrWs    r�test_possible_set_operationsz$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��^�70^!�^.�^;�_�0_�<_"�)_/�'_<�`	�`�?`#�=0`0�+`=�^�!^+�.^8�;_�_�_�"_,�/_9�<`�	`�` �#`-�0`:�=ac���|jtjdd�jd�d�|jtjdd�jd�d�y)Nz\s(b)r�r^rQza\sza rr�ris r�test_search_coveragezReTests.test_search_coverage�sN��������8�T�2�8�8��;�S�A�������6�4�0�6�6�q�9�4�@rc��|�|�|}dt|�f}n|�|�td��|||�}|j|�|j|j	�|�|j|j�|�y)Nrz@If match is not None, span should be specified (and vice versa).)rBr�rwr6r{rf)rr9�textrhrf�matcherr�s       r�assertMatchzReTests.assertMatch�s|���=�T�\��E��s�4�y�>�D�
�]�d�l��1�2�
2��G�T�"��������������E�*��������4�(rz!"%',/:;<=>@_`c�N�djd�td�D��}|D]z}|jtj|�|�|jdtj|�zdz|�|jdtj|�z|��||jtj|�|�dD]*}|jtj|�ddd	��,|j}|jtj|�|�y)
Nr�c3�2K�|]}t|����y�wr)r�r�s  rr�z)ReTests.test_re_escape.<locals>.<genexpr>�s����/�J�q�C��F�J�s�r^r�r�z(?x)z-.]{}r^r�)r�r�r�r;�escaper6�
LITERAL_CHARS)rrWrv�
literal_charss    r�test_re_escapezReTests.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��ttd��}|D]�}t|g�}|jtj|�|�|jdtj|�zdz|�|jdtj|�z|���|jtj|�|�dD]6}t|g�}|jtj|�ddd��8|jjd�}|jtj|�|�y)	Nr^�[�]s(?x)s-.]{}r^�\�ascii)r�r�r�r;r�r6r��encode)rrWr�rQr�s     r�test_re_escape_byteszReTests.test_re_escape_bytes�s����%��*����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���d}tj|�}|j||�|j||�|jdtjd�z|ddtj�y)Nuxxx☠☠☠xxxz.%s+.�☠ux☠☠☠x)rnr�)r;r�r6r�re)rrW�	s_escapeds   r�test_re_escape_non_asciiz ReTests.test_re_escape_non_ascii�s`��&���I�I�a�L�	�����A�&�����A�&�����2�9�9�X�#6�6��/�����	Drc�>�djd�}tj|�}|j||�|j	||�tj
tjdjd��|�}|jt
|�d�y)Nu	y☠y☠yzutf-8r�rn)r�r;r�r6r�rVrB)rrQ�	b_escaped�ress    r�test_re_escape_non_ascii_bytesz&ReTests.test_re_escape_non_ascii_bytessu���$�$�W�-���I�I�a�L�	�����A�&�����A�&��j�j����8�?�?�7�#;�<�a�@������S��1�%rc��ddl}tjdtj�}t	|j
dz�D]7}|j
||�}|j|�}|j||��9ddlm	}y)Nrza(?:b|(c|e){1,2}?|d)+?(.)r^)�_compile)
�pickler;r=�UNICODEr��HIGHEST_PROTOCOL�dumps�loadsr6r�)rr��oldpat�proto�pickled�newpatr�s       r�
test_picklingzReTests.test_picklingsg������7����D���6�2�2�Q�6�7�E��l�l�6�5�1�G��\�\�'�*�F����V�V�,�8�
	 rc�`�ddl}tjd�}|j|j|�|�|j|j	|�|�|jd�}|j|j|�|�|j|j	|�|�y)Nrz (?P<int>\d+)(?:\.(?P<frac>\d*))?z12.34)�copyr;r=r.�deepcopyrh)rrrWr�s    r�test_copyingzReTests.test_copyings|����J�J�:�;���
�
�d�i�i��l�A�&��
�
�d�m�m�A�&��*�
�G�G�G����
�
�d�i�i��l�A�&��
�
�d�m�m�A�&��*rc���|jtjtj�|jtjtj
�|jtjtj�|jtjtj�|jtjtj�yr)r6r;r��
IGNORECASE�Lr�r��	MULTILINErr�r��VERBOSEris r�test_constantszReTests.test_constants"sz��������r�}�}�-�������r�y�y�)�������r�|�|�,�������r�y�y�)�������r�z�z�*rc��tjtjtjtjtj
tjfD]'}|jtjd|���)tjtjtjtjtj
tjfD]'}|jtjd|���)y)Nz	^pattern$s	^pattern$)
r;r�r�r�rr�r|rwr=r
)r�flags  r�
test_flagszReTests.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	�r�dD�]r}|dk�r2|jtjd|zt|���|jtjd|zt|�dz��|jtjd|zt|�dz��|jtjd|zt|���|jtjd	|zt|�dz��|jtjd
|zt|�dz��|dkr�|jtjd
|zt|���|jtjd|zt|�dz��|jtjd|zt|�dz��|jtjd|zt|���|jtjd|zt|�dz��|jtjd|zt|�dz����u|jtjdd��|jtjdd��|jtjdd��|jtjdd��|j	ddd�|j	ddd �|j	d!d"d�|j	d#d"d�|j	d$d%d�|j	d&d%d�|j	d'd(d�|j	d)d(d�|j	d*d+d�y),N�rr��� �@�r�r�r^�r�i��r^�\%03o�\%03o0�0�\%03o8�8�\x%02x�\x%02x0�\x%02xz�zr�z\u%04xz\u%04x0z\u%04xzz\U%08xz\U%08x0z\U%08xzr�r�r�r�z\01r�z\018z8z\567�0octal escape value \567 outside of range 0-0o377rz\911�invalid group reference 91r^z\x1�incomplete escape \x1z\x1zz\u123�incomplete escape \u123z\u123zz	\U0001234�incomplete escape \U0001234z
\U0001234zz
\U00110000�bad escape \U00110000�rwr;rhr�rDr`s  r�test_sre_character_literalsz#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	���dD�]�}|dk�r�|jtjd|zt|���|jtjd|zt|���|jtjd|zt|���|jtjd|zt|���|jtjd|zt|���|jtjd|zt|���|jtjd	|zt|���|jtjd
|zt|���|dkr�|jtjd|zt|���|jtjd
|zt|���|jtjd|zt|���|jtjd|zt|���|jtjd|zt|�dz��|jtjd|zt|�dz�����|j	ddd�|j	ddd�|j	ddd�|j	ddd�|j	ddd�|j	dd d�|jtjd!d"��y)#Nrr^�[\%o]�[\%o8]�[\%03o]�[\%03o0]�[\%03o8]�[\x%02x]�	[\x%02x0]�	[\x%02xz]r�z[\u%04x]z	[\u%04x0]z	[\u%04xz]z[\U%08x]z	[\U%08x0]rz	[\U%08xz]r z[\567]r!r^z[\911]�
bad escape \9z[\x1z]r#z[\u123z]r$z[\U0001234z]r%z[\U00110000]r&z[\U0001d49c-\U0001d4b5]u𝒞r'r`s  r�!test_sre_character_class_literalsz)ReTests.test_sre_character_class_literalsOso��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	��dD�]�}|jtjd|zj�t	|g���|jtjd|zj�t	|g�dz��|jtjd|zj�t	|g�dz��|jtjd|zj�t	|g���|jtjd|zj�t	|g�dz��|jtjd	|zj�t	|g�d
z�����|jtjtjd�|jtjtjd�|jtjd
d��|jtjdd��|jtjdd��|jtjdd��|jddd�|jddd�|jddd�|jddd�y)N�rr�rrrrr�r�rr�0r�8rrr�zs\u1234s
\U00012345s\0�s\08s8s\01�s\018s8s\567r!rs\911r"r^s\x1r#s\x1z�	rwr;rhr�r�r:r<r=rDr`s  r�test_sre_byte_literalszReTests.test_sre_byte_literalsks���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�	
���"�(�(�B�J�J�
�;����"�(�(�B�J�J��?���������1�2��������(�3�4��������'�2�3��������8�4�5����x� 0�12�	4�	
���x�)E�q�I����w�(@�!�D����x�)A�1�Erc	�D�dD�]}|jtjd|zj�t	|g���|jtjd|zj�t	|g���|jtjd|zj�t	|g���|jtjd|zj�t	|g���|jtjd|zj�t	|g���|jtjd|zj�t	|g���|jtjd|zj�t	|g���|jtjd	|zj�t	|g�����|jtjtjd
�|jtjtjd�|jdd
d�|jddd�|jddd�y)Nr5r*r+r,r-r.r/r0r1s[\u1234]s[\U00012345]s[\567]r!r^s[\911]r2s[\x1z]r#r;r`s  r�test_sre_byte_class_literalsz$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�	
���"�(�(�B�J�J��=����"�(�(�B�J�J�0@�A����z� 0�12�	4�	
���z�+;�Q�?����z�+C�Q�Grc��|jddd�|jddd�|jddd�|jddd�|jddd	�|jd
dd	�|jdd
d	�y)Nr�zunterminated character setrz[^z[az[a-z[\w-b]zbad character range \w-br^z[a-\w]zbad character range a-\wz[b-a]zbad character range b-ar�ris r�test_character_set_errorsz!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�B�|jtjdd�jd�d�|jtjdd�j	d�d�|jtjdd�jd�d�y)Nz(a)|(b)rQr^r;)r;r;)r6r;rh�start�endrfris r�test_bug_113254zReTests.test_bug_113254�st��������*�c�2�8�8��;�R�@�������*�c�2�6�6�q�9�2�>�������*�c�2�7�7��:�H�Erc���|jtjdd�j�|j	tjdd�jd�|j	tjdd�j
d�|j	tjdd�j
d�|j	tjdd�jd�y)	Nz(a)?artz(a)(b)?brlr^z(?P<a>a)(?P<b>b)?bz(?P<a>a(b))z((a)))rgr;rh�	lastindexr6�	lastgroupris r�test_bug_527371zReTests.test_bug_527371�s������"�(�(�8�C�0�:�:�;�������+�d�3�=�=�q�A�������"7��=�G�G��M�������.�$�7�A�A�3�G�������(�C�0�:�:�A�>rc���|jtjdddzdz�jd�d�|jtjdddzd	zddzzd
z�jd�d�|jtjddd
zdz�jd�d�|jtjdddzdz�jd�d�y)Nz.*?cr�rlrRri!Nz.*?cdi�rv�cdei#Ni Nrp�deia�z(a|b)*?c)r6r;rhrCreris r�test_bug_418626zReTests.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��dtjd�zdz}|jtj|�xrdd�y)Nr�u‹r�r^)r;r�r6r=r�s  r�test_bug_612074zReTests.test_bug_612074�s7����	�	�(�#�#�C�'��������C��.�Q��2rc�`�|jtjdddz�jd�d�|jtjdddzdz�jd�d�|jtjdddzdz�jd�d�y)Nz(x)*iP�r2r^z(x)*yr3z(x)*?yr�ris r�test_stack_overflowzReTests.test_stack_overflow�s���	
������&�%��)�4�:�:�1�=�s�C�������'�5��9�S�=�9�?�?��B�C�H�������(�E�#�I�c�M�:�@�@��C�S�Irc��dD]9}dD]2}|j|�|��dd�|jd|�|�d�dd��4�;y)N��*�+�?z{1,2}�r�rUznothing to repeatrz(?:r�r_r�)r�reps�mods   r�test_nothing_to_repeatzReTests.test_nothing_to_repeat�sJ��*�D����&�&��s�';�':�A�?��&�&�T�3�'?�':�A�?��+rc��dD]M}dD]F}||z}dD]:}dD]3}||zdvr�||z}|jd|�|��ddt|�z��5�<�H�Oy)NrR)r�rUrT)rUrTr2zmultiple repeatr^)rDrB)r�
outer_reps�	outer_mod�outer_op�
inner_reps�	inner_mod�inner_ops       r�test_multiple_repeatzReTests.test_multiple_repeat�sr��0�J�)�	�%�	�1��"8�J�%1�	�$�z�1�Z�?�$�#-�	�#9���.�.�8�X�/N� 1�1�s�8�}�3D�F�	&2�#9�*�1rc��|jtjdd��|jtjdd��|jtjdd��|jtjdd��|jtjdd��|jtjdd��y)Nz(?:a?)*yr z(?:a?)+yz(?:a?){2,}yz	(?:a?)*?yz	(?:a?)+?yz(?:a?){2,}?y)rgr;rhris r� test_unlimited_zero_width_repeatz(ReTests.test_unlimited_zero_width_repeat�s������"�(�(�;��4�5����"�(�(�;��4�5����"�(�(�>�3�7�8����"�(�(�<��5�6����"�(�(�<��5�6����"�(�(�?�C�8�9rc��d�}d�}d�}d�}td|fd|fd|fd|fd	g�}|j|jjd
�j�|j	|jd�gd�d
f�y)
Nc��|Srr���scanner�tokens  r�s_identz%ReTests.test_scanner.<locals>.s_ident�s��E�\rc��d|zS)Nzop%sr�rfs  r�
s_operatorz(ReTests.test_scanner.<locals>.s_operator�s��v��~�(=rc��t|�Sr)�floatrfs  r�s_floatz%ReTests.test_scanner.<locals>.s_float�s��E�%�L�%8rc��t|�Sr)rzrfs  r�s_intz#ReTests.test_scanner.<locals>.s_int�s��#�e�*�#4rz[a-zA-Z_]\w*z\d+\.\d*r�z=|\+|-|\*|/)z\s+Nr�zsum = 3*foo + 312.50 + bar)	�sumzop=r_zop*�foo�op+g�s@rs�bar)r
rwrgr9r6�scan)rrirkrnrprgs      r�test_scannerzReTests.test_scanner�s���1�=�8�4��
�g�&�
�'�"�
�U�O�
�Z�(�����	
������/�/��3�;�;�<�������&B�C�)�*,�.�	/rc���dD]p}|jtjd|zd�j�d�|jtjd|zd�j�d��ry)N)r�rUrSz
((.%s):)?zr rhza:z)rrt�r6r;rhr/)r�ops  r�test_bug_448951zReTests.test_bug_448951�sf���B����R�X�X�m�B�&6��<�C�C�E�)�
+����R�X�X�m�B�&6��>�E�E�G�(�
*�rc�D�|jtjdd�j�d�|jtjdd�j�d�|jtjdd�j�d�|jtjdd�j�d�|jtjd	d�j�d�|jtjd
d�j�d�|jtjdd�j�d�|jtjd
d�j�d�y)Nz	^((a)|b)*rpr=z^(([ab])|c)*)rvrQz^((d)|[ab])*�rQNz
^((a)c|[ab])*z^((a)|b)*?cz^(([ab])|c)*?drIz^((d)|[ab])*?cz^((a)c|[ab])*?crxris r�test_bug_725106zReTests.test_bug_725106�s=��������+�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���|jtjdd�j�d�|jtjdd�j�d�y)Nz(a)(?:(?=(b)*)c)*rF)rtNz(a)((?!(b)*))*r+rxris r�test_bug_725149zReTests.test_bug_725149sR��������"5�u�=�D�D�F�$�	&�������"2�E�:�A�A�C�*�	,rc��Gd�dt�}tj|d��}|j|j	d��y)Nc��eZdZy)�+ReTests.test_bug_764548.<locals>.my_unicodeN)rrrr�rr�
my_unicoder�s�rr�rpr�)r|r;r=rgrh)rr�r�s   r�test_bug_764548zReTests.test_bug_764548s4��#��#��j�j��E�*�+�����#�)�)�E�*�+rc��tjdd�}|j|D�cgc]}|jd���c}gd��tjd�}|jddd�}|j|D�cgc]}|jd���c}gd��tjd�}|jddd��}|j|D�cgc]}|jd���c}gd��tjd�}|jddd��}|j|D�cgc]}|jd���c}gd��tjd�}|jdd	d
��}|j|D�cgc]}|jd���c}ddg�ycc}wcc}wcc}wcc}wcc}w)Nrrrrr^r�rJ)rKr@r_r�r)r;rNr6r{r=)r�iter�itemr�s    r�
test_finditerzReTests.test_finditers����{�{�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�F0�?F5�F:�3F?�
Gc�t�|jtjd�tjd��y)N�
bug_926075s
bug_926075)�assertIsNotr;r=ris r�test_bug_926075zReTests.test_bug_9260754s'��������L�1����M�2�	4rc�t�d}|jtj|�jd�gd��y)Nu[.。.。]za.b.crS)r6r;r=rr�s  r�test_bug_931848zReTests.test_bug_9318488s.��.��������G�,�2�2�7�;�&�	(rc��tjdd�}|jt|�j	�d�|jtt|�tjd�jd�}|j|j�j	�d�|j|j��y)Nz\sr�)r^rn)r;rNr6�nextrfr:�
StopIterationr=rgrerg)rr�rgs   r�test_bug_581080zReTests.test_bug_581080=s����{�{�5�%�(������d����*�E�2����-��t�4��*�*�U�#�+�+�E�2��������)�.�.�0�&�9����'�.�.�*�+rc�
�tjdd�}|jt|�j	�d�|jt|�j	�d�|jtt|�y)Nz.*�asdfrH)r�r�)r;rNr6r�rfr:r�)rr�s  r�test_bug_817234zReTests.test_bug_817234FsZ���{�{�5�&�)������d����*�F�3�����d����*�F�3����-��t�4rc���gd�}|D]7}|jtjd|�jd�|��9gd�}|D]'}|j	tjd|���)y)N)�7u๘u0z^\d$r)uⅥu〹u₂u㊴)r6r;rhr{rg)r�decimal_digitsr2�not_decimal_digitss    r�
test_bug_6561zReTests.test_bug_6561Lsh����
 �A����R�X�X�g�q�1�7�7��:�A�>� ���$�A����b�h�h�w��2�3�$rc�&�ddl}dD]�}|j|�}|jtjd�j	|��|jtjd�j	|�j
�d���y)Nr�bBuhHiIlLfdsblarr�)�arrayrgr;r=rhr6r/)rr��typecoderts    r�test_empty_arrayzReTests.test_empty_arrayask���%�H����H�%�A����b�j�j��0�6�6�q�9�:����R�Z�Z��_�2�2�1�5�<�<�>��C�&rc��d}d}tjd|ztjtjz�}|j	d|z�}|j|�tjd|ztjtjz�}|j	d|z�}|j|�tjd|ztj�}|j	d|z�}|j|�tjd|ztj�}|j	d|z�}|j|�tjd|z�}|j	d|z�}|j|�tjd|z�}|j	d|z�}|j|�tjd|z�}|j	d|z�}|j|�tjd|z�}|j	d|z�}|j|�|jtjd|z|��|jtjd|z|��|jtjd	|z|tj��|jtjd
|z|��|jtjd|z|tj��d}|j|d
z|d�tj�5tjdt�|jd|d�ddd�|jd|z|d�|jd|zdz|d�|jd|z|d�|jd|z|d�|jd|z|d�|jd|zdz|d�|jd|zdz|d�|jd|zdz|d�y#1swY��xYw) 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)r^r<sA(?i)z	(?s).(?i)r�z(?i) z (?x)r�z^(?i)z$|(?i)rnz(?:(?i)r�r_z
(^)?(?(1)(?i)r�z($)?(?(1)|(?i)r�)r;r=r�rrhrwr�rD�warnings�catch_warnings�simplefilter�BytesWarning)r�
upper_char�
lower_charrW�qr4s      r�test_inline_flagszReTests.test_inline_flagsis����
��
��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�Qc��tjd�}|j|jdd�d�|j|jdd�d�|j|jdd�d�tjdtj�}|j|jdd�d	�|j|jdd�d
�|j|jdd�d�y)zgTest that $ does not include \n
        $ matches the end of string, and just before the terminating \n�$�#za
b
za
b#
#za
b
cza
b
c#r�z#
#za#
b#
#za#
b#
c#N)r;r=r6rGrr�s  r�test_dollar_matches_twicez!ReTests.test_dollar_matches_twice�s����*�*�S�/��������S�(�3�Z�@�������S�)�4�j�A�������S�$�/��8��*�*�S�"�,�,�/��������S�(�4�k�C�������S�)�4�l�C�������S�$�/��8rc�t�tjd�}tjd�}|jt|jd�|jt|jd�|jt|j
dd�|jt|j
dd�|jt|j
dd�|jt|j
dd�|jt|j
dd�|jt|j
dd�y)Nr��.r	rQrvr
)r;r=r:rArhrG)rr��bpats   r�test_bytes_str_mixingzReTests.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��dtjfD]}tjd|tjz�}|j	|jd��tjd|�}|j	|jd����tjdtjtjz�}|j|jd��tjdtj�}|j|jd��tjdtj�}|j|jd��tjd�}|j|jd��dtjfD]}tjd|tjz�}|j|jd��tjd	|�}|j|jd����|jttjd	tj�|jtjtjd
�|jttjdtjtjz�|jttjdtj�|jttjdtj�|jtjtjd�y)
Nr�Àr�z\wu(?a)Àz(?a)\w�����\ws(?u)\wz(?u)\wz(?au)\w)r;r�r=r	rwrhr�rgr:r�r<)rr{r�s   r�test_ascii_and_unicode_flagz#ReTests.test_ascii_and_unicode_flag�s0������_�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����"�(�(�B�J�J�
�;����*�b�j�j�%����b�h�h�9N�O����*�b�j�j�)�R�X�X�F����*�b�j�j�)�R�Z�Z�H����"�(�(�B�J�J�
�;rc�B�tj�}tdd�D]�}	t|g�j	|�}|j�}||k(r�5|j
|�}t|�dk7r�U|j	|�|k7r�jtjt|g��}nd}d}tj|tjtjz�}|r |j|j!|��tjd|ztj�}|r |j|j!|��tj|tj�}|r |j#|j!|��tjdtj�}|r |j|j!|��tjd�}|r |j|j!|��tjd�}|r |j#|j!|��|j%t&tjdtj�|j%tj(tjd	�|j%t&tjd
tjtj*z�|j%t&tjdtj*�|j%t&tjdtj�|j%tj(tjd�y#ttf$rY��|wxYw)
Nr�r^r^r�s(?L)r�s(?L)\wr�z(?L)rs(?a)s(?aL))�locale�getpreferredencodingr�r�r��lowerr�rBr;r��UnicodeErrorrAr=r�r	rwrhrgr:r�r<r�)r�encr�rv�sletter�bletterr�r�s        r�test_locale_flagzReTests.test_locale_flag�st���)�)�+���s�C��A�

��1�#�J�%�%�c�*���'�'�)���a�<��!�.�.��-���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�@����"�(�(�B�J�J��7����*�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����"�(�(�B�J�J��9��=!�)�,�
��
�s#�0N�N�6N�N�N�Nc�2�|jtjdd��|jtjdd��|jtjddtj��|jtjddtj��|jtjdd��|jtjdd��|jtjdd��|jtjdd��|jtjd	dtj
��|j
d
dd�|j
d
dd�|j
ddd�|j
ddd�|j
ddd�|j
ddd�|j
ddd�|j
ddd�|j
ddd�|j
ddd�|j
ddd�|j
dd d!�|j
d"d#d�|j
d$d#d�|j
d%dd�y)&Nz(?i:a)b�Ab�aBz(?-i:a)bz
(?i:(?-i:a)b)z\w(?a:\W)\wuàààz(?a:\W(?u:\w)\W)z\W(?u:\w)\Wz(?a)(?-a:\w)z8bad inline flags: cannot turn off flags 'a', 'u' and 'L'r�z(?i-i:a)z(bad inline flags: flag turned on and offr�z(?au:a)z9bad inline flags: flags 'a', 'u' and 'L' are incompatibler�s(?aL:a)z(?-zmissing flagr_z(?-+z(?-z�unknown flagz(?-iz	missing :z(?-i)z(?-i+z(?-izz(?i:r[r�(?i�missing -, : or )z(?i+z(?iz)rwr;rhrgr	r�rDris r�test_scoped_flagszReTests.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��dD]9}|jtj|dzdtj���;dD]9}|jtj|dzdtj���;|jtjdd��|jtjddtj��|jtjdd��|jtjdd	��|jtjd
dtj��|jtjdd��|jtjd
d��|jtjd
d��y)Nz 	

rt)r��	�
�
��rLz(?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| brQ�rwr;rLr)r�spaces  r�test_ignore_spaceszReTests.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�`�|jtjddtj��|jtjddtj��|jtjdd��|jtjddtj��|jtjdd��|jtjdd	��|jtjd
dtj��|jtjdd��|jtjd
d��|jtjd
d��y)Nz#x
arts#x
arLz(?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
brQr�ris r�
test_commentszReTests.test_comments9s��������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��tjd�}|j|jdd�d�tjd�}|j|jdd�d�tjd�}|j|jd	�d
�d�tjd�}|j|jd
d�d�tjd�}|j|jd
d�d�tjd�}|j|jd�d�d�y)Nza(\w)zb\1r(r)za(.)uaሴubሴz..c��y)Nr|r�r�s rr�z'ReTests.test_bug_6509.<locals>.<lambda>Ns��5r�a5r|sa(\w)sb\1sacsbcsa(.)sa�sb�s..c��y)N�bytesr�r�s rr�z'ReTests.test_bug_6509.<locals>.<lambda>Vs��8rsa5r�)r;r=r6rGr�s  r�
test_bug_6509zReTests.test_bug_6509Fs����j�j��"����������.��5��j�j�� ����������3�Y�?��j�j�����������$�7��?��j�j��#���������%�0�%�8��j�j��!���������(�3�X�>��j�j����������!3�U�;�X�Frc�v�|jtjdd��|jtjdd��|jtjdd��|jtjdd��|jtjdd��y)Nz123.*-z123abc-u123é-u123€-u123􏿿-u
123é€􏿿-)rwr;reris r�test_search_dot_unicodezReTests.test_search_dot_unicodeXsw������	�	�(�I�6�7�����	�	�(�J�7�8�����	�	�(�L�9�:�����	�	�(�,<�=�>�����	�	�(�,F�G�Hrc�F�tjd�}|j|tj�tj|�}|j|tj�|j	||�|jttjd�y)N�random patternr)r;r=�assertIsInstance�Patternr.r:rA)rr9�same_patterns   r�test_compilezReTests.test_compile_sk���*�*�-�.�����g�r�z�z�2��z�z�'�*�����l�B�J�J�7��
�
�l�G�,����)�R�Z�Z��3rr^)�size�memusec���d|z}tjd|�}|j|�|j|j	�|�|j|j�|�y)Nrtr�)r;re�assertIsNotNoner6rBrC)rr�rWr�s    r�test_large_searchzReTests.test_large_searchisW��
�$�J���I�I�c�1������Q���������D�)��������$�'r�c��d|z}tjdd|�\}}|j||�|j||dz�y)Nrtr�r^)r;rr6)rr�rWrM�ns     r�test_large_subnzReTests.test_large_subntsG��
�$�J���w�w�r�2�q�!���1�����A������D�1�H�%rc��|jtjdd�dg�|jtjdd�j	�d�y)Nz	(?i)(a)\1uaa Ārtz
(?s).{1,3}uĀĀrm)r6r;rVrhrfris r�test_bug_16688zReTests.test_bug_16688|sE��	
������L�+�>���F�������-��@�E�E�G��Prc���ddz}|jtjd|�j�d�|jtjd|�j�d�|jtjd|�j�d�|jtjd|�j�d�|jtjd	|�j�d�|jtjd
|�j�d�|j	t
tjddd
zz�|j	t
tjddd
zz�|j	t
tjddd
zz�|j	t
tjdddzdd
zfz�y)Nr2順z.{65535})rrz	.{,65535}z
.{65535,}?z.{65536})rr�z	.{,65536}z
.{65536,}?�.{%d}rnr��.{,%d}�.{%d,}?z.{%d,%d}�)r6r;rhrfr:�
OverflowErrorr=)rrHs  r�test_repeat_minmax_overflowz#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���ddz}d}d}|jtj|dz|�j�d�|jtj|dz|�j�d�tj|dz�tj|d	z�tj|d
z�tj|dz�tj|d	z�tj|d
z�d}|jtj|tj|dz�|jtj|tj|dz�y)
Nr2i�%&z(?<=((.{%d}){%d}){%d})z(?<!((.{%d}){%d}){%d}))r�r�r�)� r�r\)�@r^r^)r^r�r^)r^r^r�zlooks too much behind)r�r�r�)r6r;rerfr=r�r<)rrH�p1�p2rAs     r�test_look_behind_overflowz!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�*�|jddd�y)Nz
(?P=<foo>)z#bad character in group name '<foo>'r�r�ris r�$test_backref_group_name_in_exceptionz,ReTests.test_backref_group_name_in_exception�s�����|�D�a�	Irc�*�|jddd�y)Nz
(?P<?foo>)z"bad character in group name '?foo'r�r�ris r�test_group_name_in_exceptionz$ReTests.test_group_name_in_exception�s�����|�C�Q�	Hrc�n�dD]�}dD]�}d|z|zdz}|jtj|tj�j	d�dg|��|j�}|jtj|tj�j	d�dg|������y)N)rSrTrUz{1}rVr��yzr�)r4r�)r6r;r=rrVr�)rrWrXr9s    r�test_issue17998zReTests.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�`�dtd�fD]b}tjd|�}dt|�j�dt|�j
�d�}|j
t|�|��ddtd�td�td�fD]b}tjd|�}dt|�j�dt|�j
�d�}|j
t|�|��dttjd	d
��\}}dt|�j�dt|�j
�d�}|j
t|�|�dt|�j�dt|�j
�d�}|j
t|�|�y)
Nz
[abracadabra]z(.+)(.*?)\1z<(z\.)?z- object; span=\(1, 12\), match='abracadabra'>s
[abracadabra]s(.+)(.*?)\1z. object; span=\(1, 12\), match=b'abracadabra'>z	(aa)|(bb)zaa bbz# object; span=\(0, 2\), match='aa'>z# object; span=\(3, 5\), match='bb'>)
rr;rer/rr�assertRegex�reprr$rMr�r,rN)rrHr�r9rmrns      r�test_match_reprzReTests.test_match_repr�sV��%�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���|jtjdd�gd��|jtjdd�gd��|jtjdd�gd��|jtjdd�gd	��|jtjdd
d�d�|jtjdd
d�d�|jtjd
dd�d�|jtjdd�gd��|jtjdd�gd��|jtj
dd�D�cgc]}|j
���c}gd��|jtj
dd�D�cgc]}|j
���c}gd��ycc}wcc}w)Nrza::bc)r�rtrr)r�z\b|:+)r�rtr�r�r)r�z(?<!\w)(?=\w)|:+)r�rtr�r)z(?<=\w)(?!\w)|:+)rtr�r)r�r�z	-a-::-bc-z-a---bc-z(\b|:+)z[\1]z[]a[][::][]bc[])r�r�rr�r�z\b|\w+)r\r�r]�r_r_�r�r�)r\rur�r)r_r�r)r6r;rrGrVrNrf�rr�s  r�test_zerowidthzReTests.test_zerowidth�s}��������%��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/�
G4c�>�dD]�}dD]�}tjd|�d|���}|jd�}|j|j	d�d�|j|j	d�d	�|j|j	d
�d�����y)N)�{0,}rSrTz{1,187})r
rSrUz^((x|y)r��xyyzyr�xyyr^r�rnr3)r;r=rhr6r{)rr]r`rMr�s     r�
test_bug_2537zReTests.test_bug_2537�s��5�H�.���J�J��8�D�E���G�G�G�$��� � ������U�3�� � ������R�0�� � ������S�1�/�6rc�n�tjd�}|j|jddd��j	�d�|j|jddd��j	�d�|j|j
ddd��j	�d�|j|jddd��d	g�|j|jdd
��gd��|j|jddd��j
�j	�d�y)
Nz(ab)�abracadabrar�r�)rHr@rK)r�r�r�r_rlr^)rHr)r�rl�	racadabra)
r;r=r6rhrfrLrerVrrgr�s  r�test_keyword_parameterszReTests.test_keyword_parameters�s���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��|jtjddtj�j	�d�y)Nz[a-c]+r�rc)r6r;rLr�rfris r�test_bug_20998zReTests.test_bug_20998s.��	
������h��r�t�t�<�A�A�C�V�Lrz-musl libc issue on Emscripten/WASI, bpo-46390c�*�tjtj�}|jtjtj|�dD]'}	tjtj|��)t
j�|j�|j�t
j�|j�|j�y#tj$r|jd|z�Y��wxYw)N��en_US.iso88591�
en_US.utf8�test needs %s locale)
r��	setlocale�LC_CTYPE�
addCleanup�Error�skipTestr;r��check_en_US_iso88591�check_en_US_utf8)r�	oldlocale�locs   r�test_locale_cachingzReTests.test_locale_cachings����$�$�V�_�_�5�	�����(�(�&�/�/�9�E�1�C�
<�� � ����#�6�2�	���
��!�!�#�����
���
������!�!�#���<�<�
<��
�
�4�s�:�;�
<�s�$C(�('D�Dc���tjtjd�|jt	j
ddtjtjz��|jt	j
ddtjtjz��|jt	j
ddtjtjz��|jt	j
dd��|jt	j
dd��|jt	j
dd��y)Nr��������(?Li)���(?Li)��(?Li)�)r�rrrwr;rhr
r�ris rrzReTests.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���tjtjd�|jt	j
ddtjtjz��|jt	j
ddtjtjz��|jt	j
ddtjtjz��|jt	j
dd��|jt	j
dd��|jt	j
dd��y)Nrr$r%r&r'r(r))	r�rrrwr;rhr
r�rgris rrzReTests.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��tjtj�}|jtjtj|�dD]'}	tjtj|��)tjtjd�t
jdtjtjz�}t
jdtjtjz�}t
jdtjtjz�}t
jdtjtjz�}|||fD]b}|j|jd��|j|jd��|j|jd	���d|j|jd
��|j|jd��|j|jd	��tjtjd�|||fD]b}|j|jd��|j|jd��|j|jd	���d|j|jd
��|j|jd��|j|jd	��y#tj$r|jd|z�Y��wxYw)Nrrrr$s[a�][a�]s
[az�][az�]s[^�][^�]s��s��s��r)
r�rrrrrr;r=r
r�rwrhrg)rr r!r�r��p3�p4rWs        r�test_locale_compiledzReTests.test_locale_compiled3sH��
�$�$�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���R���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��R���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�$L0�0'M�Mc�
�|jtj�5}tjd�ddd�j}|j|jt�|j|jd�|j|jd�|j|jd�|j|jd�|j|jt|��|jdt|��|jd|j�|jtj�5}tjd�ddd�|j}|j|jt�|j|jd�|j|jd�|jtj�5}tjdtj �ddd�|j}|j|jd�|j|jd	�|j|jd
�|j|jt|��|jdt|��|jdt|��y#1swY���xYw#1swY���xYw#1swY��xYw)
Nu(€))r_r^r�z at position 3s(�))zq
                (
                    abc
                )
                )
                (
                �Mr��z at position 77z(line 5, column 17))r:r;r<r=r?r�r9r|r6r@�lineno�colno�assertInr4�assertNotInr�r)rrBrCs   r�
test_errorzReTests.test_errorWs��
�
�
�r�x�x�
(�B��J�J�{�#�)��l�l�����c�k�k�3�/�������k�2�������!�$�������Q�'�������A�&��
�
�c�g�g�s�3�x�(��
�
�&��C��1����)�3�7�7�3�
�
�
�r�x�x�
(�B��J�J�z�"�)��l�l�����c�k�k�5�1�������j�1�������!�$�
�
�
�r�x�x�
(�B��J�J���Z�Z�

!�)��l�l��������"�%�������Q�'�������B�'��
�
�c�g�g�s�3�x�(��
�
�'��S��2��
�
�+�S��X�6�C)�
(��)�
(��)�
(�s#�K�K,�6%K9�K)�,K6�9Lc��|jddd�|jddd�|jddd�|jdd	d
�|jddd
�|jddd
�|jddd
�|jddd�|jdd	d
�|jddd
�|jdd	d�y)Nrr[rz((a|b)z(a|b))zunbalanced parenthesisr�z(?Pzunexpected end of patternr_z(?z)zunknown extension ?zr^z(?iz)r�r�r�z(?#abczmissing ), unterminated commentz(?<z(?<>)zunknown extension ?<>z(?rnr�ris r�test_misc_errorszReTests.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��|jdttj��|jdttj��y)Nr�r�)r4r|r;r�rris r�	test_enumzReTests.test_enum�s0��	
�
�
�g�s�2�4�4�y�)��
�
�h��B�D�D�	�*rc���tjdtj�}|j||�|j	||k7�tj
�tjdtj�}|jt
|�t
|��|j||�tj
�tjdtj�}|j||�tj
�tjd�}|j||�|jt�5||kddd�y#1swYyxYw)Nrp�XYZ)
r;r=r	r6�assertFalser��hash�assertNotEqualr:rA)r�pattern1�pattern2�pattern3�pattern4s     r�test_pattern_comparezReTests.test_pattern_compare�s���:�:�e�R�]�]�3��	
����8�,�����X�-�.�	���
��:�:�e�R�]�]�3������h���h��8�����8�,�	���
��:�:�e�R�]�]�3��	
���H�h�/�	���
��:�:�e�$�����H�h�/��
�
�y�
)��x��*�
)�
)�s�E"�"E+c���tjd�}tj�tjd�}|jt	|�t	|��|j||�tj�tjd�}tj�5tjdt�|j||�ddd�y#1swYyxYw)Nr�rpr<)
r;r=r�r6r>r�r�r�r�r?)rr@rArBs    r�test_pattern_compare_bytesz"ReTests.test_pattern_compare_bytes�s����:�:�f�%��	���
��:�:�f�%������h���h��8�����8�,�	���
��:�:�e�$��
�
$�
$�
&��!�!�'�<�8�����(�3�'�
&�
&�s�2-C(�(C1c�|�td�}tjd|�}tjd|�}|j|j	�d�|j|j	�d�d|dd|j|j	�d�|j|j	�d�y)Nsabcdefghs[a-h]+s[e-h]+sefghr�r)rMr;rer6r{)rrWr��m2s    r�test_bug_29444zReTests.test_bug_29444�s����k�"���I�I�i��#��
�Y�Y�y�!�
$���������K�0��������W�-���!���������F�+��������S�)rc��d}d}|jtj||�j�d�d}d}|jtj||�ddg�|jtj
||�D�cgc]}|j���c}ddg�d	}d
}|jtj||�ddg�|jtj
||�D�cgc]}|j
���c}d
dd�ddd�g�d}|jtj
||�D�cgc]}|j
���c}d
dd�ddd�g�d}|jtj
||�D�cgc]}|j
���c}d
dd�ddd�ddd�g�ycc}wcc}wcc}wcc}w)Nza	xz\b(?=(\t)|(x))x)Nr2rlz(?=(.)(.)?)rQ)rQr�r|z1(?=<(?P<tag>\w+)/?>(?:(?P<text>.+?)</(?P=tag)>)?)z<test><foo2/></test>)r��<foo2/>)�foo2r�r�rK)�tagr�rLz<test>Hello</test><foo/>�Hellorrz<test>Hello</test><foo/><foo/>)r6r;rer/rVrNro�rrWrWr�s    r�test_bug_34294zReTests.test_bug_34294�s���
����������1�a��/�/�1�;�?�
����������A�q�)�$�i�0�	2����b�k�k�!�Q�.?�@�.?��!�(�(�*�.?�@�$�k�2�	4�
A��"��������A�q�)�-�|�<�	>�������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�F<�8G�G�Gc��|jtjdd�j�d�|jtjdd�j�d�|jtjdd�j�d�|jtjdd�j�d�y)Nz	(ab|a)*?brlr&z	(ab|a)+?bz
(ab|a){0,2}?bz	(.b|a)*?brxris r�test_MARK_PUSH_macro_bugz ReTests.test_MARK_PUSH_macro_bug�s���	
������,��5�<�<�>��G�������,��5�<�<�>��G�������"2�D�9�@�@�B�F�K�������,��5�<�<�>��Grc�j�d}d}|jtj||�j�d�d}d}tj||�}|j|j	�d�|j|j	d�d�|j|j�d	�y)
N�axxzbczz(?:(?:a|bc)*?(xx)??z)*�r��xtcxyzxcz((x|yz)+?(t)??c)*)rr�rn)�r�)�xyzxcr2�t�r6r;rhr/rfrOs    r�test_MIN_UNTIL_mark_bugzReTests.test_MIN_UNTIL_mark_bug�s���
��%��������!�Q��.�.�0�'�:�
�� ���H�H�Q��N���������6�*���������F�+��������%8�9rc�X�d}d}tj||�}|j|j�d�|j|jd�d�|j|j	�d�d}d}tj||�}|j|j�d	�|j|jd�d
�|j|j	�d�|jtjdd�j	�d
�y)N�aabaabz(?:[^b]*a(?=(b)|(a))ab)*)rrWrn)r�r�rP�ababz(?:[^b]*(?=(b)|(a))ab)*rH)rnr_z(ab?)*?brlr&�r;rhr6rfr/rOs    r�test_REPEAT_ONE_mark_bugz 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�d}d}tj||�}|j|j�d�|j|jd�d�|j|j	�d�d}d}|jtj||�j	�d	�y)
Nr^z(?:.*?(?=(a)|(b))b)*rHrn�r_r�)NrQ�axxzazz(?:a*?(xx)??z)*rUr_rOs    r�test_MIN_REPEAT_ONE_mark_bugz$ReTests.test_MIN_REPEAT_ONE_mark_bug	s���
��#���H�H�Q��N���������6�*���������F�+��������[�1�����������!�Q��.�.�0�'�:rc��|jtjdd�j�d�tjdd�}|j|j	�d�|j|j	d�d�|j|j	d	�d�|j|j�d
�y)Nz	(?!(..)c)rlrz((?!(ab)c)(.))*r^rHr^rbr_)rQNrQrZrs  r�test_ASSERT_NOT_mark_bugz ReTests.test_ASSERT_NOT_mark_bug!	s���	
������,��5�<�<�>��H�
�H�H�'��0���������6�*���������F�+���������F�+��������%5�6rc��|jtd�5tjdd�ddd�|jtd�5tjdt�ddd�y#1swY�CxYw#1swYyxYw)Nz	got 'int'rZr�z
got 'type')r�rAr;rer/ris r�test_bug_40736zReTests.test_bug_40736-	s[��
�
#�
#�I�{�
;��I�I�d�A��<�
�
#�
#�I�|�
<��I�I�d�D�!�=�
<�<�
;��
<�
<�s�A0�A<�0A9�<B�cpuc	�&�ddz}tj�}dD]�}|jtj||��|jtj||�|g�|jtj||�g�|jttj||��g�|jtj|d|�|���tj�|z
}|j|d�y)Nr2i���)z\Ayz^yr�g�������?)�time�perf_counterrgr;rer6rrVr,rNrG�
assertLess)rrWrBrWrYs     r�test_search_anchor_at_beginningz'ReTests.test_search_anchor_at_beginning5	s�����I���!�!�#���A����b�i�i��1�o�.����R�X�X�a��^�a�S�1����R�Z�Z��1�-�r�2����T�"�+�+�a��"3�4�b�9����R�V�V�A�r�1�-�q�1��
����%�'��	
����3�rc�8	�|jtjdd��|jtjdd�j	d�d�|jtjdd�j	d�d�|jtjdd�j	d�d�|jtjd	d
��|jtjdd�j�d
�|jtjdd�j�d
�|jtjdd�j�d�|jtjdd�j�d�|jtjdd�j�d�|jtjdd�j�d�|jtjdd�j�d�|jtjdd�j�d�|jtjdd��|jtjdd��|jtjdd��|jtjd d�j	d!�d"�|jtjd#d�j	d!�d"�|jtjd$d�j	d!�d"�|jtjd%d��|jtjd&d��|jtjd'd��|jtjd(d��|jtjd)d��|jtjd*d��|jtjd*d+��y,)-aTest Possessive Quantifiers
        Test quantifiers of the form @+ for some repetition operator @,
        e.g. x{3,5}+ meaning match from 3 to 5 greadily and proceed
        without creating a stack frame for rolling the stack back and
        trying 1 or more fewer matches.ze*+e�eeeeze++a�eeearze?+a�eaze{2,4}+az(.)++.�eez(ae)*+a�aea)�aez
([ae][ae])?+az(e?){2,4}+a)r�z()*+artzx*+r[r\zx++r]�a*+rarbrc�a++z
^(\w){1}+$rpz^(\w){1,2}+$z
^(\w){3}+$r^rvz^(\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{}+$rvN)	rgr;rhr6r{r/rerfrwris r�test_possessive_quantifiersz#ReTests.test_possessive_quantifiersD	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���|jtjdd��|jtjdd��|jtjdd��|jtjdd��|jtjdd��|jtjdd��|jtjdd��|jtjdd��|jtjdd��|jtjdd��|jtjd	d��|jtjd
d��|jtjdd��|jtjdd��|jtjd
d��|jtjdd��|jtjdd��|jtjdd��|jtjd
d��|jtjdd��|jtjdd��|jtjdd��|jtjdd��|jtjdd��y)Nrwrtrv�a?+�a{1,3}+rlza++bza*+bza?+bza{1,3}+b�(?:ab)++�(?:ab)*+�(?:ab)?+�(?:ab){1,3}+rpz	(?:ab)++cz	(?:ab)*+cz	(?:ab)?+cz
(?:ab){1,3}+c�rwr;rLrgris r�%test_fullmatch_possessive_quantifiersz-ReTests.test_fullmatch_possessive_quantifiersk	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�|�|jtjdd�dg�|jtjdd�gd��|jtjdd�gd��|jtjdd�dg�|jtjd	d
�dg�|jtjdd
�gd
��|jtjdd
�gd��|jtjdd
�dg�y)Nrw�aabrgrv�rgr�r�rz�rtrtr�r�r{r|�ababcr^r}�r^r�r�r~�rlrlr�r�rr"ris r�#test_findall_possessive_quantifiersz+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� �tjd�}|j|jd��|j	|jd��|jtjdd��|j	tjdd��|j	tjdd��|jtjdd��|jtjd	d��y
)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)crp�abccz(?>.*).z(?>x)++raz(?>x++)z(?>x)++xz(?>x++)xN)r;r=rgrhrw)rr@s  r�test_atomic_groupingzReTests.test_atomic_grouping�	s���
�:�:�m�,�����(�.�.��/�0�������v�.�/����"�(�(�:�u�5�6��������U�3�4��������U�3�4����"�(�(�;��6�7����"�(�(�;��6�7rc���|jtjdd��|jtjdd��|jtjdd��|jtjdd��|jtjdd��|jtjdd��|jtjdd��|jtjdd��|jtjdd��|jtjdd��|jtjd	d��|jtjd
d��|jtjdd��|jtjdd��|jtjd
d��|jtjdd��|jtjdd��|jtjdd��|jtjd
d��|jtjdd��|jtjdd��|jtjdd��|jtjdd��|jtjdd��y)N�(?>a+)rt�(?>a*)�(?>a?)�
(?>a{1,3})rlz(?>a+)bz(?>a*)bz(?>a?)bz(?>a{1,3})b�(?>(?:ab)+)�(?>(?:ab)*)�(?>(?:ab)?)�(?>(?:ab){1,3})rpz(?>(?:ab)+)cz(?>(?:ab)*)cz(?>(?:ab)?)cz(?>(?:ab){1,3})cr�ris r�test_fullmatch_atomic_groupingz&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�|�|jtjdd�dg�|jtjdd�gd��|jtjdd�gd��|jtjdd�dg�|jtjd	d
�dg�|jtjdd
�gd
��|jtjdd
�gd��|jtjdd
�dg�y)Nr�r�rgr�r�r�r�r�r�r�r^r�r�r�r�r�r"ris r�test_findall_atomic_groupingz$ReTests.test_findall_atomic_grouping�	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��|jtjdd��|jtjdd��y)Nz(?s:(?>.*?\.).*)\Zza.txtz!(?s:(?=(?P<g0>.*?\.))(?P=g0).*)\Z)rwr;rLris r�test_bug_gh91616zReTests.test_bug_gh91616�	s2��������%:�G�D�E�������%I�7�S�Trc�8�|jt�5}tjd�}ddd�|j	dtj��|j	dt|j��|j	dt|j��|jdt|j��|jt�5}tjdtjtjz��}ddd�|j	dt|j��|j	dt|j��|j	dt|j��|jdt|j��|j�|j|jd��|j|jd	��y#1swY���xYw#1swY��xYw)
Nrtz
re.template()z
is deprecated�functionr)r{zre.TEMPLATE�ahoy�nope)�assertWarns�DeprecationWarningr;�templater4r|�warningr5r=�TEMPLATEr�r6rwrhr=)rrB�template_re1�template_re2s    r�-test_template_function_and_flag_is_deprecatedz5ReTests.test_template_function_and_flag_is_deprecated�	se��
�
�
�0�
1�R��;�;�t�,�L�2��
�
�o�s�2�:�:��7��
�
�o�s�2�:�:��7��
�
�j�#�b�j�j�/�2������R�Z�Z��1�
�
�
�0�
1�R�
�:�:�d�"�+�+�b�j�j�2H�I�L�2�	
�
�
�m�S����_�5��
�
�o�s�2�:�:��7��
�
�f�c�"�*�*�o�.�����S����_�5�	
����|�4�����*�*�6�2�3�����+�+�F�3�4�+2�
1��2�
1�s�H�7H�H
�Hc��|jtjdd�j�d�|jtjdd�j�d�|jtjdd�j�d�|jtjdd�j�d�|jtjdd�j�d	�|jtjd
d�j�d	�|jtjdd�j�d�|jtjdd�j�d�|jtjd
d�j�d�|jtjdd�j�d�|jtjdd�j�d�|jtjdd�j�d�|jtjdd�j�d	�|jtjdd�j�d	�|jtjdd�j�d�|jtjdd�j�d�y)Nz(?>(?:.(?!D))+)�ABCDErmz(?:.(?!D))++z(?>(?:.(?!D))*)z(?:.(?!D))*+z(?>(?:.(?!D))?)�CDEr\z(?:.(?!D))?+z(?>(?:.(?!D)){1,3})z(?:.(?!D)){1,3}+z
(?>(?:ab?c)+)�acaz
(?:ab?c)++z
(?>(?:ab?c)*)z
(?:ab?c)*+z
(?>(?:ab?c)?)rtz
(?:ab?c)?+z(?>(?:ab?c){1,3})z(?:ab?c){1,3}+rwris r�test_bug_gh106052zReTests.test_bug_gh106052�	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�Jrztest requires multiprocessingc���tjd�}d}tj|jd|f��}|j�|j
t�	|j|j�d�|j�r!|j�|j
�yy#|j�r!|j�|j
�wwxYw)Nz�(?<=[({}])(((//[^\n]*)?[\n])([\000-\040])*)*((/[^/\[\n]*(([^\n]|(\[\n]*(]*)*\]))[^/\[]*)*/))((((//[^\n]*)?[\n])([\000-\040]|(/\*[^*]*\*+([^/*]\*+)*/))*)+(?=[^\000-\040);\]}]))zja(function() {
            ///////////////////////////////////////////////////////////////////
        });r�)�target�argszpattern.sub() timed out)r;r=�multiprocessing�ProcessrGrBr�rr=�is_alive�	terminate)rr9�input_jsrWs    r�test_regression_gh94675zReTests.test_regression_gh94675�	s����*�*�H�I��
��
�#�#�7�;�;�b�(�^�L��	���	�	���}��	����Q�Z�Z�\�+D�E��z�z�|����
�������q�z�z�|����
������s�! B3�33C&r)�rrrr7rDrIrSrXrjrxrr�r�r�r�r�r�r�r�r�r�r�r�rrrrr#r0r>rCrNrXr\rarerirprtrxr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r;rLr�rH�
ascii_letters�digitsr�r�r�r�r�rrr
rr(r3r<r>r@rDrHrLrNrPrYrarcrvrzr}rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrr�r�r�r�r�r�r�r�rrr
rr�unittest�skipIfr	r
r"rrr.r6r8r:rDrFrIrPrRr[r`rdrfrhrrnrxr�r�r�r�r�r�r�r�r�r�r�rrr'r'%s��� �/�/�	�E�
1�H�""�)@�V%�
	'�A�,�. �`F�
(�@�"M�H	H�#H�JK�3J�j	6�9�4;�N�BB�**-�XR�<@�<?�>3�
M�O�?�
�"H�H3�,N�@F�&&N�PBF�HB�)�#�B�8K�4&=�P$A�L-F�^?�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�*D�:M�z9�9�<�:+:�Z;�B8�>�G�$I�4��S��#�(�$�(��S��(�&�)�&�Q�
U�Y�.I�
H�
8�0�4K�(2��$M�
�X�_�_�� ��7��$�	�$�$9�;��X�_�_�� ��7��1�	�1�@"7�HF�+� �:4�"*� 9�DH�
:�G�(;�
7�"��u�� �� �%3�N?�6	I�8�B�6	L�U�5�0K�(�X�_�_�_��,�.M�N��O�rr'c���t�5}tj|tj�ddd�|j	�S#1swYj	�SxYwr)rr;r=�DEBUG�getvalue)r��outs  r�
get_debug_outr�

s?��	�	�c�
�
�
�3����!�
��<�<�>��
��<�<�>��s�%A�A c�(�eZdZdZd�Zd�Zd�Zd�Zy)�
DebugTestsNc�x�d}d}|jt|�|�|jt|�|�y)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
�r6r�)rr��dumps   r�test_debug_flagzDebugTests.test_debug_flag
s=��*��(��R	
����s�+�T�2�	
����s�+�T�2rc�:�|jtd�d�y)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�ris r�test_atomic_groupzDebugTests.test_atomic_groupD
s������z�2�5�	rc�:�|jtd�d�y)Nrzz�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�ris r�test_possesive_repeat_onez$DebugTests.test_possesive_repeat_oneU
s������v�.�	1�		rc�:�|jtd�d�y)Nr~z�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�ris r�test_possesive_repeatz DebugTests.test_possesive_repeata
s������{�3�6�	r)rrr�maxDiffr�r�r�r�r�rrr�r�
s���G�.3�`�"
�rr�c�Z�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zy)�PatternReprTestsc�`�|jttj|��|�yr�r6rr;r=)rr9rs   r�checkzPatternReprTests.checkq
s ������b�j�j��1�2�H�=rc�b�|jttj||��|�yrr�)rr9r{rs    r�check_flagszPatternReprTests.check_flagst
s"������b�j�j��%�8�9�8�Drc�(�|jdd�y)Nr��re.compile('random pattern')�r�ris r�test_without_flagsz#PatternReprTests.test_without_flagsw
s���
�
�#�1�	3rc�F�|jdtjd�y)Nr�z+re.compile('random pattern', re.IGNORECASE))r�r;r	ris r�test_single_flagz!PatternReprTests.test_single_flag{
s�����)�2�=�=�9�	;rc��|jdtjtjztjzd�y)Nr�z@re.compile('random pattern', re.IGNORECASE|re.DOTALL|re.VERBOSE))r�r;r�rr�ris r�test_multiple_flagsz$PatternReprTests.test_multiple_flags
s.�����)�2�4�4����9�R�T�T�>�
2�	3rc���|jdtjd�|jdtjtjztjzd�y)Nr�r�z5re.compile('random pattern', re.IGNORECASE|re.DOTALL))r�r;r|r�rris r�test_unicode_flagz"PatternReprTests.test_unicode_flag�
sH�����)�2�4�4�7�	9����)�2�4�4����9�R�T�T�>�4�	5rc�(�|jdd�y)Nz(?i)patternz(re.compile('(?i)pattern', re.IGNORECASE)r�ris rr�z"PatternReprTests.test_inline_flags�
s���
�
�=�=�	?rc�r�|jddd�|jddtjzd�y)Nr�i0z&re.compile('random pattern', 0x123000)z4re.compile('random pattern', re.IGNORECASE|0x123000))r�r;r�ris r�test_unknown_flagsz#PatternReprTests.test_unknown_flags�
s8�����)�8�A�	C����)�8�B�D�D�=�B�	Drc�j�|jdd�|jdtjd�y)N�
bytes patternzre.compile(b'bytes pattern')z&re.compile(b'bytes pattern', re.ASCII))r�r�r;r�ris r�
test_byteszPatternReprTests.test_bytes�
s/���
�
�#�1�	3����)�2�4�4�A�	Crc�F�|jdtjd�y)Nr�z're.compile(b'bytes pattern', re.LOCALE))r�r;r
ris r�test_localezPatternReprTests.test_locale�
s�����)�2�4�4�B�	Drc�p�|jdd�|jdd�|jdd�y)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�ris r�test_quoteszPatternReprTests.test_quotes�
s;���
�
�3�>�	@��
�
�3�>�	@��
�
�:�E�	Grc��dddzz}ttj|��}|jt	|�d�|j|ddd�ttj|tj��}|jt	|�d�|j|ddd�|j|ddd�y)	NzVery %spatternzlong r<i,�zre.compile('Very long long loni�z, re.IGNORECASE))rr;r=rmrBr6r�)rr9rMs   r�test_long_patternz"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��|jttj�d�|jttjtjztj
z�d�|jttjtjztj
zdz�d�|jttj�d�|jttjtjztj
z�d�|jttjtjztj
zdz�d�y)Nz
re.IGNORECASEz"re.IGNORECASE|re.DOTALL|re.VERBOSEiz+re.IGNORECASE|re.DOTALL|re.VERBOSE|0x100000zTre.ASCII|re.LOCALE|re.UNICODE|re.MULTILINE|re.DOTALL|re.VERBOSE|re.TEMPLATE|re.DEBUGz?re.ASCII|re.LOCALE|re.UNICODE|re.MULTILINE|re.TEMPLATE|re.DEBUGzGre.ASCII|re.LOCALE|re.UNICODE|re.MULTILINE|re.TEMPLATE|re.DEBUG|0xffe00)r6rr;r�rr�ris r�test_flags_reprz PatternReprTests.test_flags_repr�
s�������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��f�	h�	
�������R�T�T�	�"�$�$��/�0�Z�	\��������R�T�T�	�"�$�$��� 6�7�8�b�	drN)rrrr�r�r�r�r�r�r�r�r�r�r�r�r�r�rrr�r�p
sI��>�E�3�;�3�
5�?�D�C�D�G�6�drr�c��eZdZdZed��Zd�Zd�Zed��Zd�Z	ed��Z
ed��Zed	��Zed
��Z
y)�ImplementationTestz7
    Test implementation details of the re module.
    c��|jt�5dtj_ddd�|jt�5dtj
_ddd�|jt�5tjd�}t|jd��}d|_ddd�y#1swY��xYw#1swY�jxYw#1swYyxYw)Nr^r�)	r:rAr;�Matchrrr�r=r/rg)rr��tps   r�test_immutablez!ImplementationTest.test_immutable�
s����
�
�y�
)��B�H�H�L�*�
�
�
�y�
)��B�J�J�N�*�
�
�
�y�
)��*�*�R�.�C��c�k�k�"�o�&�B��B�F�*�
)�	*�
)��
)�
)��
)�
)�s#�B<�	C�<7C�<C�C�Cc�j�tjj}|j|d�g�|j|d�dg�|j|d�gd��|j|d�gd��|j|d�gd	��|j|d
�gd��y)Nr�rtrrI)rrrr�aaaa)rr^rnr_�ababba)rrr^rnrr^�abcabdac)rrrr^rnrr^r)r;�	_compiler�_generate_overlap_tabler6)r�fs  r�test_overlap_tablez%ImplementationTest.test_overlap_table�
s����L�L�0�0������2���#�����3��!��%�����6��L�1�����6��L�1�����8��&8�9�����:��(@�Arc��|jtjjd�|jtjjd�y)Nr)�assertGreaterEqualr;r��	MAXREPEATrcris r�test_signednessz"ImplementationTest.test_signedness�
s6�������� 6� 6��:������� 6� 6��:rc���t|tj�t|tj�tjd�}t|t|j
d���y)Nr�)rr;r�r�r=r/rgr�s  r�test_disallow_instantiationz.ImplementationTest.test_disallow_instantiation�
sD��	%�T�2�8�8�4�$�T�2�:�:�6��j�j��n��$�T�4����B��+@�Arc	��gd�gd�gd�d�}|D�]Q}|j|��5tjj|d�|j	t
�5}t
|�ddd�|jtj�d|�d��|j|jt�|j|tj�tj|}|j|j|�|j|jd�||D]}|jt!||���tj|=ddd���Ty#1swY��xYw#1swY��lxYw)	N)r=r<�SRE_FLAG_IGNORECASE�
SUBPATTERN�
_compile_info)r<rr�_NamedIntConstant)�
SubPattern�parserr�
_parse_sub)�sre_compile�
sre_constants�	sre_parse)�modulezmodule z is deprecatedr�)r>�sys�modules�popr�r��
__import__r6r|r�r�r�r4r�__package__rw�hasattr)r�
deprecated�namer�rX�attrs      r�test_deprecated_modulesz*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�&�t�,�D��O�O�G�C��$6�7�-��K�K��%�+�*��:�9��+�*�s$�6E1�E%�'C2E1�%E.�*E1�1E;	c���ddl}td�D]�}t|�}t|j	��}|j|j
|�|�|j|j|�|�|tjv}|j|j|�|�|j|j|�|���ttdd��ddgzD]�}t|�}|j|j
|�|�|dk7r8|j|j|�t|j	���||j	�k7xs||j�k7}|j|j|��|j|j|�||j	�k7xs||j�k7���|j|j
d�d�|j|jd�td��|j|jd��|j|jd��y)Nrr�iii(i0r�)�_srer�r��ordr�r6�
ascii_tolower�unicode_tolowerrHr��
ascii_iscased�unicode_iscasedr,�upperr=rw)rrr�rv�lo�iscaseds      r�test_case_helpersz$ImplementationTest.test_case_helperss�����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��1�7�7�9�n�6��Q�W�W�Y��G����T�/�/��2�3����T�1�1�!�4��!�'�'�)�^�=�q�A�G�G�I�~�
?�?�	
����+�+�F�3�V�<�����-�-�f�5�s�3�x�@�����+�+�F�3�4�����,�,�V�4�5rc	���ddl}ddz}|jttjdi�|jt
�5|j
dd|gdid�ddd�|jt�5|j
idgdgg�ddd�|jt�5|j
dddgdid�ddd�y#1swY�sxYw#1swY�KxYw#1swYyxYw)Nrrnr�rtrpr�r�)rr:rAr;rNr�r=)rr�
long_overflows   r�test_dealloczImplementationTest.test_deallocs���	�
�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�.C'�C�C$�'C0c�n�	ddlm}ddz}|j	tjddz
z|��|jtjd|dz
z|�j�d	�|j	tjd
|dz
z|��|jtt
jd|z�|jtt
jd|z�|jtt
jd
|z�y#t$r|jd�Y��+wxYw)Nr)r�z requires _sre.MAXREPEAT constantr2r�r�r^r�)rr�r�)rr��ImportErrorrrgr;rhr6rfr:r�r=)rr�rHs   r�%test_repeat_minmax_overflow_maxrepeatz8ImplementationTest.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�D4�3D4c��ddl}|jt�5}|jdgd��ddd�|j	dtj��|jt�5}|jdgd��ddd�|j	dt|j��y#1swY��xYw#1swY�;xYw)Nrr�)r�r;r�zinvalid template)r�r�r�zan integer is required)rr:rAr�r4r|r?)rrrBs   r�%test_sre_template_invalid_group_indexz8ImplementationTest.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�4B=�C	N)rrr�__doc__rr�r�r�r�rrr"r%r'r�rrr�r��
s�����	��	�B�;��B��B�&�6�6��6�4�4��4�"�M��M��C��Crr�c��eZdZd�Zd�Zy)�
ExternalTestsc��ddlm}|D�]B\}}|j||��5tj|�}|j|j
|��|j|j|��|j|j|��ddz|zddzz}|j|j
|��|j|j|d��|j|j|ddt|�z��|j|j|ddt|�z��ddd���Ey#1swY��QxYw)zre_tests benchmarksr)�
benchmarks�r9rHrrr�N)
�
test.re_testsr,r>r;r=rwrerhrLrB)rr,r9rWrW�s2s      r�test_re_benchmarksz ExternalTests.test_re_benchmarksKs���,�$�J�G�Q����g�a��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�	�ddlm}m}m}|D�]�}dx}x}x}x}}	t	|�dk(r	|\}}}}}	n!t	|�dk(r|\}}}ntd|��|j
||��5||k(rG|jtj�5tj|�ddd�	ddd���tj|�}
|
j|�}||k(r|j|d�	ddd���|j
�5|j|d	�|jd�\}}
|jd�|j�|jj d
�}t#dd�D] }	|j|�}|�d
}||d|z<�"|jj&j)�D]}	|j|�}|�d
}|||<�|j+t-||�|	d�ddd�	t/|d�}t/|d�}|j
d�5tj|�}
|j|
j|��ddd�|j
d�5tj|tj0�}
|
j|�}|�t3d|�ddd�|dddk7r^|dddk7rV|�T|j
d�5tj|�}
|j|
j|
dz��ddd�|j
d�5tj|tj6�}
|j|
j|��ddd�|j
d�5tj|tj8�}
|j|
j|��ddd�ddd����y#1swY��TxYw#t$$rd}Y���wxYw#t$$rd}Y��LwxYw#1swY��.xYw#1swY���xYw#1swY���xYw#t4$rY���wxYw#1swY��:xYw#1swY��xYw#1swY��xYw#1swY��}xYw)zre_tests test suiter)�tests�FAIL�SYNTAX_ERRORNr�r_z%Test tuples should have 3 or 5 fieldsr-zSucceeded incorrectlyzFailed incorrectly)�foundr/r{r^�d�Nonerzg%dzgrouping errorr�zbytes pattern matchzlocale-sensitive matchz#=== Fails on locale-sensitive matchrnr����zrange-limited matchzcase-insensitive matchzunicode-sensitive match)r.r2r3r4rBr�r>r:r;r<r=rergrwrfr{r{r�r�r}�keysr6�evalr�r��print�UnicodeEncodeErrorr	r�)rr2r3r4rYr9rW�outcomerFr�obj�resultrBrC�vardictr��gir��bss                   r�
test_re_testszExternalTests.test_re_testsZs���;�;��A�6:�:�G�:�a�:�'�:�D�8��1�v��{�67�3���G�T�8��Q��1��&'�#���G� �!H�!�L�L����g�a��8��l�*��*�*�2�8�8�4��
�
�7�+�5��	9�8��j�j��)�����A����d�?��%�%�f�.E�F��9�8��\�\�^��O�O�F�,@�A�"(���Q��J�E�3�(.���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��5�4��0 *�)�!(�B�)�� *�)�!(�B�)��-$�^��J=�<��@�?��*�����,=�<��<�;��=�<��_9�8�s0�&%R�O3�!	R�3>R�:R�
A-P$�8P�
1P$�?P�$P$�8R�Q�R�*6P1� R�9AP>�=+R�(;Q�#R�<AQ(�R�AQ4�R�3O=�8R�P�P$�P�P$�P!�P$� P!�!P$�$P.�)R�1P;�6R�>Q�R�	Q�R�Q�R�Q%� R�(Q1�-R�4Q=�9R�R
	N)rrrr0rCr�rrr*r*Is��
H�]3rr*�__main__)%�test.supportrrrrrrr	r
rrr�r;rHrrkr�r�r
�weakrefr�_multiprocessingr�r$r|rr�r$�TestCaser'r�r�r�r�r*r�mainr�rr�<module>rJs��<�<�<��	�
�
���������-��-�-��-�b'�h���b'�JO��\��"�"�\��\�~Md�x�(�(�Md�`FC��*�*�FC�Rn3�H�%�%�n3�b�z���H�M�M�O���Q]���O��s�C)�)C3�2C3

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists