HEX
Server: Apache
System: Linux bd12.noc223.com 4.18.0-553.121.1.lve.el8.x86_64 #1 SMP Thu Apr 30 16:40:41 UTC 2026 x86_64
User: handcraf (1693)
PHP: 8.1.28
Disabled: NONE
Upload Files
File: //opt/alt/python312/lib64/python3.12/test/__pycache__/test_re.cpython-312.opt-2.pyc
�

h�e�����ddlmZmZmZmZmZmZmZmZm	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlmZddlmZ	ddlZddlZGd�de�ZGd�de�ZGd	�d
ej6�Zd�ZeGd�d
ej6��ZGd�dej6�ZGd�dej6�Z Gd�dej6�Z!e"dk(rejF�yy#e$rdZY��wxYw)�)	�
gc_collect�
bigmemtest�_2G�cpython_only�captured_stdout�check_disallow_instantiation�
is_emscripten�is_wasi�
SHORT_TIMEOUTN)�Scanner)�proxyc���eZdZ�fd�Z�xZS)�Sc�4��tt�|�	|��S�N)r�super�__getitem__��self�index�	__class__s  ��3/opt/alt/python312/lib64/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�z�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�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    ���rr4z)ReTests.assertTypedEqual.<locals>.recurse)sN����&�5�$�-�0����/�"�D�A�q��A�q�M�"��
�
�d�6�l�D��L�#�>r)�assertEqual)rr/r0r3r4s`  `@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�	exceptionr5r3�pos)rr8�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)r8�repl)	r9r:r;�subr=r>r5r3r?)rr8rE�stringr@r?rArBs        r�checkTemplateErrorzReTests.checkTemplateError:s���
�
�
�r�x�x�
(�	*�B��F�F�7�D�&�)�	*�
�\�\�'��\�
5�	/��,�,�C����S�W�W�f�-���� � ����#�.�		/�	/�	*�	*��	/�	/�s�B#�AB/�#B,�/B8c�
�td�}tjd|�}|jt�5|jd�ddd�t
|�~t�|jd�y#1swY�1xYw)N�x�as�xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)�	bytearrayr:�finditerr9�BufferError�extendr+r)r�b�its   r�test_keep_bufferzReTests.test_keep_bufferCse���d�O��
�[�[��q�
!��
�
�
�{�
+�	�
�H�H�X��	��R�����	�����	�	�s�A9�9Bc��d}tjd�}t|�}|j|j	d�|j	d��y)N�QabbbcRzab+c)r:r<r
r5�findall)r�sr1r2s    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+���r1�aaaza*�xxx�xxxa�rr^�a+)r5r:�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)Nz(ab|ba)�ab�r��baz(abc|bac|ca|cb)�abcrb�bac�ca�cbz
((a)|(b)|(c))�a�rr]rP�c�r5r:rgrerhs r�test_branchingzReTests.test_branching`s[��	9�������)�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)6Nr2rs�xyz�xaz�yrK�xyzsxaz��àuаu𝒜zx%sz�(?i)b+r1�	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>���rr��
z\1\1z(.)�xx�\�\\c����Srr�)r�rVs �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)r6r:rFrr#rL�
memoryviewr5r~�replace�chrr=r9r;)rr2rurVs   @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��?�	@�	
�������#�{�;�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�?�	K�A����a��
K��&�&�r�x�x�0�K��$�$�R�V�V�C����3�%?����J�K�
K�
K�	K�
	
��������f�5�w�?�K�K��
K�
K�s$� T.�:.T"�(T.�"T+�'T.�.T7	c�R�|jtjddd�d�y)Nr�z\g<1>\g<1>\br�zxxxx�r5r:rFrhs 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�rhs 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<r9�
ValueErrorrg�IrdrU�rr8s  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<rhs 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):Nr1�\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)r5r:rFrHrhs 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)NrsrP�aaaaa�bbbbbr]�baaaar�r�rhs 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�rhs 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�A��!�Q��/�K���r]��z(?:%s)(?(200)z|t)�xc8yz�r�)r:r<�join�ranger5rgre�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)�rCrhs 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)r5r:rFr�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 <rmz\g<a a>z!bad character in group name 'a a'z\g<>z\g<1a1>z!bad character in group name '1a1'z\g<2>�invalid group reference 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 '१')rH�assertRaisesRegex�
IndexErrorr:rFrhs 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�	0��F�F�:�y�$�/�	0����
�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�%	0�	0�s�?F�F&c���|jtjddd�d�|jtjddd�d�|jtjddd�d�|jtjd	dd�d
�|jtjd	ddd�d�|jtjd	ddd�
�d�y)Nr�r1r�)r�rmzb+)zx BBBBr]r�)r�rzb*)�xxxyxzxr�rm)�xxxyzrmr�)r5r:�subnrhs 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�rsrPr�ru�:+)r�rsrPru�(:+))r�rrsrrP�::rus:a:b::c�:)rrK�br�c�:+)rrKr	r
�(:+))rrrKrr	�::r
)uàßçuабвu𝒜𝒞𝒵rr�z(?::+)z(:)+)r�rrsrrPrruz([b:]+))r�rrsz:b::ruz(b)|(:+))
r�NrrsNrr�rPNr�Nrruz(?:b)|(?::+))r�rsr�r�ruz:*)r�r�rsr�rPr�rur�z(?::*)�(:*))r�rr�r�rsrr�r�rPrr�r�rur�r�z(:)*)r�rr�Nrsrr�NrPrr�NruNr�)�sep)	r�rrsrrPrrrur��\b)rrsrrPrrur�z(?=:))r�z:az:brz:cz(?<=:))r�a:zb:rru)	rr6r:�splitr#rLr�r5r=)rrGrsrPrur�expecteds       r�
test_re_splitzReTests.test_re_split^sA����9��-�	G�F��!�!�"�(�(�3��"7�"9�
;��!�!�"�(�(�4��"8�"5�
7��!�!�"�(�(�6�6�":�"E�
G�	G�"�1�Z�=�)�J�2G�!�*�-�/�	N�F��!�!�"�(�(�4��"8�">�
@��!�!�"�(�(�5�&�"9�"9�
;��!�!�"�(�(�7�F�";�"L�
N�
	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�
�_�`�	
�	J�M�C�����#��&�
J��%�%�b�h�h�s�I�&>��I�
J�
J�
	J��<�=�
�7�8�
�2�3�
�3�4�	
�	J�M�C�����#��&�
J��%�%�b�h�h�s�I�&>��I�
J�
J�
	J�
J�
J��
J�
J�s�7'M�'M�M	�M	c��|jtjddd�gd��|jtjddd��gd��|jtjddd��gd��|jtjddd��gd	��|jtjd
dd��gd	��|jtjddd��gd��y)
Nrrrm)r�rs�b::c)�maxsplitza:b:c:d)rsrPzc:dz(:))r�rrsrrrr)r�rr�r�za:b::c)r5r:rrhs 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)Nrro�
a:b::c:::d�rrz:::rz(:)(:*)))rr�)rr)rrs
a:b::c:::dr)rr
s:::rs(:)(:*)))rr)rr)rr
r�rmr^rsrPru�dz%s+z(%s+)�(z)(z*)r�)r5r:rUrr6r#rLr�)rrGr1r�r`s     r�test_re_findallzReTests.test_re_findall�s���������D�%�0�"�5�"�A�l�O�3�	H�F��!�!�"�*�*�T�6�":�"4�
6��!�!�"�*�*�V�V�"<�"4�
6��!�!�"�*�*�Y��"?�"F�
H�	H�%�a�
�&6�	�-�8P�!�-�0�2�	N�F��!�!�"�*�*�U�F�";�"7�
9��!�!�"�*�*�W�f�"=�"7�
9��!�!�"�*�*�Z��"@�"L�
N�
	N�2�	9�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�
	9rc�T�|jtjdd�gd��y)Nz(a|(b))�aba)�rsr�)rPrPr!�r5r:rUrhs 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)!Nrsr��(a)�rsrr]�rsrsrKs(a))rK)rKrKr�z(%s)z
((a)|(b))(c)?)rsrsNNrP)rPNrPN�ac)rsrsNru�bc)rPNrPrur�)rPr�rPru�!(?:(?P<a1>a)|(?P<b2>b))(?P<c3>c)?rmr^�rsNN�a1�b2�c3)NrPN)rsNru)
rr5r:rg�groupsrzr#rLr�r<)rrGrsr�s    r�
test_re_matchzReTests.test_re_match�s����1�S�6�k�	N�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�	N��A�d�G�Y�t�_�j��6F�F�	Q�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�	Q�2�	J�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�	J��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��|jSrr5rhs r�	__index__z+ReTests.test_group.<locals>.Index.__index__�s���z�z�!rN)rrrr7r9r�rr�Indexr3�s��
#�
"rr:z(a)(b)rkrr]rs���r^��r1rm�rPrs)r:rgr5rzr9r�)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*rsr,r-r.za1={a1} b2={b2} c3={c3}za1=a b2=None c3=Nonerr]rmr^z
no such groupr�r;r�rt)rza1={a2}r(ruza1=a b2=None c3=c)
r:r<rgr5�
format_mapr�r�r9�	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�	�
�
#�
#�J��
@�	�
�b�E�	�
�
#�
#�J��
@�	�
�a�D�	�
�
#�
#�J��
@�	�
�d�G�	�
�
#�
#�J��
@�	�
�d�G�	�
�
#�
#�J��
@�	�
�f�I�	�
�
#�
#�J��
@�	$�� � ��#�	$�
�I�I�d�O������4��#�&�����4��$�'�����4��#�&����2�=�=�a�@�BU�V�����1��t�$�����1��s�#�����1��t�$�����1��s�#��
�
�y�
)�	��A�a�D�	�	
���)�S�!�,�=	�	��	�	��	�	��	�	��	�	��	�	��	$�	$��	�	�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) Nrsrtrkza|abrlsabsa|ab)uàßuабu𝒜𝒞r�z.*?$rorbz.*?za.*?b�abb�axxb�rr�rczabc$zabc
zabc\Zz(?m)abc$z	ab(?=c)cd�abcdz
ab(?<=b)cdz
(?=a|ab)abr)r]r^�r?�endposr\)
r5r:�	fullmatchrerr#rLr�rfr<)rrGrsrP�rs     r�test_re_fullmatchzReTests.test_re_fullmatchs(��������d�C�0�5�5�7��@��A�d�G�m�	K�F����R�\�\�'�6�:�?�?�A�6�J�	K��Q�u�X�y��'7��E�9J�J�	L�F����R�\�\�(�F�;�@�@�B�F�K�	L�F�	D�D�A�q��q�1�u�%�A����R�\�\�!�Q��U�3�8�8�:�F�C�	D�	
������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%)rrsrs�Nrsza)z(az^(?:(a)|c)((?(1)b|d))$rk�rsrP�cd)Nrz^(?:(a)|c)((?(1)|d))$r!z(?P<g1>a)(?P<g2>b)?((?(g2)c|d))ro�rsrPru�ad)rsNr�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�)	r5r:rgr/rfr<r�r�re)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 subpatternrmz
()(?(1)a|bz()(?(1)a|b|cz/conditional backref with more than two branchesz
()(?(1)a|b|c)z	()(?(2)a)r�r�rhs 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_bugysO���s��	3�A����1��%�
3��
�
�-��1�2�
3�
3�	3�
3�
3�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._constantsrbrHrC)rrbs  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�rsz^(\|)?([^()]+)\1?$rsrOza|z|az^(?:(a)|c)(\1)$�aar'z^(?:(a)|c)(\1)?$ru�NNz(abc\1)r�r�)r5r:rgr/rfrCrhs 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)rlrm)r5r:rg�	groupdictrhs r�test_groupdictzReTests.test_groupdict�s0��������"G�"0�2�2;�)�+�")�H�=�	?rc���|jtjdd�jd�d�|jtjdd�jd�d�y)	Nrjrkz\2 \1 \g<second> \g<first>zsecond first second firstz#(?P<first>first)|(?P<second>second)rlz
\2 \g<second>� )r5r:rg�expandrhs 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}$roz
^(\w){1}?$z^(\w){1,2}$z^(\w){1,2}?$z	^(\w){3}$r]ruz^(\w){1,3}$z^(\w){1,4}$z^(\w){3,4}?$z
^(\w){3}?$z^(\w){1,3}?$z^(\w){1,4}?$z^x{1}$r`z^x{1}?$z^x{1,2}$z	^x{1,2}?$z^x{3}$z^x{1,3}$z^x{3,3}$z^x{1,4}$z	^x{3,4}?$z^x{3}?$z	^x{1,3}?$z	^x{1,4}?$z^x{}$�x{}zx{2,1}z"min repeat greater than max repeatrm)rfr:rgr5rz�
assertTruerCrhs 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)rmz(?i)(?P<first>a)(?P<other>b)r])rl�otherr%rsr)rtrtrlry)r5r:r<r8�flagsr��Ur/�
groupindexrgr?rJrG�regsrv�sortedr9rA)rrVs  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
rroz	^\Aabc\Z$s\b(b.)\bsabcd abc bcd bxsbxs\B(b.)\Bsabc bcd bc abxds^abc$s
abc
�abcs	^\Aabc\Z$z\d\D\w\W\s\Sz1aa! as\d\D\w\W\s\Ss1aa! a)r5r:rdrz�ASCII�Mrf�LOCALErhs 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]�-rPz[\^a]+za^�!ceghijklmopqyzCEFGHIJKLMNOPQRTVXYz\%c�$ceghijklmopqyzABCEFGHIJKLMNOPQRTVXYZz[\%c])rCr5r:rgrzrf�purger=r9r;r<)rrus  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�	D�A����a��
D��!�!�"�(�(�B�J�J���
�C�
D�
D�	D�8�	F�A����a��
F��!�!�"�(�(�B�J�J��1��E�
F�
F�	F�
D�
D��
F�
F�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 {rmz[\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}])rvr:rgrfrCrhs 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��|jtjdd�jd�d�|j	tj
dd��|j	tjdd��|j
tj
dd��|jtjdd��|jtjdd��|jttjdd��d�|jttjdd��d	�|jttjdd
��d	�|jttjdd��d	�|jttjdd
��d�y)Nz	\b(abc)\bror]r�\Br�rsrmrrqz   )
r5r:rdrzrvrg�assertFalserfrBrUrhs r�test_string_boundarieszReTests.test_string_boundaries7sL��������<��7�=�=�a�@��	 �	
��������.�/�����	�	�%��/�0�������%��/�0�	
���"�)�)�E�2�.�/�	
���"�)�)�E�2�.�/�	
����R�Z�Z��s�3�4�a�8�����R�Z�Z��s�3�4�a�8�����R�Z�Z��s�3�4�a�8�����R�Z�Z��u�5�6��:�����R�Z�Z��s�3�4�a�8rc�0�|jtjdd�jd�d�ddj	tttddd���z}|jtj|d	�j�d	�y)
Nu
([∢∣])u∢r]z[%s]r�r]��u!)r5r:rgrzr��mapr�r��rrLs  r�test_bigcharsetzReTests.test_bigcharsetQst��������"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�r1s  rr�z,ReTests.test_big_codesize.<locals>.<genexpr>Ys���� >�A��a�� >�s��'�1000�9999)r:r<r�r�rvrgr�s  r�test_big_codesizezReTests.test_big_codesizeWsK���J�J�s�x�x� >��u�� >�?�@����������(���������(rc��|jtjddtj�j	d�d�|jtjddtj�j	d�d�y)Nza.bza
brza.*bza

b)r5r:rg�DOTALLrzrhs 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]rsz(a(?=\s[^a]*))z(a(?=\s[abc]))z(a(?=\s[abc]*))�a bcz(a)(?=\s\1)�a az(a)(?=\s\1*)�a aaz(a)(?=\s(abc|a))z
(a(?!\s[^a]))z(a(?!\s[abc]))za dz(a)(?!\s\1)z(a)(?!\s(abc|a))z(a)b(?=\1)ar z(a)b(?=\1)c�abacz(?:(a)|(x))b(?=(?(2)x|c))croz(?:(a)|(x))b(?=(?(2)c|x))cz(?:(a)|(x))b(?=(?(1)b|x))cz(?:(a)|(x))b(?=(?(1)c|x))cz(a)b(?=(?(2)x|c))(c)z(a)b(?=(?(2)b|x))(c)z(a)b(?=(?(1)c|x))(c))r5r:rgrzrvrfrhs r�test_lookaheadzReTests.test_lookaheadcs���������"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)croz	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))rvr:rgrfr9r;r<rhs r�test_lookbehindzReTests.test_lookbehinds����������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)%Nro�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�ſrVz\u017fz\u0412�в�ᲀz\u0432�Вz\u1c80z\ufb05�stz\ufb06�ſt)r5r:rgr�rzrvrhs r�test_ignore_casezReTests.test_ignore_case�s���������%�����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]rss[19A]�As[19a]rKz[19K]r�z[19k]z
[19\u212a]r�r�z[19S]r�z[19s]z
[19\u017f]rrVz
[19\u0412]r�r�z
[19\u0432]r�z
[19\u1c80]z
[19\ufb05]r�z
[19\ufb06]r�)rvr:rgr�rhs 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]rrVz[\u0411-\u0413]r�r�z[\u0431-\u0433]r�z[\u1c80-\u1c82]z[\ufb04-\ufb05]r�z[\ufb06-\ufb07]r�)rvr:rgr�rfrhs r�test_ignore_case_rangezReTests.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�	
�������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)rqr]�r5r:rgrzrhs r�
test_categoryzReTests.test_categorys(��������'�3�/�5�5�a�8�#�>rc���|jtjdd�jd�d�|jtjdd�jd�d�y)Nz\s([^a])� br]rPz	\s([^a]*)z bb�bb�r5r:rdrzrhs r�test_not_literalzReTests.test_not_literalsN��������;��5�;�;�A�>��D�������<��7�=�=�a�@�$�Grc��
�ttd��j�}|jt�5tjd�}ddd�|jj|�td��|jtjd|�td��|jt�5tjd�}ddd�|j|j|�td��|jt�5tjd�}ddd�|j|j|�td	��|jt�5tjd
�}ddd�|j|j|�td��|jt�5tjd�}ddd�|j|j|�td��|jtjd
|�td��|jt�5tjd�}ddd�|j|j|�td��|jt�5tjd�}ddd�|j|j|�td��|jtjd|�td��|jt�5tjd�}ddd�|j|j|�td��|jt�5tjd�}ddd�|j|j|�td��|jtjd|�td��|jt�5tjd�}ddd�|j|j|�td��|jt�5tjd�}ddd�|j|j|�td��y#1swY���xYw#1swY��xYw#1swY���xYw#1swY��txYw#1swY��$xYw#1swY���xYw#1swY��UxYw#1swY���xYw#1swY���xYw#1swY��xYw#1swY��xYw)N�z[0-9--1]z
-./0123456789z[--1]z-./01z[%--1]z
%&'()*+,-1z[%--]z	%&'()*+,-z[0-9&&1]z&0123456789z[\d&&1]z[&&1]z&1z[0-9||a]z0123456789a|z[\d||a]z[||1]z1|z[0-9~~1]z0123456789~z[\d~~1]z[~~1]z1~z[[0-9]|]z0123456789[]z[[:digit:]|]z:[]dgit)
�bytesr��decode�assertWarns�
FutureWarningr:r<r5rUr+)rrVrVs   r�test_possible_set_operationsz$ReTests.test_possible_set_operationss����%��*��$�$�&��
�
�
�m�
,�	(��
�
�;�'�A�	(�������1��t�O�'<�=�������H�a�0�$�w�-�@�
�
�
�m�
,�	&��
�
�9�%�A�	&�������1��t�L�'9�:�
�
�
�m�
,�	%��
�
�8�$�A�	%�������1��t�K�'8�9�
�
�
�m�
,�	(��
�
�;�'�A�	(�������1��t�M�':�;�
�
�
�m�
,�	'��
�
�:�&�A�	'�������1��t�M�':�;�������H�a�0�$�t�*�=�
�
�
�m�
,�	(��
�
�;�'�A�	(�������1��t�N�';�<�
�
�
�m�
,�	'��
�
�:�&�A�	'�������1��t�N�';�<�������H�a�0�$�t�*�=�
�
�
�m�
,�	(��
�
�;�'�A�	(�������1��t�M�':�;�
�
�
�m�
,�	'��
�
�:�&�A�	'�������1��t�M�':�;�������H�a�0�$�t�*�=�
�
�
�m�
,�	(��
�
�;�'�A�	(�������1��t�N�';�<�
�
�
�m�
,�	,��
�
�?�+�A�	,�������1��t�I��7�S	(�	(��	&�	&��	%�	%��	(�	(��	'�	'��
	(�	(��	'�	'��
	(�	(��	'�	'��
	(�	(��	,�	,�s��S�S,�!S9�>T�T�'T �T-�T:�-U�9U�U!�S)�,S6�9T�T�T� T*�-T7�:U�U�U�!U*c���|jtjdd�jd�d�|jtjdd�jd�d�y)Nz\s(b)r�r]rPza\sza rr�rhs r�test_search_coveragezReTests.test_search_coverageJsN��������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�rvr5rzre)rr8�textrgre�matcherr�s       r�assertMatchzReTests.assertMatchNs|���=�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����/�q�C��F�/�s�r]r�r�z(?x)z-.]{}r]r�)r�r�r�r:�escaper5�
LITERAL_CHARS)rrVru�
literal_charss    r�test_re_escapezReTests.test_re_escape^s����G�G�/�E�#�J�/�/���	7�A����R�Y�Y�q�\�1�-����S�2�9�9�Q�<�/�#�5�q�9����V�b�i�i��l�2�A�6�	7�	
������1��q�)��	5�A����R�Y�Y�q�\�"�1�-�t�4�	5��*�*�
�������=�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�r5r��encode)rrVr�rPr�s     r�test_re_escape_byteszReTests.test_re_escape_bytesjs���%��*����	8�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�		8�
	
������1��q�)��	6�A��q�c�
�A����R�Y�Y�q�\�"�1�-�u�5�	6��*�*�1�1�'�:�
�������=�1�=�Arc���d}tj|�}|j||�|j||�|jdtjd�z|ddtj�y)Nuxxx☠☠☠xxxz.%s+.�☠ux☠☠☠x)rmr�)r:r�r5r�rd)rrV�	s_escapeds   r�test_re_escape_non_asciiz ReTests.test_re_escape_non_asciixs`��&���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�rm)r�r:r�r5r�rUrB)rrP�	b_escaped�ress    r�test_re_escape_non_ascii_bytesz&ReTests.test_re_escape_non_ascii_bytes�su���$�$�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�loadsr5r�)rr��oldpat�proto�pickled�newpatr�s       r�
test_picklingzReTests.test_pickling�sl������7����D���6�2�2�Q�6�7�	-�E��l�l�6�5�1�G��\�\�'�*�F����V�V�,�	-�
	 rc�`�ddl}tjd�}|j|j|�|�|j|j	|�|�|jd�}|j|j|�|�|j|j	|�|�y)Nrz (?P<int>\d+)(?:\.(?P<frac>\d*))?z12.34)�copyr:r<r-�deepcopyrg)rrrVr�s    r�test_copyingzReTests.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���|jtjtj�|jtjtj
�|jtjtj�|jtjtj�|jtjtj�yr)r5r:r��
IGNORECASE�Lr�r��	MULTILINErr�r��VERBOSErhs 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{rvr<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�:�	;��T�T�2�4�4����r�t�t�R�T�T�2�4�4�8�	<�D��O�O�B�J�J�|�T�:�;�	<rc	�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�rvr:rgr�rCr_s  r�test_sre_character_literalsz#ReTests.test_sre_character_literals�s���R�	B�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�	B�	
��������/�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)#Nr
r]�[\%o]�[\%o8]�[\%03o]�[\%03o0]�[\%03o8]�[\x%02x]�	[\x%02x0]�	[\x%02xz]r�z[\u%04x]z	[\u%04x0]z	[\u%04xz]z[\U%08x]z	[\U%08x0]rz	[\U%08xz]rz[\567]rr]z[\911]�
bad escape \9z[\x1z]rz[\u123z]rz[\U0001234z]r z[\U00110000]r!z[\U0001d49c-\U0001d4b5]u𝒞r"r_s  r�!test_sre_character_class_literalsz)ReTests.test_sre_character_class_literals�su��R�	D�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�!	D�"	
���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\567rrs\911rr]s\x1rs\x1z�	rvr:rgr�r�r9r;r<rCr_s  r�test_sre_byte_literalszReTests.test_sre_byte_literals�s��2�	R�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�
	R�	
���"�(�(�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)Nr0r%r&r'r(r)r*r+r,s[\u1234]s[\U00012345]s[\567]rr]s[\911]r-s[\x1z]rr6r_s  r�test_sre_byte_class_literalsz$ReTests.test_sre_byte_class_literals�s���2�	O�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�	O�	
���"�(�(�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�rhs r�test_character_set_errorsz!ReTests.test_character_set_errorss������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)rPr]r;)r;r;)r5r:rg�start�endrerhs r�test_bug_113254zReTests.test_bug_113254st��������*�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)?arsz(a)(b)?brkr]z(?P<a>a)(?P<b>b)?bz(?P<a>a(b))z((a)))rfr:rg�	lastindexr5�	lastgrouprhs r�test_bug_527371zReTests.test_bug_527371s������"�(�(�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�rkrQri!Nz.*?cdi�ru�cdei#Ni Nro�deia�z(a|b)*?c)r5r:rgr>rdrhs 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�r5r<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�r1r]z(x)*yr2z(x)*?yr�rhs r�test_stack_overflowzReTests.test_stack_overflow3s���	
������&�%��)�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�rPznothing to repeatrz(?:r�r^r�)r�reps�mods   r�test_nothing_to_repeatzReTests.test_nothing_to_repeat:sT��*�	?�D��
?���&�&��s�';�':�A�?��&�&�T�3�'?�':�A�?�
?�	?rc��dD]M}dD]F}||z}dD]:}dD]3}||zdvr�||z}|jd|�|��ddt|�z��5�<�H�Oy)NrM)r�rPrO)rPrOr1zmultiple repeatr])rCrB)r�
outer_reps�	outer_mod�outer_op�
inner_reps�	inner_mod�inner_ops       r�test_multiple_repeatzReTests.test_multiple_repeatBs���0�		F�J�)�
F�	�%�	�1��"8�F�J�%1�F�	�$�z�1�Z�?�$�#-�	�#9���.�.�8�X�/N� 1�1�s�8�}�3D�F�	F�F�
F�		Frc��|jtjdd��|jtjdd��|jtjdd��|jtjdd��|jtjdd��|jtjdd��y)Nz(?:a?)*yrz(?:a?)+yz(?:a?){2,}yz	(?:a?)*?yz	(?:a?)+?yz(?:a?){2,}?y)rfr:rgrhs r� test_unlimited_zero_width_repeatz(ReTests.test_unlimited_zero_width_repeatNs������"�(�(�;��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_identXs��E�\rc��d|zS)Nzop%sr�ras  r�
s_operatorz(ReTests.test_scanner.<locals>.s_operatorYs��v��~�(=rc��t|�Sr)�floatras  r�s_floatz%ReTests.test_scanner.<locals>.s_floatZs��E�%�L�%8rc��t|�Sr)ryras  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@rn�bar)rrvrbr8r5�scan)rrdrfrirkrbs      r�test_scannerzReTests.test_scannerWs���1�=�8�4��
�g�&�
�'�"�
�U�O�
�Z�(�����	
������/�/��3�;�;�<�������&B�C�)�*,�.�	/rc���dD]p}|jtjd|zd�j�d�|jtjd|zd�j�d��ry)N)r�rPrNz
((.%s):)?zrrgza:z)rrs�r5r:rgr/)r�ops  r�test_bug_448951zReTests.test_bug_448951ksk���	*�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)*ror=z^(([ab])|c)*)rurPz^((d)|[ab])*�rPNz
^((a)c|[ab])*z^((a)|b)*?cz^(([ab])|c)*?drHz^((d)|[ab])*?cz^((a)c|[ab])*?crsrhs r�test_bug_725106zReTests.test_bug_725106ts=��������+�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)*rE)rsNz(a)((?!(b)*))*r+rsrhs r�test_bug_725149zReTests.test_bug_725149�sR��������"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~ror�)r{r:r<rfrg)rr~r�s   r�test_bug_764548zReTests.test_bug_764548�s4��#��#��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�rI)rJr?r^r�r)r:rMr5rzr<)r�iter�itemr�s    r�
test_finditerzReTests.test_finditer�s{���{�{�5�,�/�����D�9�D�$�*�*�Q�-�9�+�	-��j�j�����|�|�L�!�R�0�����D�9�D�$�*�*�Q�-�9�+�	-��j�j�����|�|�L�a��|�;�����D�9�D�$�*�*�Q�-�9�+�	-��j�j�����|�|�L���|�;�����D�9�D�$�*�*�Q�-�9�+�	-��j�j�����|�|�L�a��|�:�����D�9�D�$�*�*�Q�-�9����	'��):��
:��
:��
:��
:s�F0�?F5�F:�3F?�
Gc�t�|jtjd�tjd��y)N�
bug_926075s
bug_926075)�assertIsNotr:r<rhs r�test_bug_926075zReTests.test_bug_926075�s'��������L�1����M�2�	4rc�t�d}|jtj|�jd�gd��y)Nu[.。.。]za.b.crR)r5r:r<rr�s  r�test_bug_931848zReTests.test_bug_931848�s.��.��������G�,�2�2�7�;�&�	(rc��tjdd�}|jt|�j	�d�|jtt|�tjd�jd�}|j|j�j	�d�|j|j��y)Nz\sr�)r]rm)r:rMr5�nextrer9�
StopIterationr<rbrdrf)rr�rbs   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.*�asdfrG)r�r�)r:rMr5r�rer9r�)rr�s  r�test_bug_817234zReTests.test_bug_817234�sZ���{�{�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㊴)r5r:rgrzrf)r�decimal_digitsr1�not_decimal_digitss    r�
test_bug_6561zReTests.test_bug_6561�sr����
 �	?�A����R�X�X�g�q�1�7�7��:�A�>�	?���$�	4�A����b�h�h�w��2�3�	4rc�&�ddl}dD]�}|j|�}|jtjd�j	|��|jtjd�j	|�j
�d���y)Nr�bBuhHiIlLfdsblarr�)�arrayrfr:r<rgr5r/)rr��typecoderss    r�test_empty_arrayzReTests.test_empty_array�sr���%�	D�H����H�%�A����b�j�j��0�6�6�q�9�:����R�Z�Z��_�2�2�1�5�<�<�>��C�	Drc��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)rmz(?:(?i)r�r^z
(^)?(?(1)(?i)r�z($)?(?(1)|(?i)r�)r:r<r�rrgrvr�rC�warnings�catch_warnings�simplefilter�BytesWarning)r�
upper_char�
lower_charrV�qr3s      r�test_inline_flagszReTests.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��;��
$�
$�
&�	5��!�!�'�<�8��"�"�8�S�!�4�	5�	
���{�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�	5�	5�s�.Q�Qc��	tjd�}|j|jdd�d�|j|jdd�d�|j|jdd�d�tjdtj�}|j|jdd�d	�|j|jdd�d
�|j|jdd�d�y)N�$�#za
b
za
b#
#za
b
cza
b
c#r�z#
#za#
b#
#za#
b#
c#)r:r<r5rFrr�s  r�test_dollar_matches_twicez!ReTests.test_dollar_matches_twices���	K��*�*�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	rPrur
)r:r<r9rArgrF)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<rrvrgr�rfr9r�r;)rrzr�s   r�test_ascii_and_unicode_flagz#ReTests.test_ascii_and_unicode_flag9s:������_�	/�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�+�,�����]�	2�E��*�*�W�e�b�m�m�&;�<�C����c�i�i��0�1��*�*�V�U�+�C����c�i�i��0�1�		2�	
���*�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�rrvrgrfr9r�r;r�)r�encr�ru�sletter�bletterr�r�s        r�test_locale_flagzReTests.test_locale_flagVsy���)�)�+���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:rZr�(?i�missing -, : or )z(?i+z(?iz)rvr:rgrfrr�rCrhs 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 	

rs)� �	�
�
��rKz(?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| brP�rvr:rKr)r�spaces  r�test_ignore_spaceszReTests.test_ignore_spaces�s+��"�	H�E��O�O�B�L�L����c�2�:�:�F�G�	H�<�	J�E��O�O�B�L�L����t�R�Z�Z�H�I�	J�������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
arss#x
arKz(?x)#x
az#x
(?x)#y
az(?x)#x
(?x)#y
az#x
a(?x:#y
b)#z
cz	#x
ab#z
cz#x
a(?-x:#y
b)#z
cza#y
bcz(?x)#x
a(?-x:#y
b)#z
cz
(?x)#x
a|#y
brPr�rhs r�
test_commentszReTests.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��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>�r�r�a5r{sa(\w)sb\1sacsbcsa(.)sa�sb�s..c��y)N�bytesr�r�s rr�z'ReTests.test_bug_6509.<locals>.<lambda>�r�rsa5r�)r:r<r5rFr�s  r�
test_bug_6509zReTests.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�v�|jtjdd��|jtjdd��|jtjdd��|jtjdd��|jtjdd��y)Nz123.*-z123abc-u123é-u123€-u123􏿿-u
123é€􏿿-)rvr:rdrhs r�test_search_dot_unicodezReTests.test_search_dot_unicode�sw������	�	�(�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-r9rA)rr8�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)Nrsr�)r:rd�assertIsNotNoner5r=r>)rr�rVr�s    r�test_large_searchzReTests.test_large_search�sW��
�$�J���I�I�c�1������Q���������D�)��������$�'r�c��d|z}tjdd|�\}}|j||�|j||dz�y)Nrsr�r])r:rr5)rr�rVrL�ns     r�test_large_subnzReTests.test_large_subn�sG��
�$�J���w�w�r�2�q�!���1�����A������D�1�H�%rc��|jtjdd�dg�|jtjdd�j	�d�y)Nz	(?i)(a)\1uaa Ārsz
(?s).{1,3}uĀĀrl)r5r:rUrgrerhs 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)Nr1順z.{65535})rrz	.{,65535}z
.{65535,}?z.{65536})rr�z	.{,65536}z
.{65536,}?�.{%d}rmr��.{,%d}�.{%d,}?z.{%d,%d}�)r5r:rgrer9�
OverflowErrorr<)rrGs  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)
Nr1i�%&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�)r5r:rdrer<r�r;)rrG�p1�p2r@s     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�rhs 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�rhs 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)rNrOrPz{1}rQr��yzr�)r3r�)r5r:r<rrUr�)rrRrSr8s    r�test_issue17998zReTests.test_issue17998+s���(�	8�D��
8����*�s�*�T�1��� � ����G�R�T�T�!:�!B�!B�5�!I�"'��g�!�7�!�.�.�*��� � ����G�R�T�T�!:�!B�!B�6�!J�"(��w�!�8�
8�	8rc�`�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:rdr.rr�assertRegex�reprr#rLr�r+rM)rrGr�r8rlrms      r�test_match_reprzReTests.test_match_repr5s`��%�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�.�	/��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�rsrr)r�z\b|:+)r�rsr�r�r)r�z(?<!\w)(?=\w)|:+)r�rsr�r)z(?<=\w)(?!\w)|:+)rsr�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�)r[rtrr)r^r�r)r5r:rrFrUrMre�rr�s  r�test_zerowidthzReTests.test_zerowidthOsq��������%��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�q�!�&�&�(�K�A�	C����B�K�K�	�7�,K�L�q�!�&�&�(�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,}rNrOz{1,187})rrNrPz^((x|y)r��xyyzyr�xyyr]r�rmr2)r:r<rgr5rz)rrXr[rLr�s     r�
test_bug_2537zReTests.test_bug_2537cs���5�	2�H�.�
2���J�J��8�D�E���G�G�G�$��� � ������U�3�� � ������R�0�� � ������S�1�
2�	2rc�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�)rGr?rJ)r�r�r�r^rkr])rGr)r�rk�	racadabra)
r:r<r5rgrerKrdrUrrbr�s  r�test_keyword_parameterszReTests.test_keyword_parametersms���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�rb)r5r:rKr�rerhs 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_caching�s����$�$�V�_�_�5�	�����(�(�&�/�/�9�E�1�	<�C�
<�� � ����#�6�	<�	���
��!�!�#�����
���
������!�!�#���<�<�
<��
�
�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�rrrvr:rgrr�rhs 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�rrrvr:rgrr�rfrhs 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<rr�rvrgrf)rrrr�r��p3�p4rVs        r�test_locale_compiledzReTests.test_locale_compiled�sW��
�$�$�V�_�_�5�	�����(�(�&�/�/�9�E�1�	<�C�
<�� � ����#�6�	<�	������*:�;�
�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���	2�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�	2�	
���"�(�(�;�/�0����"�(�(�;�/�0����"�(�(�;�/�0�������,�7��R���	4�A��O�O�A�G�G�K�0�1����a�g�g�k�2�3����a�g�g�k�2�3�	4�	
�������-�.����"�(�(�;�/�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))r9r:r;r<r>r�r8r{r5r?�lineno�colno�assertInr3�assertNotInr�r)rrArBs   r�
test_errorzReTests.test_error�s#��
�
�
�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)NrrZrz((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(?rmr�rhs 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�)r1r{r:r�rrhs r�	test_enumzReTests.test_enums0��	
�
�
�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)Nro�XYZ)
r:r<rr5r�r��hash�assertNotEqualr9rA)r�pattern1�pattern2�pattern3�pattern4s     r�test_pattern_comparezReTests.test_pattern_compares	���:�:�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�ror;)
r:r<r�r5r:r�r�r�r�r;)rr<r=r>s    r�test_pattern_compare_bytesz"ReTests.test_pattern_compare_bytes$s����:�:�f�%��	���
��:�:�f�%������h���h��8�����8�,�	���
��:�:�e�$��
�
$�
$�
&�	4��!�!�'�<�8�����(�3�	4�	4�	4�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)rLr:rdr5rz)rrVr��m2s    r�test_bug_29444zReTests.test_bug_294445s����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)Nr1rkz(?=(.)(.)?)rP)rPr�rwz1(?=<(?P<tag>\w+)/?>(?:(?P<text>.+?)</(?P=tag)>)?)z<test><foo2/></test>)r��<foo2/>)�foo2r�r�rG)�tagr�rHz<test>Hello</test><foo/>�Hellormz<test>Hello</test><foo/><foo/>)r5r:rdr/rUrMrn�rrVrVr�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�A�!�+�+�-�C�"(�)�<�"(�$�7�9�	:�
'��������Q��1B�C�A�!�+�+�-�C�"(�'�:�"'��6�8�	9�
-��������Q��1B�C�A�!�+�+�-�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)*?brkr&z	(ab|a)+?bz
(ab|a){0,2}?bz	(.b|a)*?brsrhs r�test_MARK_PUSH_macro_bugz ReTests.test_MARK_PUSH_macro_bugas���	
������,��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�rm)�r�)�xyzxcr1�t�r5r:rgr/rerKs    r�test_MIN_UNTIL_mark_bugzReTests.test_MIN_UNTIL_mark_bugis���
��%��������!�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)*)rrSrm)r�r�rO�ababz(?:[^b]*(?=(b)|(a))ab)*rG)rmr^z(ab?)*?brkr&�r:rgr5rer/rKs    r�test_REPEAT_ONE_mark_bugz ReTests.test_REPEAT_ONE_mark_bugxs���
��'���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)
NrZz(?:.*?(?=(a)|(b))b)*rGrm�r^r�)NrP�axxzazz(?:a*?(xx)??z)*rQr[rKs    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)rkrz((?!(ab)c)(.))*rZrGr]r^r^)rPNrPrVrs  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'rYr�z
got 'type')r�rAr:rdr.rhs r�test_bug_40736zReTests.test_bug_40736�sm��
�
#�
#�I�{�
;�	��I�I�d�A��	�
�
#�
#�I�|�
<�	"��I�I�d�D�!�	"�	"�	�	��	"�	"�s�A0�A<�0A9�<Bc	�&�ddz}tj�}dD]�}|jtj||��|jtj||�|g�|jtj||�g�|jttj||��g�|jtj|d|�|���tj�|z
}|j|d�y)Nr1i���)z\Ayz^yr�g�������?)�time�perf_counterrfr:rdr5rrUr+rMrF�
assertLess)rrVr=rVrUs     r�test_search_anchor_at_beginningz'ReTests.test_search_anchor_at_beginning�s�����I���!�!�#���	2�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�	2�
����%�'��	
����3�rc�:	�	|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),Nze*+e�eeeeze++a�eeearze?+a�eaze{2,4}+az(.)++.�eez(ae)*+a�aea)�aez
([ae][ae])?+az(e?){2,4}+a)r�z()*+arszx*+rZr[zx++r\�a*+r`rarb�a++z
^(\w){1}+$roz^(\w){1,2}+$z
^(\w){3}+$r]ruz^(\w){1,3}+$z^(\w){1,4}+$z^x{1}+$z	^x{1,2}+$z^x{3}+$z	^x{1,3}+$z	^x{1,4}+$z^x{}+$ru)	rfr:rgr5rzr/rdrervrhs r�test_possessive_quantifiersz#ReTests.test_possessive_quantifiers�s7��	+�
	
���"�(�(�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)Nrrrsrq�a?+�a{1,3}+rkza++bza*+bza?+bza{1,3}+b�(?:ab)++�(?:ab)*+�(?:ab)?+�(?:ab){1,3}+roz	(?:ab)++cz	(?:ab)*+cz	(?:ab)?+cz
(?:ab){1,3}+c�rvr:rKrfrhs r�%test_fullmatch_possessive_quantifiersz-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�|�|jtjdd�dg�|jtjdd�gd��|jtjdd�gd��|jtjdd�dg�|jtjd	d
�dg�|jtjdd
�gd
��|jtjdd
�gd��|jtjdd
�dg�y)Nrr�aabrfrq�rfr�r�ru�rsrsr�r�rvrw�ababcrZrx�rZr�r�ry�rkrkr�r�rzr"rhs 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)
Nz
a(?>bc|b)cro�abccz(?>.*).z(?>x)++r`z(?>x++)z(?>x)++xz(?>x++)x)r:r<rfrgrv)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+)rs�(?>a*)�(?>a?)�
(?>a{1,3})rkz(?>a+)bz(?>a*)bz(?>a?)bz(?>a{1,3})b�(?>(?:ab)+)�(?>(?:ab)*)�(?>(?:ab)?)�(?>(?:ab){1,3})roz(?>(?:ab)+)cz(?>(?:ab)*)cz(?>(?:ab)?)cz(?>(?:ab){1,3})cr{rhs 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~rfr�rr�r�r�r�r�rZr�r�r�r�r�r"rhs r�test_findall_atomic_groupingz$ReTests.test_findall_atomic_grouping0	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)rvr:rKrhs 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)
Nrsz
re.template()z
is deprecated�functionr
)rzzre.TEMPLATE�ahoy�nope)r��DeprecationWarningr:�templater1r{�warningr2r<�TEMPLATEr�r5rvrgr�)rrA�template_re1�template_re2s    r�-test_template_function_and_flag_is_deprecatedz5ReTests.test_template_function_and_flag_is_deprecated?	sw��
�
�
�0�
1�	-�R��;�;�t�,�L�	-��
�
�o�s�2�:�:��7��
�
�o�s�2�:�:��7��
�
�j�#�b�j�j�/�2������R�Z�Z��1�
�
�
�0�
1�	J�R�
�:�:�d�"�+�+�b�j�j�2H�I�L�	J�	
�
�
�m�S����_�5��
�
�o�s�2�:�:��7��
�
�f�c�"�*�*�o�.�����S����_�5�	
����|�4�����*�*�6�2�3�����+�+�F�3�4�+	-�	-��	J�	J�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))+)�ABCDErlz(?:.(?!D))++z(?>(?:.(?!D))*)z(?:.(?!D))*+z(?>(?:.(?!D))?)�CDEr[z(?:.(?!D))?+z(?>(?:.(?!D)){1,3})z(?:.(?!D)){1,3}+z
(?>(?:ab?c)+)�acaz
(?:ab?c)++z
(?>(?:ab?c)*)z
(?:ab?c)*+z
(?>(?:ab?c)?)rsz
(?:ab?c)?+z(?>(?:ab?c){1,3})z(?:ab?c){1,3}+rvrhs r�test_bug_gh106052zReTests.test_bug_gh106052W	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�ProcessrFr=r�rr��is_alive�	terminate)rr8�input_jsrVs    r�test_regression_gh94675zReTests.test_regression_gh94675k	s����*�*�H�I��
��
�#�#�7�;�;�b�(�^�L��	���	�	���}��	����Q�Z�Z�\�+D�E��z�z�|����
�������q�z�z�|����
������s�! B3�33C&r)�rrrr6rCrHrRrWrirwr~r�r�r�r�r�r�r�r�r�r�r�r�rrrrr#r0r>rCrMrWr[r`rdrhrorsrwrr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r:rKr�rG�
ascii_letters�digitsr�r�r�r�r�r�rrrr#r.r7r9r;r?rCrGrIrKrTr\r^rqrurxrzrr�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�r�rr
rr�unittest�skipIfr	r
rrrr+r3r5r7r@rBrErLrNrWr\r`rbrdrirsr|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�P9�4B�)�#�B�8K�4&=�P$A�L-F�^?�H�+8�ZA�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�"� �%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��	sD��	�	�"�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
�r5r�)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�rhs r�test_atomic_groupzDebugTests.test_atomic_group�	s������z�2�5�	rc�:�|jtd�d�y)Nruz�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�rhs r�test_possesive_repeat_onez$DebugTests.test_possesive_repeat_one�	s������v�.�	1�		rc�:�|jtd�d�y)Nryz�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�rhs r�test_possesive_repeatz DebugTests.test_possesive_repeat�	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�r5r�r:r<)rr8rs   r�checkzPatternReprTests.check�	s ������b�j�j��1�2�H�=rc�b�|jttj||��|�yrr�)rr8rzrs    r�check_flagszPatternReprTests.check_flags�	s"������b�j�j��%�8�9�8�Drc�(�|jdd�y)Nr��re.compile('random pattern')�r�rhs r�test_without_flagsz#PatternReprTests.test_without_flags�	s���
�
�#�1�	3rc�F�|jdtjd�y)Nr�z+re.compile('random pattern', re.IGNORECASE))r�r:rrhs 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�rhs 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�rrhs 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�rhs 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�rhs 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�rhs 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:rrhs 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�rhs 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))r�r:r<rhrBr5r�)rr8rLs   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)r5r�r:r�rr�rhs 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��	sI��>�E�3�;�3�
5�?�D�C�D�G�6�drr�c��eZdZ	ed��Zd�Zd�Zed��Zd�Zed��Z	ed��Z
ed��Zed	��Zy
)�ImplementationTestc��|jt�5dtj_ddd�|jt�5dtj
_ddd�|jt�5tjd�}t|jd��}d|_ddd�y#1swY��xYw#1swY�jxYw#1swYyxYw)Nr]r�)	r9rAr:�Matchrmr�r<r.rb)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�rsrrH)rrrr�aaaa)rr]rmr^�ababba)rrr]rmrr]�abcabdac)rrrr]rmrr]r)r:�	_compiler�_generate_overlap_tabler5)r�fs  r�test_overlap_tablez%ImplementationTest.test_overlap_tableG
s����L�L�0�0������2���#�����3��!��%�����6��L�1�����6��L�1�����8��&8�9�����:��(@�Arc��|jtjjd�|jtjjd�y)Nr)�assertGreaterEqualr:r��	MAXREPEATrbrhs r�test_signednessz"ImplementationTest.test_signednessP
s6�������� 6� 6��:������� 6� 6��:rc���t|tj�t|tj�tjd�}t|t|j
d���y)Nr�)rr:r�r�r<r.rbr�s  r�test_disallow_instantiationz.ImplementationTest.test_disallow_instantiationT
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;r�r��_NamedIntConstant)�
SubPattern�parser�r��
_parse_sub)�sre_compile�
sre_constants�	sre_parse)�modulezmodule z is deprecatedr�)r=�sys�modules�popr�r��
__import__r5r{r��filename�__file__r1r�__package__rv�hasattr)r�
deprecated�name�wrS�attrs      r�test_deprecated_modulesz*ImplementationTest.test_deprecated_modules\
sE��-�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�,�8�D��O�O�G�C��$6�7�8��K�K��%�

&�

&�	&�%�%��

&�

&�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�r5�
ascii_tolower�unicode_tolowerrGr��
ascii_iscased�unicode_iscasedr+�upperr�rv)rrr�ru�lo�iscaseds      r�test_case_helpersz$ImplementationTest.test_case_helpersw
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��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)Nrrmr�rsror�r�)rr9rAr:rMr�r<)rr�
long_overflows   r�test_dealloczImplementationTest.test_dealloc�
s���	�
�3��
����)�R�[�[�#�r�:�
�
�
�}�
-�	?��L�L���M�?�A�r�2�>�	?�
�
�
�y�
)�	/��L�L��Q��A�r�2�.�	/��
�
�y�
)�	4��L�L��Q����B��3�	4�	4�	?�	?��	/�	/��	4�	4�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 constantr1r�r�r]r�)rr�r�)rr��ImportErrorrrfr:rgr5rer9r�r<)rr�rGs   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)rr9rAr�r1r{r>)rrrAs   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)
rrrrr�r�r�r�rrrr"r$r�rrr�r�6
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)Nr)�
benchmarks�r8rGrqr�)
�
test.re_testsr(r=r:r<rvrdrgrKrB)rr(r8rVrV�s2s      r�test_re_benchmarksz ExternalTests.test_re_benchmarks�
s���,�$�
	H�J�G�Q����g�a��8�	
H��J�J�w�'����������,��������
�+�������A��/���Y��]�S��Y�.����������-��������E� 2�3��������E�5�3�q�6�>� B�C�������B��u�s�1�v�~� F�G�	
H�	
H�
	H�	
H�	
H�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#d
d�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|
d
z��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)Nr)�tests�FAIL�SYNTAX_ERRORr�r^z%Test tuples should have 3 or 5 fieldsr)zSucceeded incorrectlyzFailed incorrectly)�foundr/rzr]�d�Nonerzg%dzgrouping errorr�zbytes pattern matchzlocale-sensitive matchz#=== Fails on locale-sensitive matchrmr����zrange-limited matchzcase-insensitive matchzunicode-sensitive match)r*r.r/r0rBr�r=r9r:r;r<rdrfrvrerzrzr�r�r|�keysr5�evalr�r��print�UnicodeEncodeErrorrr�)rr.r/r0rUr8rV�outcomerEr�obj�resultr=r>�vardictr��gir��bss                   r�
test_re_testszExternalTests.test_re_tests�
sO���;�;��Z	3�A�6:�:�G�:�a�:�'�:�D�8��1�v��{�67�3���G�T�8��Q��1��&'�#���G� �!H�!�L�L����g�a��8�Q
3��l�*��*�*�2�8�8�4�,��
�
�7�+�,��	Q
3�Q
3��j�j��)�����A����d�?��%�%�f�.E�F��Q
3�Q
3��\�\�^�7��O�O�F�,@�A�"(���Q��J�E�3�(.���Q��)/����(.�	�	���9�G�#�1�c�]�0��)�!'���a��B�!�z�%+��.0����	�*�0�$�Y�Y�1�1�6�6�8�(��)�!'���a��B�!�z�%+��&(���
�(��$�$�T�$��%8�(�%5�7�37�<L� ��'�2�D��q�'�*�B�
���&;�<�8� �j�j��.������
�
�2��7�8����&>�?�L� �j�j��r�y�y�9��!$���B���!�>�!�"G��K�	L��B�Q�K�5�(�W�R�S�\�U�-B� &� 2����&;�<�G� �j�j��1������
�
�1�e�S�1�W�(E�F�G��\�\�":�;�3��*�*�W�b�m�m�<�C��O�O�C�J�J�q�M�2�3��\�\�";�<�3��*�*�W�b�j�j�9�C��O�O�C�J�J�q�M�2�3�_Q
3�Q
3�Z	3�,�,��0 *�)�!(�B�)�� *�)�!(�B�)��-7�7��J8�8��L�L��*�����,G�G��3�3��3�3��_Q
3�Q
3�s0�'%R�O4�"	R�4>R�;R�A-P%�9P�1P%�P�$P%�9R�Q�R�+6P2�!R�:AP?�>+R�);Q�$R�=AQ)�R�AQ5� R�4O>�9R�P�P%�P�P%�P"�P%�!P"�"P%�%P/�*R�2P<�7R�?Q	�R�	Q�R�Q�R�Q&�!R�)Q2�.R�5Q>�:R�R	N)rrrr,r?r�rrr&r&�
s��
H�]3rr&�__main__)$�test.supportrrrrrrr	r
rr�r:rGrrfr�r�r�weakrefr
�_multiprocessingr�r!r{rr�r#�TestCaser&r�r�r�r�r&r�mainr�rr�<module>rFs��)�)�)��	�
�
���������-��-�-��-�X%�h���X%�vJ��\��"�"�\��\�~Md�x�(�(�Md�`FC��*�*�FC�Rn3�H�%�%�n3�b�z���H�M�M�O���}X���O��s�C'�'C1�0C1