403Webshell
Server IP : 54.37.205.81  /  Your IP : 216.73.216.76
Web Server : nginx/1.22.1
System : Linux vps-249481fa 6.1.0-50-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.176-1 (2026-07-02) x86_64
User : debian ( 1000)
PHP Version : 8.2.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/regex/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/regex/__pycache__/test_regex.cpython-311.pyc
�

8_c�X����ddlmZddlZddlZddlZddlZddlZddlZGd�de��Z	Gd�de
��ZGd�dej��Z
d	�Zed
kre��dSdS)�)�proxyNc���eZdZ�fd�Z�xZS)�StrSubclassc�`��tt���|����S�N)r�super�__getitem__��self�index�	__class__s  ��2/usr/lib/python3/dist-packages/regex/test_regex.pyr	zStrSubclass.__getitem__s#����5�7�7�.�.�u�5�5�6�6�6���__name__�
__module__�__qualname__r	�
__classcell__�r
s@rrr
s8�������7�7�7�7�7�7�7�7�7rrc���eZdZ�fd�Z�xZS)�
BytesSubclassc�`��tt���|����Sr)rrr	r
s  �rr	zBytesSubclass.__getitem__s#����U�W�W�0�0��7�7�8�8�8rrrs@rrrs8�������9�9�9�9�9�9�9�9�9rrc���eZdZdZdZdZdZdZdZdZ	dZ
dZd	Zd
Z
dZdZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZd�d�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.�Z0d/�Z1d0�Z2d1�Z3d2�Z4d3�Z5d4�Z6d5�Z7d6�Z8d7�Z9d8�Z:d9�Z;d:�Z<d;�Z=d<�Z>d=�Z?d>�Z@d?�ZAd@�ZBdA�ZCdB�ZDdC�ZEdD�ZFdE�ZGdF�ZHdG�ZIdH�ZJdI�ZKdJ�ZLdK�ZMdL�ZNdM�ZOdN�ZPdO�ZQdP�ZRdQ�ZSdR�ZTdS�ZUdT�ZVdU�ZWdV�ZXdW�ZYdX�ZZdY�Z[dZ�Z\d[�Z]d\�Z^d]�Z_d^�Z`d_�Zad`�Zbda�Zcdb�Zddc�Zedd�Zfde�Zgdf�Zhdg�Zidh�Zjdi�Zkdj�Zldk�Zmdl�Zndm�Zodn�Zpdo�Zqdp�Zrdq�Zsdr�Ztds�Zudt�Zvdu�Zwdv�Zxdw�Zydx�Zzdy�Z{dz�Z|d{�Z}d|�Z~d}�Zd~�Z�d�Z�d��Z�d��Z�dS)��
RegexTestsz<class '_regex.Pattern'>z5cannot process flags argument with a compiled patternzinvalid group referencez	missing >zbad character in group namezmissing group namez	missing <z
unknown groupzbad escape \(end of pattern\)z
bad escape \\zunterminated character setz2cannot use a string pattern on a bytes-like objectz2cannot use a bytes pattern on a string-like objectz"expected str instance, bytes foundz'expected a bytes-like object, str foundz,cannot use UNICODE flag with a bytes patternz9ASCII, LOCALE and UNICODE flags are mutually incompatiblez
missing \)zunbalanced parenthesiszbad character rangeznothing to repeatzmultiple repeatzcannot refer to an open groupzduplicate groupz'bad inline flags: cannot turn flags offzundefined character nameNc�`������||������fd���||��dS)Nc����t|ttf��r$t||��D]\}}�||���dS��t|��t|�����dSr)�
isinstance�tuple�list�zip�assertIs�type)�actual�expect�x�y�msg�recursers    ���rr(z,RegexTests.assertTypedEqual.<locals>.recurse2s{����&�5�$�-�0�0�
?����/�/�"�"�D�A�q��G�A�q�M�M�M�M�"�"��
�
�d�6�l�l�D��L�L�#�>�>�>�>�>r)�assertEqual)rr#r$r'r(s`  `@r�assertTypedEqualzRegexTests.assertTypedEqual/sZ�����������-�-�-�	?�	?�	?�	?�	?�	?�	?�	��������rc���d}tjd��}t|��}|�d��|�d��kr|���dSdS)N�QabbbcRzab+c)�regex�compiler�findall�fail)r�sr%r&s    r�test_weakrefzRegexTests.test_weakref;s]�����M�&�!�!���!�H�H���9�9�Y���1�9�9�Y�#7�#7�7�7��I�I�K�K�K�K�K�8�7rc�b�|�tjdd���d��d��|�tjdd�����d��|�tjdd���d��d��|�tjdd�����d��|�tjd	d
��d��|�tjdd���d��d��|�tjdd�����d��|�tjdd���d��d��|�tjdd�����d��|�tjd
d��d��dS)N�a*�xxxr�rrzx*�axx�x+���r%�aaa�xxxa�rr;�a+)r)r-�search�span�match�rs r�test_search_star_plusz RegexTests.test_search_star_plusBs��������d�E�2�2�7�7��:�:�F�C�C�C������d�E�2�2�7�7�9�9�6�B�B�B������d�E�2�2�7�7��:�:�F�C�C�C������d�E�2�2�7�7�9�9�6�B�B�B������c�5�1�1�4�8�8�8������T�5�1�1�6�6�q�9�9�6�B�B�B������T�5�1�1�6�6�8�8�&�A�A�A������T�6�2�2�7�7��:�:�F�C�C�C������T�6�2�2�7�7�9�9�6�B�B�B������T�5�1�1�4�8�8�8�8�8rc�P�t|d��}t|dz��S)Nrr:)�int�str)r�matchobj�	int_values   r�bump_numzRegexTests.bump_numNs%������$�$�	��9�q�=�!�!�!rc��|�tjddd��d��|�tjd|jd��d��|�tjd|jdd��d	��|�tjd
d�d��d��|�tjd
dd��d
��|�tjddd��d��|�tjddd��d��|�tjddd��d��|�tjddd��d��|�tjddd��d��|�tjddd��d��|�tjddd��t	d��t	d��zt	d��zt	d��zt	d��zt	d��z��|�tjd d!d"��d#��|�tjdd$d��d
��|�tjdd%d��d
��|�tjdd&d��d
��|�tjdd'd��d(��|�tjd)d*d)��d+��dS),N�(?i)b+r%�	bbbb BBBB�x x�\d+z08.2 -2 23x99yz9.3 -3 24x100yr;z
9.3 -3 23x99y�.c��dS)N�\n���ms r�<lambda>z1RegexTests.test_basic_regex_sub.<locals>.<lambda>Ys��%�rrR�
�(?P<a>x)z
\g<a>\g<a>�xx�xxxxz
\g<a>\g<1>�
(?P<unk>x)z\g<unk>\g<unk>z
\g<1>\g<1>�az\t\n\v\r\f\a\bz	

�	

�	�
��
��z^\s*�X�test�Xtestz\x0Az\u000Az
\U0000000Az\N{LATIN CAPITAL LETTER A}�A�xs\x0A�
)r)r-�subrJ�chrrCs r�test_basic_regex_subzRegexTests.test_basic_regex_subRs�������8�S�+�>�>��F�F�F������6�4�=�:J�K�K�
�	�	�	������6�4�=�:J�A�N�N�
�	�	�	�	
�����3����=�=�u�E�E�E������3��s�3�3�T�:�:�:������:�}�d�C�C�V�L�L�L������:�}�d�C�C�V�L�L�L������<�1B�D�I�I�
�	�	�	������<���E�E�v�N�N�N������3�(9�3�?�?�AQ�R�R�R������3���<�<�n�M�M�M������3���<�<�c�!�f�f�s�2�w�w�>N���G�G�?��"�g�g�?� #�B���?(�*-�a�&�&�?1�	2�	2�	2�	
�����7�C��8�8�'�B�B�B������4��#�6�6��=�=�=������4��C�8�8�$�?�?�?������4���<�<�d�C�C�C������4�)F�

����	�	�	�	
�����5�(�D�9�9�5�A�A�A�A�Arc�Z�|�tjddd��d��dS)Nr[z\g<1>\g<1>\brYzxxxx�r)r-rjrCs r�test_bug_449964zRegexTests.test_bug_449964qs7�������=�/�4�H�H�
�	�	�	�	�	rc�V�|�tjddd��d��|�tjddd��d��|�tjddd��d��|�tjddd��d��dS)Nz\r\nrRz
abc
def
zabc
def
�
rWrnrCs r�test_bug_449000zRegexTests.test_bug_449000vs��������7�E�3C�D�D�
�	�	�	������6�5�2B�C�C�
�	�	�	������7�D�2B�C�C�
�	�	�	������6�4�1A�B�B�
�	�	�	�	�	rc�P��tjd���|�t|j�fd���|�t|j�fd���|�t|j�fd���|�t|j�fd���dS)NrPc�D��tj�dtj��S�Nrg)r-rB�I��patterns�rrVz*RegexTests.test_bug_1661.<locals>.<lambda>�s���%�+�g�s�E�G�4�4�rc�D��tj�dtj��Sru�r-r@rvrws�rrVz*RegexTests.test_bug_1661.<locals>.<lambda>�s���%�,�w��U�W�5�5�rc�D��tj�dtj��Sru)r-r/rvrws�rrVz*RegexTests.test_bug_1661.<locals>.<lambda>�s���%�-���e�g�6�6�rc�B��tj�tj��Sr)r-r.rvrws�rrVz*RegexTests.test_bug_1661.<locals>.<lambda>�s���%�-����1�1�r)r-r.�assertRaisesRegex�
ValueError�FLAGS_WITH_COMPILED_PAT�rrxs @r�
test_bug_1661zRegexTests.test_bug_1661�s�����-��$�$�����z�4�+G�
4�
4�
4�
4�	6�	6�	6����z�4�+G�
5�
5�
5�
5�	7�	7�	7����z�4�+G�
6�
6�
6�
6�	8�	8�	8����z�4�+G�
1�
1�
1�
1�	3�	3�	3�	3�	3rc	��|�tttjd������|j��dS)Nz(?P<quote>)(?(quote)))r)�reprr"r-r.�
PATTERN_CLASSrCs r�
test_bug_3629zRegexTests.test_bug_3629�sG������d�5�=�1H�#I�#I�J�J�K�K�
�
�	�	�	�	�	rc�
�|�tjddd��d��|�tjddd��d��|�tjddd��d��|�tjddd��d��|�tjdd	d��d
��|�tjddd��d��|�tjdd
d��d��|�tjddd��d��|�tjddd��d��|�tjddd��d��|�tjddd��d��|�tjddd��d��|�tjddd��d
��|�tjddd��d��|�tjddd��d��|�tjddd��d��|�tjddd��d��|�tjddd��d ��|�tj|jd!���|�tj|jd"���|�tj|jd#���|�tj|jd$���|�tj|jd%���|�tj|jd&���|�tj|jd'���|�tj|jd(���|�tj|jd)���|�tj|jd*���|�tj|jd+���|�tj|jd,���|�tjd-d.d��d��|�tjd/d0d1��d2��|�tjd/d3d1��d4��dS)5Nr%�\0�z\000z\001�z\008z8z\009z9z\111rvz\117�Oz\1111�I1z\00z\07�z\08�\09z\0azaz\400uĀz\777uǿrhs\400�s\777��c�.�tjddd��S)Nr%�\1�r-rjrSrrrVz=RegexTests.test_sub_template_numeric_escape.<locals>.<lambda>����
�)�C���
$�
$�rc�.�tjddd��S)Nr%z\8r�rSrrrVz=RegexTests.test_sub_template_numeric_escape.<locals>.<lambda>�r�rc�.�tjddd��S)Nr%z\9r�rSrrrVz=RegexTests.test_sub_template_numeric_escape.<locals>.<lambda>�r�rc�.�tjddd��S)Nr%�\11r�rSrrrVz=RegexTests.test_sub_template_numeric_escape.<locals>.<lambda>����
�)�C���
%�
%�rc�.�tjddd��S)Nr%z\18r�rSrrrVz=RegexTests.test_sub_template_numeric_escape.<locals>.<lambda>�r�rc�.�tjddd��S)Nr%z\1ar�rSrrrVz=RegexTests.test_sub_template_numeric_escape.<locals>.<lambda>�r�rc�.�tjddd��S)Nr%z\90r�rSrrrVz=RegexTests.test_sub_template_numeric_escape.<locals>.<lambda>�r�rc�.�tjddd��S)Nr%z\99r�rSrrrVz=RegexTests.test_sub_template_numeric_escape.<locals>.<lambda>�r�rc�.�tjddd��S)Nr%�\118r�rSrrrVz=RegexTests.test_sub_template_numeric_escape.<locals>.<lambda>����
�)�C��#�
&�
&�rc�.�tjddd��S)Nr%�\11ar�rSrrrVz=RegexTests.test_sub_template_numeric_escape.<locals>.<lambda>�r�rc�.�tjddd��S)Nr%z\181r�rSrrrVz=RegexTests.test_sub_template_numeric_escape.<locals>.<lambda>�r�rc�.�tjddd��S)Nr%z\800r�rSrrrVz=RegexTests.test_sub_template_numeric_escape.<locals>.<lambda>�r�rz(((((((((((x)))))))))))r�z((((((((((y))))))))))(.)r��xyz�xz8r��xza)r)r-rjr}�error�INVALID_GROUP_REFrCs r� test_sub_template_numeric_escapez+RegexTests.test_sub_template_numeric_escape�s6�������3��s�3�3�T�:�:�:������3���5�5�v�>�>�>������3���5�5�v�>�>�>������3���5�5�z�B�B�B������3���5�5�z�B�B�B������3���5�5�v�>�>�>������3���5�5�v�>�>�>������3��#�6�6��@�@�@������3��#�6�6��E�E�E������3���4�4�f�=�=�=������3���4�4�f�=�=�=������3���4�4�j�A�A�A������3���4�4�j�A�A�A������3���4�4�j�A�A�A������3���5�5�x�@�@�@������3���5�5�x�@�@�@������4��4�8�8�'�B�B�B������4��4�8�8�'�B�B�B����u�{�D�,B�E%�E%�	&�	&�	&����u�{�D�,B�E%�E%�	&�	&�	&����u�{�D�,B�E%�E%�	&�	&�	&����u�{�D�,B�E&�E&�	'�	'�	'����u�{�D�,B�E&�E&�	'�	'�	'����u�{�D�,B�E&�E&�	'�	'�	'����u�{�D�,B�E&�E&�	'�	'�	'����u�{�D�,B�E&�E&�	'�	'�	'����u�{�D�,B�E'�E'�	(�	(�	(����u�{�D�,B�E'�E'�	(�	(�	(����u�{�D�,B�E'�E'�	(�	(�	(����u�{�D�,B�E'�E'�	(�	(�	(�	
�����#<�f�c�J�J�

�	�	�	������#=�w��N�N�
�	�	�	������#=�w��N�N�
�	�	�	�	�	rc��|�tjddd��d��|�tjdddd��d��dS)Nr\�b�aaaaa�bbbbbr:�baaaarnrCs r�test_qualified_re_subz RegexTests.test_qualified_re_sub�sR�������3��W�5�5�w�?�?�?������3��W�a�8�8�'�B�B�B�B�Brc�Z�|�tjddd��d��dS)Nz(\S)\s+(\S)z\1 \2zhello  therezhello therernrCs r�test_bug_114660zRegexTests.test_bug_114660�s7�������>�8�^�L�L�
�	�	�	�	�	rc�x�tjdkr+|�tjddd��d��n*|�tjddd��d��|�tjddd��d��|�tjddd��d	��dS)
N�r;rcrz(?V0)x*�-�abxdz-a-b--d-z-a-b-d-z(?V1)x*r8zab-d��sys�version_infor)r-rjrCs r�test_bug_462270zRegexTests.test_bug_462270�s�����y�(�(����U�Y�y�#�v�>�>�
�K�K�K�K����U�Y�y�#�v�>�>�	�J�J�J������9�c�6�:�:�J�G�G�G������4��f�5�5�v�>�>�>�>�>rc��d}|�tjd|zdzd���|��d��dS)N�ÿz(?P<z>a)�abcr\)r)r-r@�group)r�
group_names  r�test_bug_14462zRegexTests.test_bug_14462�sU���
������g�
�&:�U�&B�
�����z�"�"�C�	)�	)�	)�	)�	)rc���|�tj|jd���|�tj|jd���|�tj|jd���|�tj|jd���|�tj|jd���|�t|jd���|�	tj
ddd	��d
��|�	tj
ddd	��d
��|�tj|jd���dS)
Nc�.�tjddd��S)NrXz\g<arYr�rSrrrVz/RegexTests.test_symbolic_refs.<locals>.<lambda>�s��
�)�J���
.�
.�rc�.�tjddd��S)NrXz\g<rYr�rSrrrVz/RegexTests.test_symbolic_refs.<locals>.<lambda>�s��
�)�J���
-�
-�rc�.�tjddd��S)NrX�\grYr�rSrrrVz/RegexTests.test_symbolic_refs.<locals>.<lambda>�s��
�)�J��t�
,�
,�rc�.�tjddd��S)NrXz\g<a a>rYr�rSrrrVz/RegexTests.test_symbolic_refs.<locals>.<lambda>����
�)�J�
�D�
1�
1�rc�.�tjddd��S)NrXz\g<1a1>rYr�rSrrrVz/RegexTests.test_symbolic_refs.<locals>.<lambda>�r�rc�.�tjddd��S)NrXz\g<ab>rYr�rSrrrVz/RegexTests.test_symbolic_refs.<locals>.<lambda>����
�)�J�	�4�
0�
0�rz(?P<a>x)|(?P<b>y)z\g<b>rY�z\2c�.�tjddd��S)NrXz\g<-1>rYr�rSrrrVz/RegexTests.test_symbolic_refs.<locals>.<lambda>�r�r)r}r-r��
MISSING_GT�MISSING_GROUP_NAME�
MISSING_LT�BAD_GROUP_NAME�
IndexError�UNKNOWN_GROUP_Ir)rjrCs r�test_symbolic_refszRegexTests.test_symbolic_refs�s������u�{�D�O�>/�>/�	0�	0�	0����u�{�D�,C�F.�F.�	/�	/�	/����u�{�D�O�>-�>-�	.�	.�	.����u�{�D�,?�B2�B2�	3�	3�	3����u�{�D�,?�B2�B2�	3�	3�	3����z�4�+?�B1�B1�	2�	2�	2�
	
�����#6��$�G�G��L�L�L������#6��t�D�D�b�I�I�I�	
���u�{�D�,?�B1�B1�	2�	2�	2�	2�	2rc��|�tjddd��d��|�tjddd��d��|�tjddd��d��|�tjd	dd��d
��|�tjd	ddd��d��dS)
NrLr%rM)rN�zb+)zx BBBBr:r�)r�rzb*)�xxxyxzx�r�)�xxxyzr�)r)r-�subnrCs r�test_re_subnzRegexTests.test_re_subn�s��������H�c�;�?�?��L�L�L������D�#�{�;�;�]�K�K�K������D�#�u�5�5�z�B�B�B������D�#�u�5�5�~�F�F�F������D�#�u�a�8�8�,�G�G�G�G�Grc�2�|�tjdd��gd���tjdkr�|�tjdd��gd���|�tjdd��gd���|�tjd	d��gd���|�tjd
d��gd���n�|�tjdd��gd���|�tjdd��gd
���|�tjd	d��gd���|�tjd
d��gd���|�tjdd��gd���|�tjdd��gd���|�tjdd��gd���|�tjdd��gd���|�d�tjdd��D��gd���|�tjdd��gd���|�d�tjdd��D��gd���|�tjdd��gd���|�d�tjdd��D��gd���|�tjdd��gd���|�d �tjdd��D��gd���|�tjd!d"��gd#���|�tjd$d"��gd%���|�tjd&d"��gd'���dS)(N�:�:a:b::c�r�r\r�r��cr��:*�r�r�r\r�r�r�r�r��(:*)�r�r�r�r�r\r�r�r�r��::r�r�r�r�r�z(?::*)z(:)*)r�r�r�Nr\r�r�Nr�r�r�Nr�Nr��r�r\r�r��r�r�r\r�r�r�r�)r�r�r\r�r�r�r�z([b:]+))r�r�r\z:b::r�z(b)|(:+))
r�Nr�r\Nr�r�r�Nr�Nr�r�z(?:b)|(?::+))r�r\r�r�r�r%�xaxbxcc��g|]}|��SrSrS��.0rUs  r�
<listcomp>z,RegexTests.test_re_split.<locals>.<listcomp>s��D�D�D��!�D�D�Drz(?r)x)r�r�r\r�c��g|]}|��SrSrSr�s  rr�z,RegexTests.test_re_split.<locals>.<listcomp>���H�H�H��!�H�H�Hrz(x)|(y))
r�r%Nr\r%Nr�r%Nr�c��g|]}|��SrSrSr�s  rr�z,RegexTests.test_re_split.<locals>.<listcomp>$s��J�J�J��!�J�J�Jrz(?r)(x)|(y))
r�r%Nr�r%Nr\r%Nr�c��g|]}|��SrSrSr�s  rr�z,RegexTests.test_re_split.<locals>.<listcomp>)s��N�N�N��!�N�N�Nr�(?V1)\bza b c)r�r\� r�r�r�r�z(?V1)\m)r��a zb r�z(?V1)\M)r\� bz cr�)r)r-�splitr�r��	splititerrCs r�
test_re_splitzRegexTests.test_re_splits�������S�)�4�4�6M�6M�6M�N�N�N���y�(�(����U�[��y�9�9�< �< �< �
!�
!�
!����U�[���;�;�>@�>@�>@�
A�
A�
A����U�[��9�=�=�@$�@$�@$�
%�
%�
%����U�[���;�;�>K�>K�>K�
L�
L�
L�
L�
���U�[��y�9�9�;N�;N�;N�O�O�O����U�[���;�;�>#�>#�>#�
$�
$�
$����U�[��9�=�=�@�@�@�
�
�
����U�[���;�;�>"�>"�>"�
#�
#�
#������Y�	�:�:�=�=�=�	�	�	������Z��;�;�>>�>>�>>�	?�	?�	?������^�Y�?�?�B�B�B�	�	�	�	
�����S�(�3�3�5H�5H�5H�I�I�I����D�D�U�_�S�(�%C�%C�D�D�D�G�G�G�	�	�	�	
�����W�h�7�7�9L�9L�9L�M�M�M����H�H�U�_�W�h�%G�%G�H�H�H�K�K�K�	�	�	�	
�����Y��9�9�<*�<*�<*�	+�	+�	+����J�J�U�_�Y��%I�%I�J�J�J�
>�
>�
>�	@�	@�	@�	
�����]�H�=�=�@.�@.�@.�	/�	/�	/����N�N�U�_�]�H�%M�%M�N�N�N�
>�
>�
>�	@�	@�	@�	
�����Z��9�9�<�<�<�	�	�	������Z��9�9�<�<�<�	�	�	������Z��9�9�<�<�<�	�	�	�	�	rc���|�tjddd��gd���|�tjddd��gd���|�tjddd��gd���tjd	kr.|�tjd
dd��gd���dS|�tjd
dd��gd���dS)Nr�r�r�)r�r\�b::cza:b:c:d)r\r�zc:dz(:))r�r�r\r�r�r�r�)r�r�r�r�za:b::c)r)r-r�r�r�rCs r�test_qualified_re_splitz"RegexTests.test_qualified_re_split3s)�������S�)�Q�7�7�9J�9J�9J�K�K�K������S�)�Q�7�7�9J�9J�9J�K�K�K������U�I�q�9�9�<�<�<�	�	�	���y�(�(����U�[���A�>�>�A�A�A�
�
�
�
�
�
���U�[���A�>�>�A�A�A�
�
�
�
�
rc��|�tjdd��g��|�tjdd��gd���|�tjdd��gd���|�tjdd��gd���|�tjdd	��d
g��|�tjdd	��d
g��|�tjdd
��dg��|�tjdd��dg��|�tjdd��dg��|�tjdd��dg��|�tjdd��dg��|�tjdd��dg��dS)N�:+r��
a:b::c:::d�r�r�z:::�(:+)�(:)(:*)�)r�r�)r�r�)r�r�z\((?P<test>.{0,5}?TEST)\)z	(MY TEST)zMY TESTz\((?P<test>.{0,3}?TEST)\)z\((?P<test>.{0,3}?T)\)z(MY T)zMY Tz[^a]{2}[A-Z]z
  Sz  Sz[^a]{2,3}[A-Z]z
   Sz   SzX(Y[^Y]+?){1,2}( |Q)+DEFzXYABCYPPQ
Q DEF)zYPPQ
r�z(\nTest(\n+.+?){0,2}?)?\n+Endz
Test
xyz
xyz
End)z
Test
xyz
xyzz
xyz�r)r-r/rCs r�test_re_findallzRegexTests.test_re_findall@s/�������t�U�3�3�R�8�8�8������t�\�:�:�<N�<N�<N�O�O�O������v�|�<�<�?�?�?�	�	�	������y�,�?�?�B#�B#�B#�	$�	$�	$�	
�����'C�
���"��	%�	%�	%������'C�
���"��	%�	%�	%������'@�(�K�K��(�	�	�	�	
�������@�@�5�'�J�J�J������'8�'�B�B�W�I�N�N�N������'8�(�C�C�f�X�N�N�N������'B�
��� /�0�	2�	2�	2�	
�����'G�
!�#�#�%B�$C�	E�	E�	E�	E�	Erc�\�|�tjdd��gd���dS)Nz(a|(b))�aba)�r\r�)r�r�rrrCs r�test_bug_117612zRegexTests.test_bug_117612YsA�������z�5�9�9�<�<�<�	�	�	�	�	rc� �|�tjdd��dd�d��|�tjdd��dd�d��|�tjdd��dd��|�tjdd��dd��|�tjdd���dd��d��tjd��}|�|�d��dd�d��|�|�d	��dd�d
��|�|�d��dd�d��|�|�d
��dd�d��|�|�d
��dd�d��tjdd��}|�|���d��|�|�d��d��|�|�d��d��|�|�dd��d��tjd��}|�|�d���ddd��d��|�|�d	���ddd��d��|�|�d���ddd��d��dS)Nr\�r\�(a)�r\r\rr:z
((a)|(b))(c)?)r\r\r\NNr�)r�r�Nr�N�ac)r
r\r\Nr��bc)rr�Nr�r�z!(?:(?P<a1>a)|(?P<b2>b))(?P<c3>c)?r�r;)r\NN�a1�b2�c3)Nr�N�r\Nr�)r)r-rBr�r.)r�patrUs   r�
test_re_matchzRegexTests.test_re_match]s�������S�#�.�.�q�q�q�1�6�:�:�:������U�C�0�0����3�Z�@�@�@������V�S�1�1�!�4�c�:�:�:������V�S�1�1�!�4�c�:�:�:������V�S�1�1�7�7��1�=�=�z�J�J�J��m�O�,�,��������3������*�,G�H�H�H�������3������*�,G�H�H�H�������4������+�-H�I�I�I�������4������+�-H�I�I�I�������4������+�-H�I�I�I�
�K��s�#�#����������C�(�(�(����������S�)�)�)����������S�)�)�)��������A���
�3�3�3��m�?�@�@��������3���-�-�a��A�6�6�8I�J�J�J�������3���-�-�d�D�$�?�?�B�	�	�	�������4���.�.�q�$��:�:�<L�M�M�M�M�Mrc��|�tjdd��dd�d��|�tjdd��dd�d��|�tjdd��d��|�tjdd��d��|�tjdd	��dd�d
��|�tjdd��dd�d��|�tjd
d��dd�d��|�tjd
d��dd�d��tjd��}|�|�d��dd�d��|�|�d��dd�d��|�|�d��d��|�|�d��d��dS)Nz^(\()?([^()]+)(?(1)\))$r)r�(r\r\�r\Nr\za)z(az^(?:(a)|c)((?(1)b|d))$�ab)rr\r��cd)rN�dz^(?:(a)|c)((?(1)|d))$)r\r\r�z(?P<g1>a)(?P<g2>b)?((?(g2)c|d))r�)r�r\r�r��ad)rr\Nr�abdr
)r)r-rBr.�r�ps  r�test_re_groupref_existsz"RegexTests.test_re_groupref_existsxs5�������%?��G�G����J�
�	�	�	������%?��E�E�a�a�a�H�K�	�	�	������%?��F�F��M�M�M������%?��F�F��M�M�M������%=�t�D�D�Q�Q�Q�G�J�	�	�	������%=�t�D�D�Q�Q�Q�G�J�	�	�	������%<�d�C�C�A�A�A�F�I�	�	�	������%<�c�B�B�1�1�1�E�H�	�	�	�
�M�;�<�<��������������*�,B�C�C�C����������q�q�q�)�+A�B�B�B�����������.�.�.�����������-�-�-�-�-rc��|�tjdd��dd�d��|�tjdd��dd�d��|�tjdd��d��|�tjdd��d��|�tjd	d
��dd�d��|�tjdd
��dd�d��|�tjdd��dg��dS)Nz^(\|)?([^()]+)\1$�|a|)r�|r\z^(\|)?([^()]+)\1?$r\rza|z|az^(?:(a)|c)(\1)$�aa)r r\r\z^(?:(a)|c)(\1)?$r�)r�NNzE(?i)(.{1,40}?),(.{1,40}?)(?:;)+(.{1,80}).{1,40}?\3(\ |;)+(.{1,80}?)\1z&TEST, BEST; LEST ; Lest 123 Test, Best)�TESTz BESTz LESTr�z123 )r)r-rBr/rCs r�test_re_grouprefzRegexTests.test_re_groupref�sb�������%9�5�A�A�!�!�!�D�G�	�	�	������%:�C�@�@����C�F�	�	�	������%9�4�@�@�$�G�G�G������%9�4�@�@�$�G�G�G������%7��>�>�q�q�q�A�D�	�	�	������%8�#�>�>�q�q�q�A�D�	�	�	�	
�����'o�
2�4�4�7 �6!�	"�	"�	"�	"�	"rc��|�tjdd�����ddd���dS)N�#(?P<first>first) (?P<second>second)�first second�first�second�r&r')r)r-rB�	groupdictrCs r�test_groupdictzRegexTests.test_groupdict�sP�������%J�
���#�)�+�+��H�'M�'M�	O�	O�	O�	O�	Orc�~�|�tjdd���d��d��dS)Nr$r%z\2 \1 \g<second> \g<first>zsecond first second first)r)r-rB�expandrCs r�test_expandzRegexTests.test_expand�sI�������%J�
��� �&�!>�?�?�
%�	'�	'�	'�	'�	'rc��|�tjdd��d��|�tjdd��d��|�tjdd��d��|�tjdd��d��|�tjdd��dd��|�tjd	d��dd��|�tjd
d��dd��|�tjdd��dd��|�tjdd��dd��|�tjd
d��dd��|�tjdd��dd��|�tjdd��dd��|�tjdd��d��|�tjdd��d��|�tjdd��d��|�tjdd��d��|�tjdd��dd��|�tjdd��dd��|�tjdd��dd��|�tjdd��dd��|�ttjdd����d��|�ttjdd����d��|�ttjdd����d��|�ttjdd����d��|�ttjd d����d��|�ttjd!d����d��|�ttjd"d����d��|�ttjdd����d��|�tjd#d��d��|�ttjd#d$����d��dS)%Nz	^(\w){1}$r�z
^(\w){1}?$z^(\w){1,2}$z^(\w){1,2}?$z	^(\w){3}$r:r�z^(\w){1,3}$z^(\w){1,4}$z^(\w){3,4}?$z
^(\w){3}?$z^(\w){1,3}?$z^(\w){1,4}?$z^x{1}$r5z^x{1}?$z^x{1,2}$z	^x{1,2}?$z^x{1}rr%z^x{1}?z^x{0,1}z^x{0,1}?r�z^x{3}$Tz^x{1,3}$z^x{1,4}$z	^x{3,4}?$z^x{3}?$z	^x{1,3}?$z	^x{1,4}?$z^x{}$zx{})r)r-rB�boolrCs r�test_repeat_minmaxzRegexTests.test_repeat_minmax�s��������\�5�9�9�4�@�@�@������]�E�:�:�D�A�A�A������^�U�;�;�T�B�B�B������_�e�<�<�d�C�C�C������\�5�9�9�!�<�c�B�B�B������^�U�;�;�A�>��D�D�D������^�U�;�;�A�>��D�D�D������_�e�<�<�Q�?��E�E�E������]�E�:�:�1�=�s�C�C�C������_�e�<�<�Q�?��E�E�E������_�e�<�<�Q�?��E�E�E������_�e�<�<�Q�?��E�E�E������X�u�5�5�t�<�<�<������Y��6�6��=�=�=������Z��7�7��>�>�>������[�%�8�8�$�?�?�?������W�e�4�4�Q�7��=�=�=������X�u�5�5�a�8�#�>�>�>������Y��6�6�q�9�3�?�?�?������Z��7�7��:�B�?�?�?�����e�k�(�E�:�:�;�;�T�B�B�B�����e�k�*�e�<�<�=�=�t�D�D�D�����e�k�*�e�<�<�=�=�t�D�D�D�����e�k�+�u�=�=�>�>��E�E�E�����e�k�)�U�;�;�<�<�d�C�C�C�����e�k�+�u�=�=�>�>��E�E�E�����e�k�+�u�=�=�>�>��E�E�E�����e�k�+�u�=�=�>�>��E�E�E������W�e�4�4�d�;�;�;�����e�k�'�5�9�9�:�:�D�A�A�A�A�Arc
���|�tjd��jd��|�tjd��jtjtjztjz��|�tjd��jtjtjztjz��|�tjd��j	d��|�tjd��j
i��|�tjd��j
ddd���|�tjdd��jd	��|�tjdd��j
d��|�tjd
d��jd	��|�tjd
d��j
d��|�tjd
d�����d
��|�tjd
d���d��d��|�tjdd��jd��|�tjdd��jd��|�t%t'tjdd��j����|j��tjd��}d	|j
d<|�|j
dd��dS)Nz
(?i)(a)(b)s
(?i)(a)(b)r�z(?i)(?P<first>a)(?P<other>b)r:)r&�otherrr\rzb(c)�abcdef�r9�r�r;��rr:r7z
abc(?P<n>def)�n)r)r-r.rx�flagsrv�U�DEFAULT_VERSIONrg�groups�
groupindexrB�pos�endposr@rA�string�regsr�r"�rer�rs  r�test_getattrzRegexTests.test_getattr�s��������|�4�4�<�l�K�K�K������|�4�4�:�E�G�e�g�<M�
�
�= �	!�	!�	!������}�5�5�;�U�W�u�w�=N��!�>"�	#�	#�	#������|�4�4�;�Q�?�?�?������|�4�4�?��D�D�D������'E�F�F�Q���
"�
"�	$�	$�	$�	
�����U�C�0�0�4�a�8�8�8������U�C�0�0�7��;�;�;������f�h�7�7�;�Q�?�?�?������f�h�7�7�>��B�B�B������f�h�7�7�<�<�>�>��G�G�G������f�h�7�7�<�<�Q�?�?��H�H�H������U�C�0�0�7��=�=�=������U�C�0�0�5�7G�H�H�H�����d�5�;�u�c�#:�#:�#=�>�>�?�?�
�
�	�	�	�
�M�*�+�+�����S�������c�*�A�.�.�.�.�.rc�4�|�tjdd��dd��|�tjdd��dd��|�tjddtj��dd	��|�tjd
dtj��dd	��|�tjddtj��dd��|�tjddtj��dd��|�tjdd
tj��dd��|�tjddtj��dd��|�tjdd
tj��d��|�tjdd��dd	��|�tjd
d��dd	��|�tjddtj��dd��|�tjddtj��dd��|�tjddtj��d��|�tjdd��dd��|�tjddtj��dd��|�tjddtj��dd��dS)Nz\b(b.)\bzabcd abc bcd bxr:�bxz\B(b.)\Bzabc bcd bc abxds\b(b.)\bsabcd abc bcd bxsbxs\B(b.)\Bsabc bcd bc abxd�^abc$z
abc
rr�z	^\Aabc\Z$s^abc$s
abc
�abcs	^\Aabc\Z$z\d\D\w\W\s\Sz1aa! as\d\D\w\W\s\Ss1aa! a)r)r-r@�LOCALE�UNICODE�MrCs r�test_special_escapeszRegexTests.test_special_escapes�sS�������k�3D�E�E�a�H�$�O�O�O������k�3D�E�E�a�H�$�O�O�O������l�4F�
�,�����!�	#�	#�	#������l�4F�
�,�����!�	#�	#�	#������k�3D�
�-�����!�	#�	#�	#������k�3D�
�-�����!�	#�	#�	#�	
�����h�	�5�7�C�C�A�F��N�N�N������l�E�5�7�C�C�A�F��N�N�N������l�I�u�w�G�G��N�N�N������l�4F�G�G��J�
�	�	�	������l�4F�G�G��J�
�	�	�	������i��U�W�E�E�a�H�
�	�	�	������m�V�U�W�E�E�a�H�
�	�	�	������m�Z���I�I�
�	�	�	�	
�����o�x�@�@��C�X�N�N�N������&6�	�
�,�����%�	'�	'�	'������o�x�
�-�����%�	'�	'�	'�	'�	'rc	��|�tjdd��dd��|�tjddtj��dd��|�d�tjddtj�����d��|�d�tjddtj�����d��|�d�tjd	dtj�����d��dS)
Nz([\u2222\u2223])u∢r:r�rPueèéêëēěė�r9z%[e\xe8\xe9\xea\xeb\u0113\u011b\u0117]z*e|\xe8|\xe9|\xea|\xeb|\u0113|\u011b|\u0117)r)r-rBrI�joinr/rCs r�test_bigcharsetzRegexTests.test_bigcharsets`�������%8�(�C�C�A�F�
�	�	�	������%8�(�
�-�����%�	'�	'�	'���������s�
/�u�}�"F�"F�"F�G�G�
/�	1�	1�	1�	
��������/W�
/�u�}�"F�"F�"F�G�G�
/�	1�	1�	1�	
��������/\�
/�u�}�"F�"F�"F�G�G�
/�	1�	1�	1�	1�	1rc���|�tjddtj��dd��|�tjddtj��dd��dS)N�a.b�a
br�a.*bza

b)r)r-rB�DOTALLrCs r�test_anyallzRegexTests.test_anyallsi�������U�F�E�L�A�A�!�D�f�M�M�M������V�X�u�|�D�D�Q�G�
�	�	�	�	�	rc��|�tjdd��dd��|�tjdd��dd��|�tjdd��dd��|�tjdd��dd��|�tjd	d
��dd��|�tjdd��dd��|�tjd
d
��dd��|�tjdd
��dd��|�tjdd��dd��|�tjdd��dd��|�tjdd��dd��dS)Nz
(a(?=\s[^a]))�a br:r\z(a(?=\s[^a]*))z(a(?=\s[abc]))z(a(?=\s[abc]*))za 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))�r)r-rBrCs r�test_non_consumingzRegexTests.test_non_consuming s��������%5�u�=�=�a�@�#�F�F�F������%6��>�>�q�A�3�G�G�G������%6��>�>�q�A�3�G�G�G������%7��@�@��C�S�I�I�I������^�U�;�;�A�>��D�D�D������_�f�=�=�a�@�#�F�F�F������%8�%�@�@��C�S�I�I�I������%5�u�=�=�a�@�#�F�F�F������%6��>�>�q�A�3�G�G�G������^�U�;�;�A�>��D�D�D������%8�%�@�@��C�S�I�I�I�I�Irc��|�tjddtj��dd��|�tjddtj��dd��|�tjddtj��dd��|�tjd	d
tj��dd
��|�tjddtj��dd��|�tjdd
tj��dd
��|�tjddtj��dd��|�tjdd
tj��dd
��|�tjddtj��dd��|�tjdd�����d��|�tjdd�����d��|�ttjdd����d��|�ttjdd����d��|�ttjdd����d��|�ttjdd����d��dS)Nr��ABCrrGsABCz
(a\s[^a]*)za bbr:z
(a\s[abc])rWz(a\s[abc]*)z	((a)\s\2)rXz
((a)\s\2*)rYz((a)\s(abc|a))z((a)\s(abc|a)*)z[Z-a]�_r7z	(?i)[Z-a]z(?i)nao�nAoTz
(?i)n\xE3ounÃouNÃOz(?i)suſ)r)r-rBrvrAr/rCs r�test_ignore_casezRegexTests.test_ignore_case.s��������U�E�5�7�;�;�A�>��F�F�F������V�V�U�W�=�=�a�@�&�I�I�I������]�F�E�G�D�D�Q�G�
�	�	�	������]�E�5�7�C�C�A�F��N�N�N������^�V�U�W�E�E�a�H�
�	�	�	������\�5�%�'�B�B�1�E�u�M�M�M������]�F�E�G�D�D�Q�G�
�	�	�	������%6��u�w�G�G��J�
�	�	�	������%7����I�I�!�L�
�	�	�	�	
�����X�s�3�3�8�8�:�:�F�C�C�C������\�3�7�7�<�<�>�>��G�G�G�����e�k�*�e�<�<�=�=�t�D�D�D�����e�k�-��B�B�C�C�T�J�J�J�����e�k�-��B�B�C�C�T�J�J�J�����e�k�(�H�=�=�>�>��E�E�E�E�Erc���|�tjdd�����d��|�tjdd�����d��|�tjdd�����d��|�tjdd�����d��|�tjd	d
�����d��|�tjdd�����d��|�tjdd
�����d��|�tjdd�����d��|�tjdd�����d��|�tjdd�����d��|�tjd	d�����d��|�tjdd�����d��|�tjdd�����d��|�tjdd�����d��|�tjdd�����d��|�tjdd�����d��|�tjdd�����d��|�tjdd�����d��d}|D]3}|D].}tjd|z|��s|����/�4|�t
tjdd ����d!��|�t
tjdd"����d!��|�t
tjd#d ����d!��|�t
tjd#d"����d!��|�t
tjd$d ����d!��|�t
tjd%d ����d!��|�t
tjdd ����d!��|�t
tjd#d ����d!��|�t
tjd$d ����d!��|�t
tjd%d ����d!��|�t
tjd&d����d!��|�t
tjd&d����d!��|�tjd'd(��d)d*g��|�tjd+d(��d)d*g��|�tjd,d-�����d.��|�tjd/d-�����d.��|�tjd0d-�����d.��|�tjd1d2dg�3�����d4��|�tjd1d5d6g�3�����d7��dS)8Nz(?fi)ss�SS�rr�z(?fi)SS�ss�ßr7z#(?fi)\N{LATIN SMALL LETTER SHARP S}z (?fi)\N{LATIN SMALL LIGATURE ST}�STz(?fi)STustuſtz(?fi)SSTußtusſtusst�SSTr9z(?fi)FFIuffiuffiuffiz!(?fi)\N{LATIN SMALL LIGATURE FFI}�FFIr>z!(?fi)\N{LATIN SMALL LIGATURE FF}iz!(?fi)f\N{LATIN SMALL LIGATURE FI}uΣσςz(?fi)z(?iV1)ffufffiTufiffz(?iV1)fiz
(?iV1)fffiz
(?iV1)f\uFB03z
(?iV1)f\uFB01z/(?iV0)\m(?:word){e<=3}\M(?<!\m(?:word){e<=1}\M)z.word word2 word word3 word word234 word23 word�word234�word23z/(?iV1)\m(?:word){e<=3}\M(?<!\m(?:word){e<=1}\M)z$(?fi)a\N{LATIN SMALL LIGATURE FFI}nez
  affine  )r��z*(?fi)a(?:\N{LATIN SMALL LIGATURE FFI}|x)nez+(?fi)a(?:\N{LATIN SMALL LIGATURE FFI}|xy)nez(?fi)a\L<options>ne�affine��options�rr4uaffine�ffi�rr�)r)r-r@rArBr0r/r/)r�sigma�ch1�ch2s    r�test_case_foldingzRegexTests.test_case_foldingHs-�������j�$�7�7�<�<�>�>��G�G�G������j�$�7�7�<�<�>�>��G�G�G������j�
*�,�,�,0�D�F�F�F�	<�	<�	<������&L�
��������	 �	 �	 �	
�����&I�
��������	 �	 �	 ������j�
'�)�)�)-�����	9�	9�	9������j�
-�/�/�/3�t�v�v�v�	?�	?�	?�	
�����k�
+�-�-�-1�T�V�V�V�	=�	=�	=������k�
.�0�0�04�����	@�	@�	@������k�
(�*�*�*.�$�&�&�&�	:�	:�	:������&I�
��������	!�	!�	!������k�
(�*�*�*.�$�&�&�&�	:�	:�	:�	
�����k�
(�*�*�*.�$�&�&�&�	:�	:�	:������k�
(�*�*�*.�$�&�&�&�	:�	:�	:������k�
(�*�*�*.�$�&�&�&�	:�	:�	:������&J�
��������	!�	!�	!������&J�
��������	!�	!�	!������&J�
��������	!�	!�	!�%���	 �	 �C��
 �
 ���{�8�c�>�3�7�7� ��I�I�K�K�K��
 �	
����e�l�;��G�G�H�H�
�	�	�	�����e�l�;��G�G�H�H�
�	�	�	�����e�l�;��G�G�H�H�
�	�	�	�����e�l�;��G�G�H�H�
�	�	�	�����e�l�=�.�I�I�J�J�
�	�	�	�����e�l�+;�
����� �	"�	"�	"�����e�l�;��G�G�H�H�
�	�	�	�����e�l�;��G�G�H�H�
�	�	�	�����e�l�=�.�I�I�J�J�
�	�	�	�����e�l�+;�
����� �	"�	"�	"�����e�l�+;�Y�G�G�H�H�
�	�	�	�����e�l�+;�Y�G�G�H�H�
�	�	�	�	
�����'Y�
:�<�<�>G�
�>�	�	�	�	
�����'Y�
:�<�<�>G�
�>�	�	�	�	
�����&M�
��������	(�	(�	(������&S���������	)�	)�	)������&T���������	)�	)�	)������&<�h�1�2�4�4�4�48�D�F�F�F�	D�	D�	D������&<�
+�e�W�>�>�>�>B�d�f�f�f�	N�	N�	N�	N�	Nrc�d�|�tjdd��dd��dS)Nz(\s)r�r:rZrCs r�
test_categoryzRegexTests.test_category�s/�������W�c�2�2�1�5�s�;�;�;�;�;rc���|�tjdd��dd��|�tjdd��dd��dS)Nz\s([^a])r�r:r�z	\s([^a]*)z bb�bb�r)r-r@rCs r�test_not_literalzRegexTests.test_not_literal�sV�������k�4�8�8��;�S�A�A�A������l�E�:�:�1�=�t�D�D�D�D�Drc���|�tjdd��dd��|�tjdd��dd��dS)Nz\s(b)r�r:r�za\sr�rrzrCs r�test_search_coveragezRegexTests.test_search_coverage�sV�������h��5�5�a�8�#�>�>�>������f�d�3�3�A�6��=�=�=�=�=rc��d}|�tj|��|��tdd��D]�}|t	|��z
}|�ttjtjt	|����t	|������d��|�tjtjt	|����t	|�������d����tjtj|����}|�|�|�����d��dS)Nr�r�Tr7�rr)	r)r-�escape�rangerkr/rBrAr.)rr�irs    r�test_re_escapezRegexTests.test_re_escape�s-���������a���!�,�,�,��q�#���	�	�A�
��Q���K�A����T�%�+�e�l�3�q�6�6�.B�.B�C��F�F�"K�"K�L�L��
�
�
����U�[���c�!�f�f�)=�)=�s�1�v�v�F�F�K�K�M�M��
�
�
�
��m�E�L��O�O�,�,��������1���*�*�,�,�h�7�7�7�7�7rc
��d}|�tj|��|��tdd��D]�}t	|g��}||z
}|�ttjtj|��|����d��|�tjtj|��|�����d����tjtj|����}|�|�|�����d��dS)NrrrTr7r�)	r)r-r�r��bytesr/rBrAr.)rrr�r�rs     r�test_re_escape_bytezRegexTests.test_re_escape_byte�s���������a���!�,�,�,��q�#���	M�	M�A��q�c�
�
�A�
��F�A����T�%�+�e�l�1�o�o�q�"A�"A�B�B�D�I�I�I����U�[���a���!�<�<�A�A�C�C�V�L�L�L�L��m�E�L��O�O�,�,��������1���*�*�,�,�h�7�7�7�7�7rc���tjtjkr|���tjtjkr|���tjtjkr|���tjtj	kr|���tj
tjkr|���dSdSr)r-rv�
IGNORECASEr0�LrHrJ�	MULTILINE�SrTrd�VERBOSErCs r�test_constantszRegexTests.test_constants�s����7�e�&�&�&��I�I�K�K�K��7�e�l�"�"��I�I�K�K�K��7�e�o�%�%��I�I�K�K�K��7�e�l�"�"��I�I�K�K�K��7�e�m�#�#��I�I�K�K�K�K�K�$�#rc��tjtjtjtjtjfD]J}|�tttj	d|������|j
���KdS)Nz	^pattern$)r-rvrJrdr�r�r)r�r"r.r�)r�flags  r�
test_flagszRegexTests.test_flags�sq���W�e�g�u�w�����A�	"�	"�D����T�$�u�}�[�$�'G�'G�"H�"H�I�I�� �
"�
"�
"�
"�	"�	"rc���dD�]�}|�ttjd|zt	|������d��|�ttjd|zt	|��dz����d��|�ttjd|zt	|��dz����d��|�ttjd|zt	|������d��|�ttjd	|zt	|��dz����d��|�ttjd
|zt	|��dz����d�����|�tj|jd���dS)
N�rrk�� �@���z\%03oTz\%03o0�0z\%03o8�8z\x%02xz\x%02x0z\x%02xz�zc�,�tjdd��S)Nz\911r��r-rBrSrrrVz8RegexTests.test_sre_character_literals.<locals>.<lambda>�s��
�+�g�r�
"�
"�r)r)r/r-rBrkr}r�r��rr�s  r�test_sre_character_literalsz&RegexTests.test_sre_character_literals�s���2�
	�
	�A����T�%�+�h��l�C��F�F�"C�"C�D�D�d�K�K�K����T�%�+�i�!�m�S��V�V�c�\�"J�"J�K�K��
�
�
����T�%�+�i�!�m�S��V�V�c�\�"J�"J�K�K��
�
�
����T�%�+�i�!�m�S��V�V�"D�"D�E�E�t�L�L�L����T�%�+�j�1�n�c�!�f�f�s�l�"K�"K�L�L��
�
�
����T�%�+�j�1�n�c�!�f�f�s�l�"K�"K�L�L��
�
�
�
�	
���u�{�D�,B�E#�E#�	$�	$�	$�	$�	$rc��dD�]�}|�ttjd|zt	|������d��|�ttjd|zt	|������d��|�ttjd|zt	|������d��|�ttjd|zt	|������d��|�ttjd|zt	|������d��|�ttjd|zt	|������d�����|�tj|jd	���dS)
Nr�z[\%03o]Tz[\%03o0]z[\%03o8]z[\x%02x]z	[\x%02x0]z	[\x%02xz]c�,�tjdd��S)Nz[\911]r�r�rSrrrVz>RegexTests.test_sre_character_class_literals.<locals>.<lambda>�s��
�+�i��
$�
$�r)r)r/r-rBrkr}r��BAD_OCTAL_ESCAPEr�s  r�!test_sre_character_class_literalsz,RegexTests.test_sre_character_class_literals�s���2�	P�	P�A����T�%�+�j�1�n�c�!�f�f�"E�"E�F�F��M�M�M����T�%�+�k�A�o�s�1�v�v�"F�"F�G�G��N�N�N����T�%�+�k�A�o�s�1�v�v�"F�"F�G�G��N�N�N����T�%�+�k�A�o�s�1�v�v�"F�"F�G�G��N�N�N����T�%�+�l�Q�.>��A���"G�"G�H�H�$�O�O�O����T�%�+�l�Q�.>��A���"G�"G�H�H�$�O�O�O�O����u�{�D�,A�D%�D%�	&�	&�	&�	&�	&rc�n�|�tjdd���d��d��|�tjdd���d��d��|�tjdd���d��d��dS)Nz(a)|(b)r�r:����r�r�)r)r-rB�start�endrArCs r�test_bug_113254zRegexTests.test_bug_113254�s��������Z��5�5�;�;�A�>�>��C�C�C������Z��5�5�9�9�!�<�<�b�A�A�A������Z��5�5�:�:�1�=�=�x�H�H�H�H�Hrc���|�tjdd��jd��|�tjdd��jd��|�tjdd��jd��|�tjdd��jd��|�tjdd��jd��dS)	Nz(a)?ar\z(a)(b)?brr:z(?P<a>a)(?P<b>b)?bz(?P<a>a(b))�((a)))r)r-rB�	lastindex�	lastgrouprCs r�test_bug_527371zRegexTests.test_bug_527371�s��������X�c�2�2�<�d�C�C�C������[��6�6�@�!�D�D�D������%:�4�@�@�J�

�	�	�	������]�D�9�9�C�S�I�I�I������W�c�2�2�<�a�@�@�@�@�@rc�T�|�tj|jd���dS)Nc�*�tjd��S)Nzfoo[a-�r-r.rSrrrVz,RegexTests.test_bug_545855.<locals>.<lambda>���
�-��
!�
!�r)r}r-r��BAD_SETrCs r�test_bug_545855zRegexTests.test_bug_545855�s8��	
���u�{�D�L�;"�;"�	#�	#�	#�	#�	#rc�(�|�tjdddzdz���d��d��|�tjdddzd	zddzzd
z���d��d��|�tjddd
zdz���d��d��|�tjdddzdz���d��d��dS)Nz.*?ci'rrri!Nz.*?cdi�r��cdei#Ni Nr��deia�z(a|b)*?c)r)r-rBr�r@rCs r�test_bug_418626zRegexTests.test_bug_418626s!��	
�����V�U�T�\�D�-@�A�A�E�E�a�H�H�
�	�	�	������W�d�T�k�C�.?�$��+�.M�
�/�����Q����	 �	 �	 ������W�e�e�m�d�.B�C�C�G�G��J�J�
�	�	�	�	
�����j�%�$�,��2E�F�F�J�J�1�M�M�
�	�	�	�	�	rc��dtjd��zdz}|�tj|��odd��dS)N�[u‹�]r:)r-r�r)r.�rrs  r�test_bug_612074zRegexTests.test_bug_612074sF���E�L��*�*�*�S�0�������s�+�+�1��1�5�5�5�5�5rc�>�|�tjdddz��dd��|�tjdddzdz��dd��|�tjdddzdz��dd��dS)Nz(x)*iP�r%r:z(x)*yr&z(x)*?yrZrCs r�test_stack_overflowzRegexTests.test_stack_overflows���	
�����V�U�S�[�9�9�!�<�c�B�B�B������W�e�c�k�C�.?�@�@��C�S�I�I�I������X�u�s�{�S�/@�A�A�!�D�c�J�J�J�J�Jrc	�^�d�}d�}d�}d�}tjd|fd|fd|fd|fd	g��}|�tt	|j�d
��j����|j��|�|�d��gd�d
f��dS)
Nc��|SrrS��scanner�tokens  r�s_identz(RegexTests.test_scanner.<locals>.s_ident s��E�\rc��d|zS)Nzop%srSr�s  r�
s_operatorz+RegexTests.test_scanner.<locals>.s_operator!s��v��~�(=rc� �t|��Sr)�floatr�s  r�s_floatz(RegexTests.test_scanner.<locals>.s_float"s
��E�%�L�L�%8rc� �t|��Sr)rFr�s  r�s_intz&RegexTests.test_scanner.<locals>.s_int#s
��#�e�*�*�#4rz[a-zA-Z_]\w*z\d+\.\d*rOz=|\+|-|\*|/)z\s+Nr�zsum = 3*foo + 312.50 + bar)	�sumzop=r;zop*�foo�op+g�s@r��bar)	r-�Scannerr)r�r"r�rxr��scan)rr�r�r�r�r�s      r�test_scannerzRegexTests.test_scanners���1�1�1�=�=�=�8�8�8�4�4�4��-�/�7�!;�k�
�>��U�O�n�j�%A�D�!����	
����d�7�?�#:�#:�2�#>�#>�#F�G�G�H�H�
�
�	�	�	�	
������&B�C�C�G>�G>�G>�?A�FC�	D�	D�	D�	D�	Drc���dD]j}|�tjd|zd��dd�d��|�tjd|zd��dd�d���kdS)N)r��?�*z
((.%s):)?zr�)r�NN�a:z)r�za:r\rZ)r�ops  r�test_bug_448951zRegexTests.test_bug_448951/s����	�	�B����U�[���);�S�A�A�!�!�!�D�G�
�
�
����U�[���);�U�C�C�A�A�A�F�I�
�
�
�
�	�	rc��|�tjdd��dd�d��|�tjdd��dd�d��|�tjdd��dd�d��|�tjdd��dd�d��|�tjd	d��dd�d
��|�tjdd��dd�d
��|�tjdd��dd�d��|�tjdd��dd�d��dS)Nz	^((a)|b)*r�)rr�r\z^(([ab])|c)*)r�r�r�z^((d)|[ab])*)rr�Nz
^((a)c|[ab])*z^((a)|b)*?c)r�r�r\z^(([ab])|c)*?d�abcd)r�r�r�z^((d)|[ab])*?c)r�r�Nz^((a)c|[ab])*?crZrCs r�test_bug_725106zRegexTests.test_bug_7251068s��������[�%�8�8����;�=M�N�N�N������^�U�;�;�A�A�A�>�A�	�	�	������^�U�;�;�A�A�A�>�A�	�	�	������_�e�<�<�Q�Q�Q�?�B�	�	�	������]�E�:�:�1�1�1�=�@�	�	�	������%5�v�>�>�q�q�q�A�D�	�	�	������%5�u�=�=�a�a�a�@�C�	�	�	������%6��>�>�q�q�q�A�D�	�	�	�	�	rc���|�tjdd��dd�d��|�tjdd��dd�d��dS)Nz(a)(?:(?=(b)*)c)*�abb�r\r\Nz(a)((?!(b)*))*)r\r\NNrZrCs r�test_bug_725149zRegexTests.test_bug_725149Jsx�������%8�%�@�@����C�F�	�	�	������%5�u�=�=�a�a�a�@�C�	�	�	�	�	rc��Gd�dt��}tj|d����}|�|�d��d��dS)Nc��eZdZdS)�.RegexTests.test_bug_764548.<locals>.my_unicodeN)rrrrSrr�
my_unicoder�Ss�������rr�r�r�)rGr-r.r)rB)rr�rs   r�test_bug_764548zRegexTests.test_bug_764548Qs]��#�#�#�#�#��#�#�#��m�J�J�u�-�-�.�.��������5�)�)�4�0�0�0�0�0rc�t�tjdd��}|�d�|D��gd���dS)Nr�r�c��g|]
}|d��S�rrS)r��items  rr�z,RegexTests.test_finditer.<locals>.<listcomp>Ys��1�1�1�d�$�q�'�1�1�1rr�)r-�finditerr)�r�its  r�
test_finditerzRegexTests.test_finditerWsE��
�^�E�<�
0�
0�����1�1�b�1�1�1�3E�3E�3E�F�F�F�F�Frc��tjd��tjd��ur|���dSdS)N�
bug_926075s
bug_926075)r-r.r0rCs r�test_bug_926075zRegexTests.test_bug_926075[s;���=��&�&�%�-�
�*F�*F�F�F��I�I�K�K�K�K�K�G�Frc��d}|�tj|���d��gd���dS)Nu[.。.。]za.b.c�r\r�r�)r)r-r.r�r�s  r�test_bug_931848zRegexTests.test_bug_931848_sU��.�������w�/�/�5�5�g�>�>�A�A�A�	�	�	�	�	rc����tjdd���|�t������d��|�t�fd���tjd���d��}|�|�	�����d��|�|�	��d��dS)N�\srW�r:r�c�"��t���Sr��next�r�s�rrVz,RegexTests.test_bug_581080.<locals>.<lambda>g�
����b���r)
r-r�r)r�rA�assertRaises�
StopIterationr.r�r@)rr�r�s  @r�test_bug_581080zRegexTests.test_bug_581080ds����
�^�E�5�
)�
)������b�������&�1�1�1����-�)9�)9�)9�)9�:�:�:��-��&�&�.�.�u�5�5��������)�)�.�.�0�0�&�9�9�9�������)�)�4�0�0�0�0�0rc�B��tjdd���|�t������d��|�t������d��|�t�fd���dS)Nz.*�asdfrq�r�r�c�"��t���Srr�r�s�rrVz,RegexTests.test_bug_817234.<locals>.<lambda>qr�r)r-r�r)r�rAr�r�r�s @r�test_bug_817234zRegexTests.test_bug_817234ms����
�^�E�6�
*�
*������b�������&�1�1�1�����b�������&�1�1�1����-�)9�)9�)9�)9�:�:�:�:�:rc�>�ddl}dD]�}|�|��}|�tjd���|��d��|�tjd���|��dd�d����dS)Nr�bBuhHiIlLfdsblarr:rS)�arrayr)r-r.rB)rr�typecoder\s    r�test_empty_arrayzRegexTests.test_empty_arrayss�������%�	D�	D�H����H�%�%�A����U�]�6�2�2�8�8��;�;�T�B�B�B����U�]�3�/�/�5�5�a�8�8����>��C�C�C�C�	D�	Drc���td��}td��}tj|tjtjz��}|�t
|�|����d��tj|tjtjz��}|�t
|�|����d��tjd|ztj��}|�t
|�|����d��tjd|ztj��}|�t
|�|����d��tjd|z��}|�t
|�|����d��tjd|z��}|�t
|�|����d��|�t
tjdd����d��|�t
tjdd����d��|�t
tjd	d����d��|�tjd
d��d��dS)Ni�i�Tz(?i)z(?iu)�(?i)argza(?i)z(?iV1)aza(?iV1))rkr-r.rvr:r)r/rB)r�
upper_char�
lower_charrs    r�test_inline_flagszRegexTests.test_inline_flags{sF����[�[�
���[�[�
��M�*�e�g���&7�8�8������a�g�g�j�1�1�2�2�D�9�9�9��M�*�e�g���&7�8�8������a�g�g�j�1�1�2�2�D�9�9�9��M�&�:�-�u�w�7�7������a�g�g�j�1�1�2�2�D�9�9�9��M�&�:�-�u�w�7�7������a�g�g�j�1�1�2�2�D�9�9�9��M�'�J�.�/�/������a�g�g�j�1�1�2�2�D�9�9�9��M�'�J�.�/�/������a�g�g�j�1�1�2�2�D�9�9�9�����e�k�(�C�8�8�9�9�4�@�@�@�����e�k�(�C�8�8�9�9�4�@�@�@�����e�k�*�c�:�:�;�;�T�B�B�B������Z��5�5�t�<�<�<�<�<rc�d�tjd��}|�|�dd��d��|�|�dd��d��|�|�dd��d��tjdtj��}|�|�dd��d	��|�|�dd��d
��|�|�dd��d��dS)N�$�#za
b
za
b#
#za
b
cza
b
c#rWz#
#za#
b#
#za#
b#
c#)r-r.r)rjr�r�s  r�test_dollar_matches_twicez$RegexTests.test_dollar_matches_twice�s���-��$�$��������S�(�3�3�Z�@�@�@�������S�)�4�4�j�A�A�A�������S�$�/�/��8�8�8��-��U�_�5�5��������S�(�4�4�k�B�B�B�������S�)�4�4�l�C�C�C�������S�$�/�/��8�8�8�8�8rc�2���tjd���tjd���|�t|j�fd���|�t|j�fd���|�t|j�fd���|�t|j�fd���|�t|j�fd���|�t|j�fd���|�t|j�fd	���|�t|j�fd
���|�t|j	d���|�t|j	d���|�t|j
d
���|�t|j
d���|�t|j
d���|�t|j
d���dS)NrP�.c�.����d��S)N�b�rB�rs�rrVz2RegexTests.test_bytes_str_mixing.<locals>.<lambda>�s���

�)�)�D�/�/�rc�.����d��S)Nr�r��bpats�rrVz2RegexTests.test_bytes_str_mixing.<locals>.<lambda>�s���
�*�*�S�/�/�rc�0����dd��S�Nrr��rjrs�rrVz2RegexTests.test_bytes_str_mixing.<locals>.<lambda>�s���

�'�'�$��
�
�rc�0����dd��S�Nr��crrs�rrVz2RegexTests.test_bytes_str_mixing.<locals>.<lambda>�s���

�'�'�#�t�
�
�rc�0����dd��S)Nrr!rrs�rrVz2RegexTests.test_bytes_str_mixing.<locals>.<lambda>�s���

�'�'�$��
�
�rc�0����dd��Srrrs�rrVz2RegexTests.test_bytes_str_mixing.<locals>.<lambda>�s���
�(�(�4��
�
�rc�0����dd��Sr rrs�rrVz2RegexTests.test_bytes_str_mixing.<locals>.<lambda>�s���
�(�(�3��
�
�rc�0����dd��S�Nr�r�rrs�rrVz2RegexTests.test_bytes_str_mixing.<locals>.<lambda>�s���
�(�(�3��
�
�rc�@�tjdtj��S)N�\w�r-r.rIrSrrrVz2RegexTests.test_bytes_str_mixing.<locals>.<lambda>�s��
�-���
�
.�
.�rc�*�tjd��S)Ns(?u)\wr�rSrrrVz2RegexTests.test_bytes_str_mixing.<locals>.<lambda>����
�-�
�
#�
#�rc�Z�tjdtjtjz��S)N�\w)r-r.rI�ASCIIrSrrrVz2RegexTests.test_bytes_str_mixing.<locals>.<lambda>�s��
�-��u�}�u�{�:�
;�
;�rc�@�tjdtj��S)Nz(?u)\w)r-r.r.rSrrrVz2RegexTests.test_bytes_str_mixing.<locals>.<lambda>�s��
�-�	�5�;�
/�
/�rc�@�tjdtj��S)N�(?a)\wr)rSrrrVz2RegexTests.test_bytes_str_mixing.<locals>.<lambda>�s��
�-�	�5�=�
1�
1�rc�*�tjd��S�Nz(?au)\wr�rSrrrVz2RegexTests.test_bytes_str_mixing.<locals>.<lambda>�r+r)r-r.r}�	TypeError�STR_PAT_ON_BYTES�BYTES_PAT_ON_STR�STR_PAT_BYTES_TEMPL�BYTES_PAT_STR_TEMPLr~�BYTES_PAT_UNI_FLAG�MIXED_FLAGS)rrrs @@r�test_bytes_str_mixingz RegexTests.test_bytes_str_mixing�s������m�C� � ���}�T�"�"�����y�$�*?�B�B�B�B�	�	�	����y�$�*?�B�B�B�B�	�	�	����y�$�*B�E�E�E�E�	�	�	����y�$�*?�B�B�B�B�	�	�	����y�$�*?�B�B�B�B�	�	�	����y�$�*?�B�B�B�B�	�	�	����y�$�*B�E�E�E�E�	�	�	����y�$�*?�B�B�B�B�	�	�	�	
���z�4�+B�E/�E/�	0�	0�	0����z�4�+B�E$�E$�	%�	%�	%����z�4�+;�><�><�	=�	=�	=����z�4�+;�>0�>0�	1�	1�	1����z�4�+;�>2�>2�	3�	3�	3����z�4�+;�>$�>$�	%�	%�	%�	%�	%rc�(�dtjfD]�}tjd|tjz��}|�t|�d����d��tjd|��}|�t|�d����d����tjdtjtjz��}|�|�d��d��tjdtj��}|�|�d��d��tjdtj��}|�|�d��d��tjd��}|�|�d��d��dtjfD]�}tjd|tjz��}|�|�d	��d��tjd
��}|�|�d	��d����|�t|j
d���dS)Nr�À�àTr-u(?a)Àr1����r(c�*�tjd��Sr3r�rSrrrVz8RegexTests.test_ascii_and_unicode_flag.<locals>.<lambda>�r+r)r-rIr.r�r)r/rBr.r}r~r:)rr9rs   r�test_ascii_and_unicode_flagz&RegexTests.test_ascii_and_unicode_flag�s,�����'�	<�	<�E��-����0@�(@�A�A�C����T�#�)�)�F�"3�"3�4�4�d�;�;�;��-��u�-�-�C����T�#�)�)�F�"3�"3�4�4�d�;�;�;�;��m�F�E�K�%�2B�$B�C�C��������6�*�*�D�1�1�1��m�J��(8�9�9��������6�*�*�D�1�1�1��m�E�5�;�/�/��������6�*�*�D�1�1�1��m�I�&�&��������6�*�*�D�1�1�1����%�	7�	7�E��-����1A�)A�B�B�C����S�Y�Y�w�/�/��6�6�6��-��'�'�C����S�Y�Y�w�/�/��6�6�6�6����z�4�+;�>$�>$�	%�	%�	%�	%�	%rc	���tjdd��}|s|�d��nU|r>|d|�d��ks|d|�d��kr|�d��|s|�d��dS|dd�dkr?|�d�t|dd�������dSdS)	N�(?<a>\w)�xyz(Failed: expected match but returned Nonerr:�Failed)r%r%z0Failed: expected "('x', 'x')" but got {} instead)r-rBr0r��format�ascii�rrUs  r�test_subscripting_matchz"RegexTests.test_subscripting_match�s����K��T�*�*���	 ��I�I�@�A�A�A�A��	 �a��d�a�g�g�a�j�j�(�(�A�a�D�A�G�G�A�J�J�,>�,>��I�I�h�����	`��I�I�@�A�A�A�A�A�
�q�q�q�T�Z�
�
��I�I�J�Q�Q�RW�XY�Z[�Z[�Z[�X\�R]�R]�^�^�_�_�_�_�_� �
rc��tjdd��}tjdd��}|r|r|dd�|dd�ks|�d��dSdS)Nz	(?P<a>\w)r%rDrF)r-rBr0)r�m0�m1s   r�test_new_named_groupsz RegexTests.test_new_named_groups�sj��
�[��s�
+�
+��
�[��c�
*�
*���	 �r�	 �b����e�r�!�!�!�u�n�n��I�I�h������-�nrc
� �|�tjdd��d��|�tjdd��d��|�tjdd��d��|�ttjdd����d��|�ttjdd	����d��|�ttjd
d����d��|�ttjdd
����d��|�tjdd��d��|�tjd
d��d��|�tjdd��d��|�tjdd	��d��|�tjdd��d��|�tjdd
��d��|�ttjdd����d��|�ttjdd����d��|�ttjdd����d��|�ttjdd����d��|�ttjdd����d��|�ttjdd����d��|�ttjdd����d��|�ttjdd����d��|�ttjdd����d��|�ttjdd����d��|�ttjdd����d��|�ttjdd����d��|�ttjdd����d��|�ttjdd����d��|�ttjdd����d��|�ttjd d����d��|�ttjd!d����d��|�ttjd"d����d��|�ttjd#d����d��|�ttjd$d����d��|�ttjd%d����d��|�ttjd&d����d��|�ttjd'd����d��|�ttjd(d����d��|�ttjd)d����d��|�ttjd*d����d��|�ttjd+d����d��|�ttjd,d����d��|�ttjd-d����d��|�ttjd.d/����d��|�ttjd0d1����d��|�ttjdd����d��|�tjd.d2��d��|�tjd0d2��d��|�tjdd2��d��|�tjd3d/��d��|�tjd4d1��d��|�tjd5d��d��|�ttjd3d2����d��|�ttjd4d2����d��|�ttjd5d2����d��|�ttjd6d����d��|�ttjd6d7����d��|�ttjd8d����d��|�ttjd9d7����d��|�ttjd:d7����d��|�ttjd:d����d��|�ttjdd/����d��|�ttjdd7����d��|�ttjdd;����d��|�tjd<d�����d=��|�tjd<d>�����d?��|�tjd<d@��gdA���|�tjdBd@��dCdDg��|�tjd<dE��gdF���|�ttjd9d7����d��dG}dH}t
dI�����}gd|dJf�dK|dJf�d5|dLf�dM|dLf�d.|dNf�dO|dNf�d3|dPf�dQ|dPf�dR|dSf�dT|dUf�dV|dWf�dX|dYf�dZ|d[f�d\|d]f�d^�d_�d`�da�d|dbf�dc|dbf�d|ddf�de|ddf�d|dff�dg|dff�d|dhf�di|dhf�dj|dkf�dl|dmf�dn|dof�dp|dqf�dr|dsf�dt|duf�d|dbf�dv|dbf�dw|ddf�dx|ddf�dy|dff�dz|dff�d{|dhf�d||dhf�d}|dkf�d~|dmf�d|dof�d�|dqf�d�|dsf�d�|duf�}|D]�\}}}	|dd���tj||����|kr(|�	d��
|�����d#t$r@}|�	d��
|t|������Yd}~��d}~wwxYw|�ttjd�d/����d��|�ttjd�d�����d��|�ttjd�d�����d��dS)�Ns(?ai)�r@s	(?ai)\xC0s(?a)\wr-r>Ts(?L)\d�0s(?L)\s� s(?L)\w�a�?s(?L)\Ds(?L)\Ss(?L)\Wz\p{Cyrillic}uАz(?i)\p{Cyrillic}z\p{IsCyrillic}z\p{Script=Cyrillic}z\p{InCyrillic}z\p{Block=Cyrillic}z[[:Cyrillic:]]z[[:IsCyrillic:]]z[[:Script=Cyrillic:]]z[[:InCyrillic:]]z[[:Block=Cyrillic:]]z\P{Cyrillic}rgz\P{IsCyrillic}z\P{Script=Cyrillic}z\P{InCyrillic}z\P{Block=Cyrillic}z
\p{^Cyrillic}z\p{^IsCyrillic}z\p{^Script=Cyrillic}z\p{^InCyrillic}z\p{^Block=Cyrillic}z[[:^Cyrillic:]]z[[:^IsCyrillic:]]z[[:^Script=Cyrillic:]]z[[:^InCyrillic:]]z[[:^Block=Cyrillic:]]z\dr�r�r�r�z\Dz\Sz\Wz\p{L}r\z\p{Lu}�\p{Ll}rr^�\Xr7�àrc�aààeéé�r\r>rV�e�éué�\X{3}�aàà�eéé�

́Á��
rqúuÁu-09AZaz_Γγs-09AZaz_z#Ll Lm Lo Lt Lu Mc Me Mn Nd Nl No Pcu09AZaz_Γγz
[[:word:]]r�z[[:^word:]]�09z[[:digit:]]u
-AZaz_Γγz[[:^digit:]]z[[:alpha:]]uAZazΓγz[[:^alpha:]]z-09_z[[:alnum:]]u
09AZazΓγz[[:^alnum:]]z-_z[[:xdigit:]]�09Aaz
[[:^xdigit:]]u-Zz_Γγ)z\p{InBasicLatin}�aár\)z\P{InBasicLatin}rc�á)z(?i)\p{InBasicLatin}rcr\)z(?i)\P{InBasicLatin}rcrds09AZaz_s(?L)[[:word:]]�-s(?L)[[:^word:]]s09s(?L)[[:digit:]]s-AZaz_s(?L)[[:^digit:]]s(?L)[[:alpha:]]sAZazs(?L)[[:^alpha:]]s-09_s(?L)[[:alnum:]]s09AZazs(?L)[[:^alnum:]]s-_s(?L)[[:xdigit:]]s09Aas(?L)[[:^xdigit:]]s-Zz_s(?a)[[:word:]]s(?a)\Ws(?a)[[:^word:]]s(?a)\ds(?a)[[:digit:]]s(?a)\Ds(?a)[[:^digit:]]s(?a)[[:alpha:]]s(?a)[[:^alpha:]]s(?a)[[:alnum:]]s(?a)[[:^alnum:]]s(?a)[[:xdigit:]]s(?a)[[:^xdigit:]]rz
Failed: {}zFailed: {} raised {}z\p{NumericValue=0}z\p{NumericValue=1/2}�½z\p{NumericValue=0.5})
r)r-rBr/rAr/�setr�rNr0rG�	ExceptionrH)	r�chars_u�chars_b�word_set�testsrx�chars�expectedrYs	         r�test_propertieszRegexTests.test_properties�s��������\�7�;�;�T�B�B�B������]�G�<�<�d�C�C�C������Z��9�9�4�@�@�@�����e�k�%��8�8�9�9�4�@�@�@�	
����e�k�*�d�;�;�<�<�d�C�C�C�����e�k�*�d�;�;�<�<�d�C�C�C�����e�k�*�d�;�;�<�<�d�C�C�C������Z��6�6��=�=�=������Z��6�6��=�=�=������Z��6�6��=�=�=������Z��6�6��=�=�=������Z��6�6��=�=�=������Z��6�6��=�=�=�����e�k�*�d�;�;�<�<�d�C�C�C�����e�k�*�d�;�;�<�<�d�C�C�C�����e�k�*�d�;�;�<�<�d�C�C�C�����e�k�/�
)�+�+�,�,�-1�	3�	3�	3�����e�k�*=�
)�+�+�,�,�-1�	3�	3�	3�����e�k�*;�
)�+�+�,�,�-1�	3�	3�	3�����e�k�*@�
)�+�+�,�,�-1�	3�	3�	3�����e�k�*;�
)�+�+�,�,�-1�	3�	3�	3�����e�k�*?�
)�+�+�,�,�-1�	3�	3�	3�����e�k�*;�
)�+�+�,�,�-1�	3�	3�	3�����e�k�*=�
)�+�+�,�,�-1�	3�	3�	3�����e�k�*B�
)�+�+�,�,�-1�	3�	3�	3�����e�k�*=�
)�+�+�,�,�-1�	3�	3�	3�����e�k�*A�
)�+�+�,�,�-1�	3�	3�	3�	
����e�k�/�
&�(�(�)�)�*.�	0�	0�	0�����e�k�*;�
&�(�(�)�)�*.�	0�	0�	0�����e�k�*@�
&�(�(�)�)�*.�	0�	0�	0�����e�k�*;�
&�(�(�)�)�*.�	0�	0�	0�����e�k�*?�
&�(�(�)�)�*.�	0�	0�	0�����e�k�*:�
&�(�(�)�)�*.�	0�	0�	0�����e�k�*<�
&�(�(�)�)�*.�	0�	0�	0�����e�k�*A�
&�(�(�)�)�*.�	0�	0�	0�����e�k�*<�
&�(�(�)�)�*.�	0�	0�	0�����e�k�*@�
&�(�(�)�)�*.�	0�	0�	0�����e�k�*<�
&�(�(�)�)�*.�	0�	0�	0�����e�k�*>�
&�(�(�)�)�*.�	0�	0�	0�����e�k�*C�
&�(�(�)�)�*.�	0�	0�	0�����e�k�*>�
&�(�(�)�)�*.�	0�	0�	0�����e�k�*B�
&�(�(�)�)�*.�	0�	0�	0�	
����e�k�%��5�5�6�6��=�=�=�����e�k�%��5�5�6�6��=�=�=�����e�k�%��5�5�6�6��=�=�=������U�C�0�0�$�7�7�7������U�C�0�0�$�7�7�7������U�C�0�0�$�7�7�7������U�C�0�0�$�7�7�7������U�C�0�0�$�7�7�7������U�C�0�0�$�7�7�7�����e�k�%��5�5�6�6��=�=�=�����e�k�%��5�5�6�6��=�=�=�����e�k�%��5�5�6�6��=�=�=�����e�k�(�C�8�8�9�9�4�@�@�@�����e�k�(�C�8�8�9�9�4�@�@�@�����e�k�)�S�9�9�:�:�D�A�A�A�����e�k�)�S�9�9�:�:�D�A�A�A�����e�k�(�C�8�8�9�9�4�@�@�@�����e�k�(�C�8�8�9�9�4�@�@�@�����e�k�%��5�5�6�6��=�=�=�����e�k�%��5�5�6�6��=�=�=�����e�k�%��5�5�6�6��=�=�=������U�F�3�3�8�8�:�:�F�C�C�C������U�I�6�6�;�;�=�=�v�F�F�F������u�
$�&�&�(�(�(�	�	�	�	
�����x�
$�&�&�(6��'G�	I�	I�	I������u�.C�D�D�
-�
-�
-�	/�	/�	/�	
����e�k�)�S�9�9�:�:�D�A�A�A�(�����<�B�B�D�D�E�E��1
�
�G�2�3�1
�
�G�%:�;�1
��G�S�!�1
��W�c�*�	1
�
�G�T�"�1
��W�d�+�
1
��G�1�2�1
��g�';�<�1
��W�&8�9�1
��g�v�.�1
��W�&:�;�1
��g�t�,�1
��g�v�.�1
��w�(:�;�1
�
0�1
� 
3�!1
�"
4�#1
�$
7�%1
�(��*�-�)1
�* ��*�5�+1
�,��$�'�-1
�.!�'�4�0�/1
�0��%�(�11
�2!�'�5�1�31
�4��)�,�51
�6"�7�I�6�71
�8!�'�7�3�91
�:"�7�G�4�;1
�<!�'�9�5�=1
�>"�7�E�2�?1
�@"�7�G�4�A1
�B#�G�W�5�C1
�F��*�-�G1
�H ��*�5�I1
�J��$�'�K1
�L!�'�4�0�M1
�N��%�(�O1
�P!�'�5�1�Q1
�R��)�,�S1
�T"�7�I�6�U1
�V!�'�7�3�W1
�X"�7�G�4�Y1
�Z!�'�9�5�[1
�\"�7�E�2�]1
�^"�7�G�4�_1
�`#�G�W�5�a1
��d).�	L�	L�$�G�U�H�
L��#�A�#�;�#�#�E�M�'�5�$A�$A�B�B�h�N�N��I�I�l�1�1�'�:�:�;�;�;����
L�
L�
L��	�	�0�7�7���q���J�J�K�K�K�K�K�K�K�K�����
L����	
����e�k�*?��E�E�F�F�
�	�	�	�����e�k�*A�
(�*�*�+�+�,0�	2�	2�	2�����e�k�*A�
(�*�*�+�+�,0�	2�	2�	2�	2�	2s�?A|�
}&�&6}!�!}&c�\�|�tjdd��dg��|�tjdd��ddg��|�tjdd��gd���|�tjd	d��gd
���dS)N�\w+u हिन्दी,�हिन्दीz\W+r��,r�)r�rrrsz(?V1)\B)r�u हuिuनu्uदuी,r�)r)r-r/r�rCs r�test_word_classzRegexTests.test_word_class�s��������v�
2�4�4�1�
2�	4�	4�	4�	
�����v�
2�4�4�69�3�Z�	A�	A�	A������Z�
2�4�4�67�67�67�	8�	8�	8�	
�����Z�
2�4�4�6A�6A�6A�	B�	B�	B�	B�	Brc�\�|�tjdd��ddg��dS)N�\G\w{2}�abcd efrrrrCs r�test_search_anchorzRegexTests.test_search_anchor�s.�������z�9�=�=��d�|�L�L�L�L�Lrc	��|�tjdd��gd���|�tjddd���gd���|�tjdd��dd	g��|�tjddd���gd
���|�tjddd���d
dg��|�d�tjdd��D��gd���|�d�tjddd���D��gd
���|�d�tjdd��D��gd���|�d�tjddd���D��gd
���|�tjdd��gd���|�tjdd��gd���|�tjdd��gd���|�tjdd��gd���|�d�tjdd��D��gd���|�d�tjdd��D��gd���|�d�tjdd��D��gd���|�d�tjdd��D��gd���|�tjdd��d d!g��|�tjd"d#��d d!g��|�tjd$d��g��|�tjd%d��d&g��|�tjd'd(��gd)���|�tjd*d(��gd)���|�tjd+d(��gd,���|�tjd-d(��gd,���|�tjd.d#d/d0�1��d2d3g��|�tjd.d#d/d4�1��d2d3g��|�d5�tjd.d#d/d0�1��D��d2d3g��|�d6�tjd.d#d/d4�1��D��d2d3g��|�d7�tjdd#d/d0�1��D��d3d2g��|�d8�tjdd#d/d4�1��D��d3d2g��|�tjdd#d/d0�1��d3d2g��|�tjdd#d/d4�1��d3d2g��|�tjd9d:tj��d;d<g��|�tjd=d:tj��d<d;g��|�tjd>d��d	g��|�tjd>dd���d	d g��|�tjd?d@��dAdBg��|�tjdCd@��dDdEg��|�dF�tjd>d��D��d	g��|�dG�tjd>dd���D��d	d g��|�dH�tjd?d@��D��dIdJg��|�dK�tjdCd@��D��dLdMg��|�tjdNdN�����dO��|�tjdPdN�����dO��|�tjdQdR�����dO��|�tjdSdR�����dO��|�tjdTdUd��d��|�tjdVdUd��d��dS)WNz(?r).r�)r�r�r\T��
overlapped�(?r)..�abcder�r�r�rrr�
(?r)(.)(-)(.)�a-b-c�r�r�r��r\r�r�c��g|]
}|d��Sr�rSr�s  rr�z2RegexTests.test_search_reverse.<locals>.<listcomp>����H�H�H�1�!�A�$�H�H�Hrc��g|]
}|d��Sr�rSr�s  rr�z2RegexTests.test_search_reverse.<locals>.<listcomp>��(�����1�!�A�$���rc��g|]
}|d��Sr�rSr�s  rr�z2RegexTests.test_search_reverse.<locals>.<listcomp>�r�rc��g|]
}|d��Sr�rSr�s  rr�z2RegexTests.test_search_reverse.<locals>.<listcomp>�r�r�^|\w+�foo bar�r�r�r��
(?V1)^|\w+�	(?r)^|\w+�r�r�r��(?rV1)^|\w+c��g|]
}|d��Sr�rSr�s  rr�z2RegexTests.test_search_reverse.<locals>.<listcomp>����L�L�L�1�!�A�$�L�L�Lrc��g|]
}|d��Sr�rSr�s  rr�z2RegexTests.test_search_reverse.<locals>.<listcomp>��(�����1�!�A�$���rc��g|]
}|d��Sr�rSr�s  rr�z2RegexTests.test_search_reverse.<locals>.<listcomp>�r�rc��g|]
}|d��Sr�rSr�s  rr�z2RegexTests.test_search_reverse.<locals>.<listcomp>�r�rrvrwrrz
.{2}(?<=\G.*)r�z(?r)\G\w{2}z(?r)\w{2}\G�efzq*�qqwe)�qqr�r�r�z(?V1)q*z(?r)q*)r�r�r�r�z(?rV1)q*rPr:r;�r>r?r�r�r�c��g|]
}|d��Sr�rSr�s  rr�z2RegexTests.test_search_reverse.<locals>.<listcomp>��(�����1�!�A�$���rc��g|]
}|d��Sr�rSr�s  rr�z2RegexTests.test_search_reverse.<locals>.<listcomp>�r�rc��g|]
}|d��Sr�rSr�s  rr�z2RegexTests.test_search_reverse.<locals>.<listcomp>�r�rc��g|]
}|d��Sr�rSr�s  rr�z2RegexTests.test_search_reverse.<locals>.<listcomp>�r�rz[ab]�aBr\�Bz(?r)[ab]z(?r).{2}�(\w+) (\w+)zfirst second third fourth fifthr()�third�fourthz(?r)(\w+) (\w+))r��fifth)r'r�c��g|]
}|d��Sr�rSr�s  rr�z2RegexTests.test_search_reverse.<locals>.<listcomp>���K�K�K�1�!�A�$�K�K�Krc��g|]
}|d��Sr�rSr�s  rr�z2RegexTests.test_search_reverse.<locals>.<listcomp>
r�rc��g|]
}|d��Sr�rSr�s  rr�z2RegexTests.test_search_reverse.<locals>.<listcomp>�(��.�.�.�1�!�A�$�.�.�.rr%zthird fourthc��g|]
}|d��Sr�rSr�s  rr�z2RegexTests.test_search_reverse.<locals>.<listcomp>r�rzfourth fifthzsecond thirdr3roz
(?r)abcdefz
(?i)abcdef�ABCDEFz(?ir)abcdef�(.)r��(?r)(.))r)r-r/r�rvr@rArjrCs r�test_search_reversezRegexTests.test_search_reverse�s�������x��7�7����I�I�I������x��4�H�H�H�K�K�K�	�	�	������y�'�:�:�T�4�L�I�I�I������y�'�d�K�K�K�
"�
"�
"�	$�	$�	$������'7������,�o�>�	@�	@�	@�	
���H�H���x��(G�(G�H�H�H�K�K�K�	�	�	��������y�'��)�)�)����5�5�5�	7�	7�	7����H�H���x��(G�(G�H�H�H�K�K�K�	�	�	��������y�'��)�)�)����5�5�5�	7�	7�	7�	
�����x��;�;�>�>�>�	�	�	������}�i�@�@�C�C�C�	�	�	������|�Y�?�?�B�B�B�	�	�	������~�y�A�A�D�D�D�	�	�	�	
���L�L���x��(K�(K�L�L�L�
�
�
�	�	�	��������}�
�)�)����)�)�)�	+�	+�	+��������|�
�)�)����)�)�)�	+�	+�	+��������~�
�)�)����)�)�)�	+�	+�	+�	
�����z�9�=�=��d�|�L�L�L������'7��@�@�4��,�O�O�O������~�y�A�A�2�F�F�F������~�y�A�A�D�6�J�J�J������u�f�5�5�7I�7I�7I�J�J�J������z�6�:�:�<N�<N�<N�O�O�O������y�&�9�9�;M�;M�;M�N�N�N������{�F�;�;�>�>�>�	�	�	�	
�����s�F��!�D�D�D�s�

�G�	�	�	������s�F��"�E�E�E��

�H�	�	�	��������s�F���)�)�)�����C�j�	"�	"�	"��������s�F���)�)�)�����S�z�	#�	#�	#�	
�������w��A��)�)�)�����C�j�	"�	"�	"��������w��A��)�)�)�����S�z�	#�	#�	#������w��A�a�H�H�H�3�

�K�	�	�	������w��A�b�I�I�I���*�	�	�	�	
�����w��e�g�>�>��c�
�K�K�K������{�D�%�'�B�B�S�#�J�O�O�O������{�E�:�:�T�F�C�C�C������{�E�d�K�K�K���,�	�	�	������~�
+�-�-�/B�E�/�	�	�	�	
�����'9�
+�-�-�/B�E�/�	�	�	�	
���K�K���{�E�(J�(J�K�K�K��&�	�	�	��������{�E��)�)�)����"�D�\�	+�	+�	+����.�.���~�
+�)-�)-�.�.�.�0>�
�0�	�	�	�	
���.�.���7I�
+�)-�)-�.�.�.�0>�
�0�	�	�	�	
�����h��9�9�>�>�@�@�&�I�I�I������l�H�=�=�B�B�D�D�f�M�M�M������l�H�=�=�B�B�D�D�f�M�M�M������m�X�>�>�C�C�E�E�v�N�N�N������6�5�%�8�8�%�@�@�@������:�u�e�<�<�e�D�D�D�D�Drc�X�|�tjdd��d��dS)Nz(?>a*)ar rzrCs r�test_atomiczRegexTests.test_atomics*�������j�$�7�7��>�>�>�>�>rc�F�|�tjdd�����d��|�tjdd�����d��|�tjdd�����d��|�tjdd�����d��|�tjd	d
�����d��|�tjdd
�����d��|�tjdd
�����d��|�tjdd
�����d��|�tjdd��d��|�tjdd��d��|�tjdd��d��|�tjdd��d��|�tjdd
��d��|�tjdd
��d��|�tjdd
��d��|�tjdd
��d��dS)Nza?ar\r7za*ar<r>za+aza{1,3}az	(?:ab)?abrrcz	(?:ab)*ab�abababroz	(?:ab)+abz
(?:ab){1,3}abza?+aza*+aza++aza{1,3}+az
(?:ab)?+abz
(?:ab)*+abz
(?:ab)++abz(?:ab){1,3}+ab�r)r-r@rArCs r�test_possessivezRegexTests.test_possessives��������f�c�2�2�7�7�9�9�6�B�B�B������f�e�4�4�9�9�;�;�V�D�D�D������f�e�4�4�9�9�;�;�V�D�D�D������j�%�8�8�=�=�?�?��H�H�H�	
�����l�D�9�9�>�>�@�@�&�I�I�I������l�H�=�=�B�B�D�D�f�M�M�M������l�H�=�=�B�B�D�D�f�M�M�M������&6��A�A�F�F�H�H�K
�	�	�	�	
�����g�s�3�3�T�:�:�:������g�u�5�5�t�<�<�<������g�u�5�5�t�<�<�<������k�5�9�9�4�@�@�@�	
�����m�T�:�:�D�A�A�A������m�X�>�>��E�E�E������m�X�>�>��E�E�E������&7��B�B�D�I�I�I�I�Irc���tjdkr,|�tjdd��gd���n*|�tjdd��dg��|�tjdd��gd���|�tjdd��gd���|�d	�tjdd��D��gd���|�tjd
d��gd���|�d�tjd
d��D��gd���|�tjd
d��gd���|�d�tjd
d��D��gd���|�tjdd��gd���|�d�tjdd��D��gd���tjdkra|�tjdd��gd���|�d�tjdd��D��gd���n^|�tjdd��dg��|�d�tjdd��D��dg��tjdkra|�tjdd��gd���|�d�tjdd��D��gd���n^|�tjdd��dg��|�d�tjdd��D��dg��|�tjdd��gd���|�d�tjdd��D��gd���|�tjdd��gd���|�d�tjdd��D��gd���dS)Nr�z\brW)r�r\r�r�r�r�r�r�r�c��g|]
}|d��Sr�rSr�s  rr�z-RegexTests.test_zerowidth.<locals>.<listcomp>Fr�rr�r�c��g|]
}|d��Sr�rSr�s  rr�z-RegexTests.test_zerowidth.<locals>.<listcomp>Jr�rr�c��g|]
}|d��Sr�rSr�s  rr�z-RegexTests.test_zerowidth.<locals>.<listcomp>Nr�rr�c��g|]
}|d��Sr�rSr�s  rr�z-RegexTests.test_zerowidth.<locals>.<listcomp>Rr�rr�r�)r�r%r\r%r�r%r�r�c��g|]}|��SrSrSr�s  rr�z-RegexTests.test_zerowidth.<locals>.<listcomp>X���G�G�G�A�a�G�G�Grc��g|]}|��SrSrSr�s  rr�z-RegexTests.test_zerowidth.<locals>.<listcomp>\r�rz(?r))r�r�r%r�r%r\r%r�c��g|]}|��SrSrSr�s  rr�z-RegexTests.test_zerowidth.<locals>.<listcomp>b���K�K�K�A�a�K�K�Krc��g|]}|��SrSrSr�s  rr�z-RegexTests.test_zerowidth.<locals>.<listcomp>fr�rz(?V1)c��g|]}|��SrSrSr�s  rr�z-RegexTests.test_zerowidth.<locals>.<listcomp>kr�rz(?rV1)c��g|]}|��SrSrSr�s  rr�z-RegexTests.test_zerowidth.<locals>.<listcomp>ps��I�I�I��!�I�I�Ir)r�r�r)r-r�r/r�r�rCs r�test_zerowidthzRegexTests.test_zerowidth9s�����y�(�(����U�[���6�6�9�9�9�
�
�
�
�
���U�[���6�6���@�@�@������Z��7�7�:�:�:�	�	�	�	
�����x��;�;�>�>�>�	�	�	����L�L���x��(K�(K�L�L�L�
�
�
�	�	�	������|�Y�?�?�B�B�B�	�	�	��������|�
�)�)����)�)�)�	+�	+�	+������}�i�@�@�C�C�C�	�	�	��������}�
�)�)����)�)�)�	+�	+�	+������~�y�A�A�D�D�D�	�	�	��������~�
�)�)����)�)�)�	+�	+�	+���y�(�(����U�[��X�6�6�9!�9!�9!�
"�
"�
"����G�G����X�)F�)F�G�G�G�J0�J0�J0�
1�
1�
1�
1�
���U�[��X�6�6��
�C�C�C����G�G����X�)F�)F�G�G�G��j�
�
�
���y�(�(����U�[���:�:�=!�=!�=!�
"�
"�
"����K�K�����)J�)J�K�K�K�4�4�4�
6�
6�
6�
6�
���U�[���:�:�X�J�G�G�G����K�K�����)J�)J�K�K�K��j�
�
�
�	
�����W�h�7�7�:�:�:�	�	�	����H�H�U�_�W�h�%G�%G�H�H�H�K,�K,�K,�	-�	-�	-�	
�����X�x�8�8�;�;�;�	�	�	����I�I�U�_�X�x�%H�%H�I�I�I�L,�L,�L,�	-�	-�	-�	-�	-rc��|�tjdd�����d��|�tjdd�����d��|�tjdd�����d��|�tjdd��d��|�tj|jd���|�tjdd��d��|�tjd	d��d��|�tjd
dtj���d��|�tjddtj���d��|�tjd
dtj������d��dS)Nz(?i)Abrrcz(?i:A)bzA(?i)bzA(?iV1)bc�D�tjddtj���S)Nz	(?V0-i)AbrrMrzrSrrrVz9RegexTests.test_scoped_and_inline_flags.<locals>.<lambda>zs��
�,�|�T���
9�
9�
9�rz(?V0)Abz(?V1)Abz	(?V1-i)AbrMz(?-i:A)bz	A(?V1-i)b)r)r-r@rAr}r��
CANT_TURN_OFFrvrCs r�test_scoped_and_inline_flagsz'RegexTests.test_scoped_and_inline_flagsss��������i��6�6�;�;�=�=�v�F�F�F������j�$�7�7�<�<�>�>��G�G�G������i��6�6�;�;�=�=�v�F�F�F������k�4�8�8�$�?�?�?����u�{�D�,>�A:�A:�	;�	;�	;�	
�����j�$�7�7��>�>�>������j�$�7�7��>�>�>������l�D���H�H�H�$�O�O�O������k�4�u�w�G�G�G��N�N�N������l�D�����������	)�	)�	)�	)�	)rc�h�|�tjdd�����d��|�tjdd�����d��|�tjdd�����d��dS)Nz(?:a+)+r<r>z
(?:(?:ab)+c)+�abcabcroz
(?:a+){2,}r�rCs r�test_repeated_repeatsz RegexTests.test_repeated_repeats�s��������j�%�8�8�=�=�?�?��H�H�H������&6��A�A�F�F�H�H�K
�	�	�	�	
�����m�U�;�;�@�@�B�B�F�K�K�K�K�Krc	��	�|�tjdd�����d��|�tjdd��d��|�tjdd��d��|�tjdd�����d��|�t	tjdd����d��|�tjd	d��d��|�t	tjd
d����d��|�tjdd��d��|�tjdd��d��|�tjd
d��d��|�t	tjdd����d��|�tjdd��d��|�t	tjdd����d��|�t	tjdd����d��|�tjdd��d��|�t	tjdd����d��|�tjdd��d��|�t	tjdd����d��|�tjdd��d��|�tjdd��d��|�tjdd��d��|�t	tjdd����d��|�t	tjdd����d��|�tjdd��d��|�t	tjdd����d��|�t
ttjd������|j	��dS)Nz123(?<=a\d+)�a123�r:r��b123z123(?<!a\d+)z
(a)b(?<=b)(c)r�Tz
(a)b(?<=c)(c)z(a)b(?=c)(c)z(a)b(?=b)(c)z(?:(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)|(x))b(?=(?(2)x|c))cz(?:(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)z(a)b(?<=(?(1)b|x))(c)z(a)b(?=(?(2)x|c))(c)z(a)b(?=(?(2)b|x))(c)z(a)b(?=(?(1)c|x))(c)z(a)\2(b))
r)r-r@rAr/rBr�r"r.r�rCs r�test_lookbehindzRegexTests.test_lookbehind�s��������o�v�>�>�C�C�E�E�v�N�N�N������o�v�>�>��E�E�E������o�v�>�>��E�E�E������o�v�>�>�C�C�E�E�v�N�N�N�����e�k�/�5�A�A�B�B�D�I�I�I������_�e�<�<�d�C�C�C�����e�k�.�%�@�@�A�A�4�H�H�H������^�U�;�;�T�B�B�B������%B�E�J�J�
�	�	�	������%B�E�J�J�
�	�	�	�����e�k�*G�
������	�	�	������%B�E�J�J�
�	�	�	�����e�k�*G�
������	�	�	�	
����e�k�*F�
������	�	�	������%A�5�I�I�
�	�	�	�����e�k�*F�
������	�	�	������%A�5�I�I�
�	�	�	�����e�k�*F�
������	�	�	�	
�����%<�e�D�D�d�K�K�K������%<�e�D�D�d�K�K�K������%<�e�D�D�d�K�K�K�����e�k�*A�5�I�I�J�J�
�	�	�	�	
����e�k�*@�%�H�H�I�I�
�	�	�	������%;�U�C�C�T�J�J�J�����e�k�*@�%�H�H�I�I�
�	�	�	�	
����d�5�=��#=�#=�>�>�?�?�
�
�	�	�	�	�	rc�`�tjdkr+|�tjddd��d��n*|�tjddd��d��|�tjddd��d��tjdkr+|�tjddd��d	��n*|�tjddd��d
��|�tjddd��d	��tjdkr+|�tjddd��d��n*|�tjddd��d
��|�tjddd��d��dS)Nr�z
(?V0)(x)?(y)?z\2-\1rEzy-x-zy-xz
(?V1)(x)?(y)?r%z-x-z-xr&zy--zy-r�rCs r�test_unmatched_in_subz RegexTests.test_unmatched_in_sub�s�����y�(�(����U�Y�'7��4�H�H��
�
�
�
�
���U�Y�'7��4�H�H��
�
�
������#3�X�t�D�D�f�M�M�M���y�(�(����U�Y�'7��3�G�G��O�O�O�O����U�Y�'7��3�G�G��N�N�N������#3�X�s�C�C�U�K�K�K���y�(�(����U�Y�'7��3�G�G��O�O�O�O����U�Y�'7��3�G�G��N�N�N������#3�X�s�C�C�U�K�K�K�K�Krc�N�tjd��}tjdkr,|�|�d�d��d��n+|�|�d�d��d��|�d�|�d��D��d	d
g��tjd��}|�|�d�d��d��|�d
�|�d��D��d	d
g��dS)NzD(?mV0)(?P<trailing_ws>[ \t]+\r*$)|(?P<no_final_newline>(?<=[^\n])\Z)r�c��d|jzdzS�N�<�>�r�rTs rrVz+RegexTests.test_bug_10328.<locals>.<lambda>�����a�k�0A�C�0G�rzfoobar )z%foobar<trailing_ws><no_final_newline>r�c��d|jzdzSr�r�rTs rrVz+RegexTests.test_bug_10328.<locals>.<lambda>�r�r)zfoobar<trailing_ws>r:c�6�g|]}|�����SrS�r�r�s  rr�z-RegexTests.test_bug_10328.<locals>.<listcomp>�� ��E�E�E��!�'�'�)�)�E�E�Err�r�zD(?mV1)(?P<trailing_ws>[ \t]+\r*$)|(?P<no_final_newline>(?<=[^\n])\Z)c��d|jzdzSr�r�rTs rrVz+RegexTests.test_bug_10328.<locals>.<lambda>�s��C�!�+�,=��,C�rc�6�g|]}|�����SrSr�r�s  rr�z-RegexTests.test_bug_10328.<locals>.<listcomp>�r�r)r-r.r�r�r)r�r�r�s  r�test_bug_10328zRegexTests.test_bug_10328�sd���m�c�d�d����y�(�(����S�X�X�&G�&G����F�
H�
H�
H�
H�
���S�X�X�&G�&G����4�
6�
6�
6����E�E�S�\�\�)�-D�-D�E�E�E��
�H�	�	�	��m�c�d�d��������"C�"C�
���B�	D�	D�	D����E�E�S�\�\�)�-D�-D�E�E�E��
�H�	�	�	�	�	rc�L�|�tjdd��ddg��|�tjddd���gd���|�tjdd��d	d
g��|�tjddd���gd���|�tjdd
d���ddg��|�d�tjdd��D��ddg��|�d�tjddd���D��gd���|�d�tjdd��D��d	d
g��|�d�tjddd���D��gd���|�d�tjdd
d���D��ddg��|�d�tjdd
d���D��ddg��dS)N�..r}rrTrz)rrrr�r|r�rr~z	(.)(-)(.)r�r�r�c��g|]
}|d��Sr�rSr�s  rr�z.RegexTests.test_overlapped.<locals>.<listcomp>�s��G�G�G�1�!�A�$�G�G�Grc��g|]
}|d��Sr�rSr�s  rr�z.RegexTests.test_overlapped.<locals>.<listcomp>�r�rc��g|]
}|d��Sr�rSr�s  rr�z.RegexTests.test_overlapped.<locals>.<listcomp>�r�rc��g|]
}|d��Sr�rSr�s  rr�z.RegexTests.test_overlapped.<locals>.<listcomp>�r�rc�6�g|]}|�����SrS�r<r�s  rr�z.RegexTests.test_overlapped.<locals>.<listcomp>��,��%�%�%��!�(�(�*�*�%�%�%rc�6�g|]}|�����SrSr�r�s  rr�z.RegexTests.test_overlapped.<locals>.<listcomp>�r�rr)r)r-r/r�rCs r�test_overlappedzRegexTests.test_overlapped�s��������u�g�6�6��t��E�E�E������u�g�$�G�G�G�J�J�J�	�	�	������y�'�:�:�T�4�L�I�I�I������y�'�d�K�K�K�
"�
"�
"�	$�	$�	$������|�W��N�N�N��O�
,�	.�	.�	.�	
���G�G���u�g�(F�(F�G�G�G�$�
�J�	�	�	��������u�g��)�)�)����5�5�5�	7�	7�	7����K�K���y�'�(J�(J�K�K�K���,�	�	�	��������y�'��)�)�)����5�5�5�	7�	7�	7�	
���%�%�e�n�\�
�d�/$�/$�/$�%�%�%�'6��&H�	J�	J�	J����%�%�e�n�=M�
�d�/$�/$�/$�%�%�%�'6��&H�	J�	J�	J�	J�	Jrc���|�tjdd��gd���|�d�tjdd��D��gd���dS)Nrsza,b,,c,)r\r�r�r�r�c��g|]}|��SrSrSr�s  rr�z-RegexTests.test_splititer.<locals>.<listcomp>�s��F�F�F��!�F�F�Fr)r)r-r�r�rCs r�test_splititerzRegexTests.test_splititer�s|�������T�9�5�5�7N�7N�7N�O�O�O����F�F�U�_�T�9�%E�%E�F�F�F�I�I�I�	�	�	�	�	rc���|�tjdd�����d��|�tjdd�����d��|�tjdd��gd���|�tjdd��d	d
g��|�tjdd��gd���dS)
NrUr>r7rVrcrWrXr[r\r]r^r_)r)r-rBrAr/rCs r�
test_graphemezRegexTests.test_graphemes
�������U�F�3�3�8�8�:�:�F�C�C�C������U�I�6�6�;�;�=�=�v�F�F�F������u�
$�&�&�(�(�(�	�	�	�	
�����x�
$�&�&�(6��'G�	I�	I�	I������u�.C�D�D�
-�
-�
-�	/�	/�	/�	/�	/rc��d}|�tjd|��gd���|�tjd|��gd���d}|�tjd|��gd���|�tjd|��gd���d}|�tjd|��gd	���|�tjd|��gd
���dS)Nz4The quick ("brown") fox can't jump 32.3 feet, right?r�)r��Ther��quickz ("�brownz") �foxr��can�'�tr��jumpr��32rP�3r��feet�, �rightr�z(?V1w)\b)r�r�r�r�r�r�"r�r��)r�r�r��can'tr�r�r�z32.3r�r�rsr�r�r�r�zThe  fox)r�r�z  r�r�zcan't aujourd'hui l'objectif)
r�r�r�r�r��aujourdr��huir��lr��objectifr�)r�r�r�zaujourd'huir�z
l'objectifr�)r)r-r��r�texts  r�test_word_boundaryzRegexTests.test_word_boundarysa��F�������Z��6�6�9�9�9�	�	�	�	
�����[�$�7�7�:�:�:�	�	�	�
�������Z��6�6�9�9�9�	�	�	������[�$�7�7�:�:�:�	�	�	�.�������Z��6�6�9�9�9�	�	�	�	
�����[�$�7�7�:0�:0�:0�	1�	1�	1�	1�	1rc��|�tjdd��ddg��|�tjdd��dg��|�tjdd��ddg��|�tjd	d��ddg��|�tjd	d��ddg��|�tjd	d��ddg��|�tjd
d�����d��|�tjd
d
��d��|�tjd
d��d��|�tjdd�����d��|�tjdd
��d��|�tjdd��d��|�tjdd�����d��|�tjdd�����d��|�tjdd��d��|�tjdd�����d��|�tjdd�����d��|�tjdd�����d��|�tjdd�����d��|�tjdd
�����d��|�tjdd��d��|�tjdd�����d��|�tjdd
�����d��|�tjdd�����d��|�tjdd�����d��|�tjdd�����d��|�tjdd��d��|�tjdd�����d��|�tjdd�����d��|�tjdd�����d��dS)Nz.+zLine 1
Line 2
zLine 1zLine 2zLine 1
Line 2
zLine 1
Line 2
zLine 1
zLine 2
z(?w).+�^abcr�rz
abcz
abcz(?w)^abc�abc$zabc
zabc
z(?w)abc$�(?m)^abcr:z	(?mw)^abc�(?m)abc$z	(?mw)abc$)r)r-r/r@r�rCs r�test_line_boundaryzRegexTests.test_line_boundary$s!�������u�.@�A�A�H�
�D�	�	�	������u�.@�A�A��
�	 �	 �	 ������u�.D�E�E��z�
"�	$�	$�	$������y�2D�E�E��X�
�	 �	 �	 ������y�2D�E�E��X�
�	 �	 �	 ������y�2H�I�I��X�
�	 �	 �	 �	
�����g�u�5�5�;�;�=�=�q�A�A�A������g�w�7�7��>�>�>������g�w�7�7��>�>�>������k�5�9�9�?�?�A�A�1�E�E�E������k�7�;�;�T�B�B�B������k�7�;�;�T�B�B�B������g�u�5�5�;�;�=�=�q�A�A�A������g�w�7�7�=�=�?�?��C�C�C������g�w�7�7��>�>�>������k�5�9�9�?�?�A�A�1�E�E�E������k�7�;�;�A�A�C�C�Q�G�G�G������k�7�;�;�A�A�C�C�Q�G�G�G������k�5�9�9�?�?�A�A�1�E�E�E������k�7�;�;�A�A�C�C�Q�G�G�G������k�7�;�;�T�B�B�B������l�E�:�:�@�@�B�B�A�F�F�F������l�G�<�<�B�B�D�D�a�H�H�H������l�G�<�<�B�B�D�D�a�H�H�H������k�5�9�9�?�?�A�A�1�E�E�E������k�7�;�;�A�A�C�C�Q�G�G�G������k�7�;�;�T�B�B�B������l�E�:�:�@�@�B�B�A�F�F�F������l�G�<�<�B�B�D�D�a�H�H�H������l�G�<�<�B�B�D�D�a�H�H�H�H�Hrc�
�|�tjdd�����d��|�tjdd�����d��|�tjdd�����d��|�tjdd�����d��|�tjdd�����d	��|�tjdd
�����d��|�tjdd�����d	��|�tjdd
�����d��|�tjd
d�����d��|�tjdd�����d��|�tjdd�����d��|�tjdd�����d��|�tjdd�����d��|�tjdd�����d��|�tjdd�����d��|�tjdd�����d��|�tjdd�����d��|�tjdd�����d��|�tjdd�����d��|�tjdd�����d��|�tjdd�����dgdgd���|�tjdd�����d��|�tjdd�����d d!ggd���dS)"Nz(?:(a)|(b))(c)r
rrr&z(?:(?<a>a)|(?<b>b))(?<c>c)z!(?<a>a)(?:(?<b>b)|(?<c>c))(?<d>d)r)r\r�Nr�acd)r\Nr�rz(a)(?:(b)|(c))(d)z(a)(?|(b)|(b))(d))r\r�rz(?|(?<a>a)|(?<b>b))(c)z(?|(?<a>a)|(?<a>b))(c))r\r�)r�r�z$(?|(?<a>a)(?<b>b)|(?<b>c)(?<a>d))(e)�abe)r\r�rYr�)rr�rYz (?|(?<a>a)(?<b>b)|(?<b>c)(d))(e)z(?|(?<a>a)(?<b>b)|(c)(d))(e))r�rrYz (?|(?<a>a)(?<b>b)|(c)(?<a>d))(e)r\r�)r\r�)rNrYr�r)r)r-rBr<�capturesdictrCs r�test_branch_resetzRegexTests.test_branch_resetNs!�������%6��=�=�D�D�F�F�I�	�	�	������%6��=�=�D�D�F�F�I�	�	�	������%B�
�������*�	,�	,�	,������%B�
�������*�	,�	,�	,�	
�����%I�
�������0�	2�	2�	2������%I�
�������0�	2�	2�	2������%9�5�A�A�H�H�J�J�
�	!�	!�	!�	
�����%9�5�A�A�H�H�J�J�
�	!�	!�	!������%9�5�A�A�H�H�J�J�
�	�	�	������%>��E�E�L�L�N�N�
�	�	�	������%>��E�E�L�L�N�N�
�	�	�	������%>��E�E�L�L�N�N�
�	�	�	�	
�����%>��E�E�L�L�N�N�
�	�	�	�	
�����%L�
�������?�	,�	,�	,������%L�
�������?�	,�	,�	,������%H�
�������?�	,�	,�	,������%H�
�������?�	,�	,�	,������%D�
�������?�	,�	,�	,������%D�
�������?�	,�	,�	,�	
�����%H�
�������?�	,�	,�	,������%H�
��������u�C�5�!9�!9�	;�	;�	;������%H�
�������+�	-�	-�	-������%H�
��������S�z��!;�!;�	=�	=�	=�	=�	=rc	�$�|�tjdd�����d��|�tjdd�����d��|�tjdd�����d��|�tjdd�����d��|�tjdd	d
��d��|�tjdd
��dg��|�tjdd��dg��|�tjdd��ddg��|�tjdd��ddg��|�tjdd��ddg��|�tjdd��ddg��|�tjdd��gd���|�tjdd��gd���|�tjdd
��dg��|�tjdd
��dg��|�tjdd
��dg��|�tjdd
��dg��|�d �tjd!d"����d#��|�d �tjd$d"����d%��|�d �tjd&d'����d(��|�d �tjd)d*����d+��|�d �tjd,d*����d+��|�d �tjd-d.����d*��d �d/�td0��D����}|�ttjd1|����d2��|�ttjd3|����d4��|�ttjd5|����d6��|�ttjd7|����d8��|�ttjd9|����d8��|�ttjd:|����d6��|�ttjd;|����d<��|�ttjd=|����d>��|�ttjd?|����d@��|�ttjdA|����dB��|�ttjdC|����dB��|�ttjdD|����dE��|�ttjdF|����dG��|�ttjdH|����dG��|�tttjdI������|j��|�tjdJdK��ddLg��|�tjdMdK��ddLg��|�tjdNdK��ddLg��|�tjdOdK��ddLg��dS)PNz[a]r\r7z(?i)[a]rgz[a-b]z	(?i)[a-b]z(?V0)([][])r�za[b]cr�z[\p{Alpha}]�a0z(?i)[\p{Alpha}]�A0z[a\p{Alpha}]�ab0r�z[a\P{Alpha}]r�z(?i)[a\p{Alpha}]z(?i)[a\P{Alpha}]z[a-b\p{Alpha}]�abC0)r\r��Cz(?i)[a-b\p{Alpha}]�AbC0)rgr�rz[\P{Alpha}]z[^\p{Alpha}]z[^\P{Alpha}]r�z[^\d-h]za^b12c-hza^bcz[^\dh]za^bc-z	[^h\s\db]z	a^b 12c-hza^c-z[^b\w]rWr�z[^b\S]z[^8\d]za 1b2c3�4K�|]}t|��V��dSr�rk�r�r�s  r�	<genexpr>z&RegexTests.test_set.<locals>.<genexpr>�s(����9�9�q�C��F�F�9�9�9�9�9�9rrz	\p{ASCII}r�z
\p{Letter}�uz	\p{Digit}r_z(?V1)[\p{ASCII}&&\p{Letter}]�4z'(?V1)[\p{ASCII}&&\p{Alnum}&&\p{Letter}]z&(?V1)[\p{ASCII}&&\p{Alnum}&&\p{Digit}]z(?V1)[\p{ASCII}&&\p{Cc}]�!z(?V1)[\p{ASCII}&&\p{Graph}]�^z(?V1)[\p{ASCII}--\p{Cc}]�_z[\p{Letter}\p{Digit}]r�z(?V1)[\p{Letter}||\p{Digit}]z\p{HexDigit}�z(?V1)[\p{HexDigit}~~\p{Digit}]rbz(?V1)[\p{Digit}~~\p{HexDigit}]z(?V0)([][-])z(?V1)[[a-z]--[aei]]r�r�z(?iV1)[[a-z]--[aei]]z(?V1)[\w--a]z
(?iV1)[\w--a])
r)r-rBrArjr/rNr��lenr�r"r.r�)r�	all_charss  r�test_setzRegexTests.test_set�s%�������V�S�1�1�6�6�8�8�&�A�A�A������Z��5�5�:�:�<�<�f�E�E�E������X�t�4�4�9�9�;�;�V�D�D�D������\�4�8�8�=�=�?�?��H�H�H������>�4��A�A�7�K�K�K������~�t�<�<�s�e�D�D�D������'9�4�@�@�3�%�H�H�H��������>�>��c�
�K�K�K��������>�>��c�
�K�K�K������':�E�B�B�S�

�E�	�	�	������':�E�B�B�S�

�E�	�	�	�	
�����'8�&�A�A�D�D�D�	�	�	������'<�f�E�E�H�H�H�	�	�	�	
�����~�t�<�<�s�e�D�D�D������~�t�<�<�s�e�D�D�D��������=�=��u�E�E�E��������=�=��u�E�E�E���������z�:�!F�!F�G�G�
�	�	�	���������y�*�!E�!E�F�F�
�	�	�	���������|�[�!I�!I�J�J�
�	�	�	���������y�%�!@�!@�A�A�3�G�G�G���������y�%�!@�!@�A�A�3�G�G�G���������y�'�!B�!B�C�C�U�K�K�K��G�G�9�9�E�%�L�L�9�9�9�9�9�	�����U�]�<��C�C�D�D�c�J�J�J�����U�]�=�)�D�D�E�E�

�	�	�	�����U�]�<��C�C�D�D�b�I�I�I�	
����U�]�+J�
������	�	�	�����U�]�+U�
������	�	�	�����U�]�+T�
������	�	�	�����U�]�+F�
������	�	�	�����U�]�+I�
������	�	�	�����U�]�+F�
������	�	�	�����U�]�+C�
������	�	�	�����U�]�+J�
������	�	�	�����U�]�?�I�F�F�G�G�
�	�	�	�����U�]�+L�
������	�	�	�����U�]�+L�
������	�	�	�	
����d�5�=��#A�#A�B�B�C�C�
�
�	�	�	������'=�u�E�E��

�H�	�	�	������'>��F�F��

�I�	�	�	�������u�=�=��S�z�J�J�J������'7��>�>��c�
�K�K�K�K�Krc
�Y�gdddtj|jf�dddtj|jf�dddtj|jf�dddtj|jf�dddtj|jf�ddd	td
��f�dddtj|jf�dddtj|jf�d
ddtj|jf�dddtj|jf�dd
d	td
��f�ddd	td
��f�dddtd��f�ddd	td
��f�dddtd��f�dddtj|jf�dd
d	td
��f�ddd	td
��f�dd
dtj|jf�d�dtd��dzdttd��dz��f�dd
dtd
��f�ddd td!��f�d"d#dtd#��f�d$d#dtd#��f�d%d#dtd#��f�d&d#dtd��f�d'd(dtd(��f�d)d(dtd(��f�d*d+dttd,����f�d-d+dtd��f�d.d/dtd��f�d0d1dtd��f�d2d+dtd��f�d3d4dtd4��f�d5d4dtd4��f�d6d7dttd8��td9��ztd:��ztd;��ztd<��ztd=��z��f�d>d?dtd?��f�d@dAdtdB��f�dCdDdtdD��f�dCdEdtd��f�dFdGdtd��f�dHdGdtd��f�dCdIdtdI��f�dJdEdtdE��f�dKdEdtd��f�dLdEdtdE��f�dMdGdtdG��f�dNdGdtd��f�dOdGdtdG��f�dPdGdtdG��f�dQddtj|j	f�dR�dSdSdtdS��f�dSdTdtd��f�dSdUdtd��f�dSdVdtd��f�dSdWdtdS��f�dSdXdtdS��f�dYdSdtdS��f�dZdSdtdS��f�dZd[dtd[��f�dZd\dtd\��f�d]d[dtd[��f�d]dSdtd��f�d]d^dtd��f�d]d\dtd\��f�d_d[dtd[��f�d_dSdtdS��f�d_d\dtd��f�d`dSdtdS��f�dadSdtdS��f�dadbdtd��f�dcdbdtdS��f�dadddtd��f�dedddtdS��f�dfdSdtd��f�dgdSdtd��f�dhdSdtdS��f�dhdUdtdU��f�didjdtdj��f�didkdtd��f�dldSdtd��f�dldmdtdm��f�dndmdtd��f�dndodtdo��f�dpdqdtdr��f�dsdtdtdt��f�dudtdtdt��f�dvdtdtdt��f�dwdxdtj|j
f�dydxdtj|j
f�dzdxdtj|jf�d{dxdtj|j	f�d|dxdtj|jf�d}d}dtd}��f�d~ddtd��f�d~ddtd��f�d�d�dtd���f�d�dmdtd��f�d�d�dtd���f�d�d�dtd��f�d�d�dtd��f�d�d�dtd���f�d�dtdtd
��f�d�d�dtd
��f�d�d�dtd
��f�d�d�dtd��f�d�d�dtd��f�d�d�dtd��f�d�d�dtd��f�d�d�dtd���f�d�d�dtd���f�d�d�dtd��f�d�d�dtd��f�d�dtdtd��f�d�d�dtd��f�d�d�dtd��f�d�d�dtd��f�d�d�dtd��f�d�d�dtd���f�d�d�dtd���f�d�d�dtd���f�d�dSdtd���f�d�d�dtd���f�d�d�d�td���f�d�d�dtd��f�d�d�dtd���f�d�d�dtd���f�d�d�dtd���f�d�d�dtd���f�d�dSd�td���f�d�dSd�td���f�d�d�dtdS��f�d�d�d�td���f�d�d�d�td���f�d�d�d�td���f�d�dxdtj|j	f�d�d�dtd���f�dSddtd��f�d�ddtd��f�d�d�dtd���f�d�d�d�td���f�d�d�dtd���f�d�d�dtd���f�d�d�dtd
��f�d�d�d�tdƦ�f�d�d�dtdȦ�f�d�d�dtd��f�d�d�d�td���f�d�d�d�tdͦ�f�d�dSd�tdϦ�f�d�dSd�tdѦ�f�d�d�d�tdӦ�f�d�d�d�tdӦ�f�d�d�d�td֦�f�d�d�dtdئ�f�d�d�dtd��f�d�dSd�tdۦ�f�d�d�d�tdަ�f�d�d�dtd��f�d�d�d�td��f�d�d�d�td��f�d�d�d�td��f�d�d�dtd��f�d�d�dtd��f�d�d�d�td��f�d�d
dtd
��f�d�d�dtd��f�d�d�dtd��f�d�d�d�td��f�d�d�d�td���f�d�d�dtd��f�d�drdtdr��f�d�d�d	tdS��f�d�d�d	tdS��f�d�d�d	td���f�d��dd�t�d��f��d�ddtd��f�d�d�d�t�d��f��dd�d�t�d��f��ddd�t�d��f��ddd�t�d��f��d	dd�t�d��f��d
�dd�t�d��f��d
�dd�t�d��f��d�dd�t�d��f��d�dd�t�d��f��d�dd�t�d��f��dd�d�t�d��f��dd�d�t�d��f��d�dd�t�d��f��d�dd�t�d��f��d�dd�t�d��f��d�d �d!t�d"��f��d#�d$d�t�d%��f��d#�d&d�t�d'��f��d(�d)d�t�d*��f��d(dSdtd��f��d+�d)d�t�d,��f��d-dqd�t�d.��f��d/�ddtj|jf��d0�d�d1t�d2��f��d3�d�d1t�d4��f��d5�ddtj|jf��d6�d7dt�d7��f��d8�d7dtj|jf��d9�d:dt�d:��f��d9�d:dt�d;��f��d<�d=dt�d=��f��d>d
dtd
��f��d?�d@dt�d@��f��dAd
dtd
��f��dB�dCdt�dC��f��dD�d@dt�d@��f�dSdSdtdS��f�dSdTdtd��f�dSdUdtd��f�dSdVdtd��f�dSdWdtdS��f�dSdXdtdS��f�dYdSdtdS��f�dZdSdtdS��f�dZd[dtd[��f�dZd\dtd\��f��dEd\dtd\��f�d]d[dtd[��f�d]dSdtd��f�d]d^dtd��f��dFd^dtd��f�d]d\dtd\��f��dFd\dtd\��f��dGd\dtd\��f��dHd\dtd\��f��dId\dtd��f�d_d[dtd[��f�d_dSdtdS��f��dJdSdtdS��f�d_d\dtd��f�d`dSdtdS��f��dKdSdtdS��f�dadSdtdS��f�dadbdtd��f�dcdbdtdS��f�dadddtd��f�dedddtdS��f�dfdSdtd��f�dgdSdtd��f�dhdSdtdS��f�dhdUdtdU��f�didjdtdj��f�didkdtd��f�dldSdtd��f�dldmdtdm��f�dndmdtd��f�dndodtdo��f�dpdqdtdr��f�dsdtdtdt��f�dvdtdtdt��f��dLdxdtj|jf�dwdxdtj|j
f�dydxdtj|j
f�d}d}dtd}��f�d~ddtd��f�d�d�dtd���f�d�dmdtd��f�d�d�dtd���f�d�d�dtd��f�d�d�dtd��f�d�d�dtd���f�d�dSdtd���f�d�d�dtd���f�d�d�d�td���f��dMdxdtj|j
f��dNdxdtj|j
f�d�d�dtd��f�dzdxdtj|jf�d�d�dtd���f�d�d�dtd���f�d�d�dtd���f�d�d�dtd���f�d{dxdtj|j	f�d|dxdtj|jf�d�dSd�td���f�d�dSd�td���f�d�d�dtdS��f��dOd�dtdS��f��dPdxdtj|jf��dQd�dtdS��f�d�d�d�td���f��dRd�d�td���f�d�d�d�td���f��dSd�d�td���f�d�d�d�td���f��dTd�d�td���f�d�dxdtj|j	f�d�d�dtd���f�dSddtd��f�d�ddtd��f��dU�dVd�t�dW��f��dXd�d�t�dY��f�d�d�dtd���f�d�d�d�td���f�d�d�dtd���f�d�d�dtd���f�d�d�dtd
��f�d�d�d�tdƦ�f�d�d�dtdȦ�f�d�d�dtd��f�d�d�d�td���f�d�d�d�tdͦ�f�d�dSd�tdϦ�f�d�dSd�tdѦ�f�d�d�d�tdӦ�f�d�d�d�tdӦ�f�d�d�d�td֦�f�d�d�dtdئ�f�d�d�dtd��f�d�dSd�tdۦ�f�d�d�d�tdަ�f�d�d�dtd��f�d�d�d�td��f�d�d�d�td��f�d�d�d�td��f�d�d�dtd��f�d�d�dtd��f�d�d�d�td��f��dZd
�d[td
��f��d\ddtd��f��d]ddtj|jf��d^ddtj|jf�d�d
dtd
��f�d�d�dtd��f�d�d�dtd��f�d�d�d�td��f�d�d�d�td���f�d�d�dtd��f�d�drdtdr��f�d�d�d	tdS��f�d�d�d	tdS��f��d_�d`dt�d`��f��d_�dadtd��f��d_�dbdtd��f��d_�dcdtd��f��d_�dddt�d`��f��d_�dedt�d`��f��df�d`dt�d`��f��dg�d`dt�d`��f��dg�dhdt�dh��f��di�djdt�dj��f��dk�djdt�dj��f��dl�dhdt�dh��f��dm�d`dtd��f��dm�dndtd��f��do�dndtd��f��dm�djdt�dj��f��dp�djdt�dj��f��dq�djdt�dj��f��dr�djdt�dj��f��ds�djdtd��f��dt�dhdt�dh��f��dt�d`dt�d`��f��du�d`dt�d`��f��dt�djdtd��f��dv�d`dt�d`��f��dw�d`dt�d`��f��dx�d`dt�d`��f��dx�dydtd��f��dz�dydt�d`��f��dx�d{dtd��f��d|�d{dt�d`��f��d}�d`dtd��f��d~�d`dtd��f��d�d`dt�d`��f��d�dbdt�db��f��d��d�dt�d���f��d��d�dtd��f��d��d`dtd��f��d��d�dt�d���f��d��d�dtd��f��d��d�dt�d���f��d��d�dt�d���f��d��d�dt�d���f��d��d�dt�d���f��d�dxdtj|jf��d�dxdtj|j
f��d�dxdtj|j
f��d��d�dt�d���f��d��d�dt�d���f��d��d�dt�d���f��d��d�dtd��f��d��d�dt�d���f��d��d�dtd��f��d��d�dtd��f��d��d�dt�d���f��d��d`dtd���f��d��d�dtd���f��d��d�d�t�d���f��d�dxdtj|j
f��d�dxdtj|j
f��d��d�dtd��f��d�dxdtj|jf��d��d�dt�d���f��d�d�dtd���f��d��d�dt�d���f��d��d�dt�d���f��d�dxdtj|j	f��d�dxdtj|jf��d��d`d�t�d���f��d��d`d�t�d���f��d��d�dt�d`��f��d��d�dt�d`��f��d�dxdtj|jf��d��d�dt�d`��f��d��d�dt�d`��f��d��d�dt�d`��f��d�d�d�t�d���f��d�d�d�t�d���f��d�d�d�t�d���f��d�d�d�t�d���f��d�d�d�t�d���f��d�d�d�t�d���f��d�d�d�t�dæ�f��d�dxdtj|j	f��dŐd�dt�dƦ�f��d_ddtd��f��d�ddtd��f��dȐd�d�t�dʦ�f��dːd�d�t�d̦�f��d͐d�dt�dΦ�f��dϐd�d�t�dѦ�f��dҐd�dt�dӦ�f��dԐd�dtd���f��dԐd�dtd���f��dאd�d�t�d٦�f��dڐd�dt�dۦ�f��dܐd�dtd��f��dݐd�d�t�d���f��dߐd�d�t�d��f��d�d`d�t�d��f��d�d`d�t�d��f��d�d�d�t�d��f��d�d�d�t�d��f��d�d�d�t�d��f��d�d�dt�d��f��d�d�dtd��f��d�d`d�t�d��f��d�d�d�t�d��f��d�d�dt�d��f��d�d�d�t�d���f��d��d�d�t�d���f��d��d�d�t�d���f��d��d�dtd��f��d��d�dtd��f��d��d�d�t�d���f��d�d��d[td���f��d��ddt�d��f��dd�dtd���f��dd�d	td���f��d�dd	t�d��f��d�ddtd��f��d�ddt�d	��f��d
�d�d�t�d��f��d�d
d�t�d��f��dd�dtd��f��d�d�dt�d���f��d�d�d	t�d`��f��d�d�d	t�d`��f��d�ddt�d��f��d�ddt�d��f��d�ddt�d��f��ddod	td���f��ddod	td���f��ddod	td���f��ddo�dt�d��f��d�dd	t�d ��f��d!�d"d	t�d#��f��d$�d%d	t�d&��f��d'�d(dtj|jf��d)�d*dt�d*��f��d+�d,dt�d,��f��d-�d,dtd��f��d+�d(dt�d(��f��d-�d(dt�d(��f��d.�d,dt�d,��f��d/�d,dt�d,��f��d0�d*dt�d*��f�dc�d1dtd��f��d2�d1dtdS��f��d3�d4dtdS��f�dCdEdtd��f�dLdEdtdE��f��d5�d6dt�d7��f��d8�d6dt�d7��f��d9�d:dtdS��f��d;�d:dtdS��f��d<�d=dt�d=��f��d>�d?�d@t�dA��f��dB�d?�d@t�dA��f��dC�dD�dEt�dF��f��dGddtj|jf��dH�dIdtdm��f��dJddtj|jf��dK�dLdt�dL��f��dMd�dtd���f��dN�dOdt�dO��f��dP�dOdtd��f��dQ�dOdt�dO��f��dR�dOdt�dO��f��dS�dOdt�dO��f��dT�dOdt�dO��f��dU�dVdt�dW��f��dX�dYdt�dY��f��dZ�d[dt�d[��f��d\�d]dt�d]��f��d\�d^dt�d^��f��d_�d`d	td��f��da�dbdt�db��f��dc�dbdt�db��f��dd�dbdt�db��f��de�dbdt�db��f��df�dgdt�dg��f��dh�didtd��f��dj�dkdtd��f��dl�dOdtd��f��dmd��dEt�dn��f��dodS�dt�dp��f��dqdS�dt�dp��f��drdS�dt�dp��f��dsd
dtd
��f��ds�dtdt�dt��f��du�dtdt�dt��f�}|D�]�}d}	t!|���dvkr|\}}}}n|\}}}}}g}|ra|��dw��D]J}		|�t'|	�����&#t($r|�|	��Y�GwxYw|�T|�||��x��5|�||tj||��ddd��n#1swxYwY��tj||��}
|
r2|rt|
j|���}n't|
dd���}nt|
��}|�||����U#t($r\�dy��dz�|d�d{�D���d|gz��}|��d}�|����Y���wxYwdS(~Nz(?P<foo_123r�z(?P<1>a)z(?P<!>a)z(?P<foo!>a)z(?P<foo_123>a)(?P=foo_123r z(?P<foo_123>a)(?P=1)�1r\z(?P<foo_123>a)(?P=0)z(?P<foo_123>a)(?P=-1)z(?P<foo_123>a)(?P=!)z(?P<foo_123>a)(?P=foo_124)z(?P<foo_123>a)z(?P<foo_123>a)(?P=foo_123)z(?<foo_123>a)\g<foo_123z(?<foo_123>a)\g<1>z(?<foo_123>a)\g<!>z(?<foo_123>a)\g<foo_124>z
(?<foo_123>a)z(?<foo_123>a)\g<foo_123>r�)�[\1]r�r�z'\x01'r�r�9r�z\141z((a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)\119�abcdefghijklk9z0,11)r*�kr�r�z[\0a]z[a\0]z[^a\0]z\a[\b]\f\n\r\t\vz

	z[\a][\b][\f][\n][\r][\t][\v]z\xffr�r�z\x00ffffffffffffffz\x00f�z\x00fe�þz\x00ffz\t\n\v\r\f\a\gz	

gz	

\gz\t\n\v\r\f\ar]r^r_r`rarbrcz[\t][\n][\v][\r][\f][\b]z	

z^\w+=(\\[\000-\277]|[^\n\\])*z(SRC=eval.c g.c blah blah blah \\
	apes.cz SRC=eval.c g.c blah blah blah \\rQ�acbrRrSzacc
ccbza.{4,5}bza
bza.b(?s)z	a.b(?sV1)z(?s)a.bza.*(?s)bz
a.*(?sV1)bz(?s)a.*bz(?s)a.{4,5}br�)r�r�r�z''r��xbc�axc�abx�xabcy�ababczab*czab*bc�abbc�abbbbczab+bc�abqzab?bczab?crF�abccr�aabcr	�^rza.cza.*c�axyzc�axyzdza[bc]drza[b-d]e�aceza[b-d]�aacr
za[-b]�a-za[\-b]za[b-]za[]br�za[za\zabc)z(abcza]za[]]bza]bza[^bc]d�aedza[^-b]c�adcza-cza[^]b]cza]cz\ba\b�-az-a-z\by\brE�yzr�zx\bzx\Br%z\Bzr�zz\Bz\Bxz\Ba\Bz\By\Bz\By\br&z\by\Bzab|cdrr�z()ef�defz0,1)r�r�z$br�za\(b�a(b)rDza\(*bza((bza\\bza\br�z0,1,2)r\r\r\z(a)b(c))r�r\r�za+b+c�aabbabcz(a+|b)*)rr�z(a+|b)+z(a+|b)?r	z)(z[^ab]*r�r4z	a|b|c|d|erYz(a|b|c|d|e)fr�)r�rYzabcd*efg�abcdefgzab*�	xabyabbbz�xayabbbzz(ab|cd)er})r�rz[abhgefdc]ij�hijz	^(ab|cd)ez(abc|)efr3z(a|b)c*d)�bcdr�z
(ab|ab*)bc)r�r\z
a([bc]*)c*)r�rz
a([bc]*)(c*d))r�rrz
a([bc]+)(c*d)z
a([bc]*)(c+d))r�r�rz
a[bcd]*dcdcde�adcdcdez
a[bcd]+dcdcdez	(ab|a)b*c)r�rz((a)(b)c)(d)z1,2,3,4)r�r\r�rz[a-zA-Z_][a-zA-Z0-9_]*�alphaz^a(bc+|b[eh])g|.h$�abh)�bhNz(bc+d$|ef*g.|h?i(j|k))�effgz)rOrON�ij)rPrP�j�effg�bcdd�reffgzz(((((((((a)))))))))zmultiple words of textzuh-uhzmultiple wordszmultiple words, yeahz	(.*)c(.*))r}rr�z\((.*), (.*)\)z(a, b)z2,1)r�r\z[k]za[-]?cz(abc)\1r�z
([a-c]*)\1z^(.+)?B�ABrgz(a+).\1$r�)r�r z	^(a+).\1$�aaaa)r�r�z
([a-c]+)\1z(a)\1)r r\z(a+)\1z(a+)+\1z(a).+\1r)rr\z(a)ba*\1z
(aa|a)a\1$r<)r<r\z
(a|aa)a\1$z(a+)a\1$z
([abc]*)\1z
(a)(b)c|ab)rNNz(a)+x�aaax)rWr\z([ac])+x�aacx)rXr�z([^/]*/)*sub1/zd:msgs/tdir/sub1/trial/away.cpp)zd:msgs/tdir/sub1/ztdir/z([^.]*)\.([^:]*):[T ]+(.*)�track1.title:TBlah blah blahz0,1,2,3)rY�track1�titlezBlah blah blahz	([^N]*N)+�abNNxyzN)r\�xyzN�abNNxyz)�abNN�Nz	([abc]*)x�abcx)rar�z	([xyz]*)x)r%r�z	(a)+b|aac)r=Nz
(?P<i d>aaa)az(?P<id>aaa)az0,id)rVr<z(?P<id>aa)(?P=id))rVr z(?P<id>aa)(?P=xd)r��gz\g<1>z(.)\g<1>�gg)rcrbz\Nr`z\N{LATIN SMALL LETTER A}z\prrTz\P�Pz\P{Lu}zab{0,}bczab{1,}bcz	ab{1,3}bcz	ab{3,4}bcz	ab{4,5}bcz	ab{0,1}bczab{0,1}cza[b-a]z*az(*)bza{1,}b{1,}cza**za.+?cz
(a+|b){0,}z
(a+|b){1,}z(a+|b){0,1}z	([abc])*d�abbbcd)rer�z([abc])*bcd)r�r\z((((((((((a))))))))))�10z((((((((((a))))))))))\10z((((((((((a))))))))))\41z(?i)((((((((((a))))))))))\41z(?i)abcr]�XBC�AXC�ABX�XABCY�ABABCz(?i)ab*cz	(?i)ab*bc�ABBCz
(?i)ab*?bc�ABBBBCz
(?i)ab{0,}?bcz
(?i)ab+?bcz	(?i)ab+bc�ABQz(?i)ab{1,}bcz
(?i)ab{1,}?bcz(?i)ab{1,3}?bcz(?i)ab{3,4}?bcz(?i)ab{4,5}?bcz
(?i)ab??bcz(?i)ab{0,1}?bcz	(?i)ab??cz
(?i)ab{0,1}?cz	(?i)^abc$�ABCCz(?i)^abc�AABCz(?i)abc$z(?i)^z(?i)$z(?i)a.cz	(?i)a.*?c�AXYZCz(?i)a.*c�AXYZDz
(?i)a[bc]d�ABDz(?i)a[b-d]e�ACEz
(?i)a[b-d]�AAC�ACz	(?i)a[-b]zA-z	(?i)a[b-]z
(?i)a[b-a]z(?i)a[]bz(?i)a[z(?i)a]zA]z	(?i)a[]]bzA]Bz(?i)a[^bc]d�AEDz(?i)a[^-b]c�ADCzA-Cz(?i)a[^]b]czA]Cz	(?i)ab|cd�ABCDz(?i)()ef�DEF)�EFr�z(?i)*az(?i)(*)bz(?i)$br�z(?i)a\z(?i)a\(b�A(B)r|z	(?i)a\(*bzA((Bz(?i)a\\bzA\Bz(?i)abc)z(?i)(abcz	(?i)((a)))rgrgrgz(?i)(a)b(c))r]rgrz	(?i)a+b+c�AABBABCz(?i)a{1,}b{1,}cz(?i)a**z	(?i)a.+?c�ABCABCz
(?i)a.{0,5}?cz(?i)(a+|b)*)rUr�z(?i)(a+|b){0,}z(?i)(a+|b)+z(?i)(a+|b){1,}z(?i)(a+|b)?)rgrgz(?i)(a+|b){0,1}z(?i)(a+|b){0,1}?�r�Nz(?i))(z
(?i)[^ab]*�CDEz(?i)a*z
(?i)([abc])*d�ABBBCD)r�rz(?i)([abc])*bcd)ryrgz
(?i)a|b|c|d|e�Ez(?i)(a|b|c|d|e)fr{)r{r�z(?i)abcd*efg�ABCDEFGz(?i)ab*�	XABYABBBZ�XAYABBBZz(?i)(ab|cd)e�ABCDE)r��CDz(?i)[abhgefdc]ij�HIJz
(?i)^(ab|cd)ez(?i)(abc|)efr�z(?i)(a|b)c*d)�BCDr�z(?i)(ab|ab*)bc)r]rgz(?i)a([bc]*)c*)r]�BCz(?i)a([bc]*)(c*d))ryr��Dz(?i)a([bc]+)(c*d)z(?i)a([bc]*)(c+d))ryr�r�z(?i)a[bcd]*dcdcde�ADCDCDEz(?i)a[bcd]+dcdcdez
(?i)(ab|a)b*c)r]rUz(?i)((a)(b)c)(d))r]rgr�r�z(?i)[a-zA-Z_][a-zA-Z0-9_]*�ALPHAz(?i)^a(bc+|b[eh])g|.h$�ABH)�BHNz(?i)(bc+d$|ef*g.|h?i(j|k))�EFFGZ)r�r�N�IJ)r�r��J�EFFG�BCDD�REFFGZz(?i)((((((((((a))))))))))z(?i)((((((((((a))))))))))\10�AAz(?i)(((((((((a)))))))))z+(?i)(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))z/(?i)(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))rz(?i)multiple words of textzUH-UHz(?i)multiple wordszMULTIPLE WORDS, YEAHzMULTIPLE WORDSz
(?i)(.*)c(.*))r�rU�DEz(?i)\((.*), (.*)\)z(A, B))r�rgz(?i)[k]z
(?i)a[-]?cz(?i)(abc)\1z(?i)([a-c]*)\1za(?!b).�abadrza(?=d).z	a(?=c|d).z
a(?:b|c|d)(.)za(?:b|c|d)*(.)za(?:b|c|d)+?(.)za(?:b|(c|e){1,2}?|d)+?(.)z1,2)r�rYz(?<!-):(.*?)(?<!-):z
a:bc-:de:fzbc-:dez(?<!\\):(.*?)(?<!\\):z
a:bc\:de:fzbc\:dez(?<!\?)'(.*?)(?<!\?)'z
a'bc?'de'fzbc?'dezw(?# comment�wz w(?# comment 1)xy(?# comment 2)z�wxyzzw(?i)�Wzw(?iV1)z(?i)wz(?iV1)wz"(?x)w# comment 1
x y
# comment 2
zzjkl
abc
xyzr
rzjkl
xyzabc
123rqz
--ab_cd0123--�	ab_cd0123z[\w]+z\D+�1234abc5678z[\D]+z[\da-fA-F]+�123abcz([\s]*)([\S]*)([\s]*)z
 testing!1972z3,2,1)r�ztesting!1972r�z(\s*)(\S*)(\s*)z(([a-z]+):)?([a-z]+)$�smilz1,2,3)NNr�z((.)\1+)z.*dzabc
abdrz[\41]�!z(x?)?z	 (?x)foo r�z (?V1x)foo z	(?x) foo z(?V1x) foo z(?x)foo z
(?V1x)foo z
(?<!abc)(d.f)�	abcdefdof�dofz[\w-]+�
laser_beamz.*?\S *:zxx:za[ ]*?\ (\d+).*za   10za    10z(?ms).*?x\s*\Z(.*)zxx
x
z(?i)M+�MMMz(?i)m+z(?i)[M]+z(?i)[m]+z"(?:\\"|[^"])*?"z"\""z^.*?$zone
two
three
za[^>]*?bza>bz^a*?$z
^((a)c)?(ab)$)NNrz^([ab]*?)(?=(b)?)c)rNz^([ab]*?)(?!(b))cz^([ab]*?)(?<!(a))cz\b.\b�Är-r�rs)rxr@r�c�,�g|]}t|����SrS)rH)r��fs  rr�z+RegexTests.test_various.<locals>.<listcomp>�	s��#>�#>�#>��E�!�H�H�#>�#>�#>rr;�...z%Incorrect number of test fields: ({}))r-r�r�r��MISSING_RPARENrH�
UNKNOWN_GROUPr�rk�TRAILING_CHARSr��
BAD_ESCAPE�BAD_CHAR_RANGE�NOTHING_TO_REPEAT�MULTIPLE_REPEAT�
OPEN_GROUPr#r��appendrFr~�subTestr}r@r�r)rNr0rG)
rrlr��excvalrxr@r<rn�
group_listr�rUr#�fieldss
             r�test_variouszRegexTests.test_various�s�>��B
�
�B��E�K���A�B
���R���d�.A�B�B
���R���d�.A�B�	B
�
�B��E�K��1D�E�B
�)�$��E�K��!�
#�B
�$�T�3��c�
�
�;�B
�$�T�2�u�{��!�
#�B
�%�d�B����!�
#�B
�$�T�2�u�{��!�
#�B
�"*�4��U�[�� �
"�#B
�(�s�C��s���4�)B
�**�4��e�C�j�j�A�+B
�0(��r�5��;�;�?�1B
�2#�D�#�u�S�z�z�:�3B
�4#�D�"�e�D�k�k�:�5B
�6)�$��E�K�� �
"�7B
�<�c�3��c�
�
�3�=B
�>)�$��U�3�Z�Z�@�?B
�D�C��U�[�$�*@�A�EB
�F
,�GB
�H�S��V�V�c�\�3��c�!�f�f�s�l�(;�(;�<�IB
�J�c�3��c�
�
�+�KB
�L9�:J��e�3�4�4�
6�MB
�T�D�#�u�T�{�{�+�UB
�V�t�S�%��+�+�.�WB
�X�t�S�%��+�+�.�YB
�Z��b�%��+�+�.�[B
�`!�"2�C��$�%�%�
'�aB
�d-�.>���$�%�%�
'�eB
�h�f�c�5��S���?�?�3�iB
�n#�F�B��d���<�oB
�p�v�r�5��;�;�/�qB
�r���E�$�K�K�0�sB
�v���E�$�K�K�0�wB
�x���e�O�6L�6L�M�yB
�z���e�O�6L�6L�M�{B
�|�n�c�5��Q���#�b�'�'�9I��"�g�g�:��B���: �"%�b�'�'�:*�,/��F�F�:3�44�44�
5�}B
�@)�.�#��N�#�#�
%�AB
�F.�<�c��8�9�9�
;�GB
�P�E�3��e���-�QB
�R�F�B��d���,�SB
�T�Z��U�4�[�[�1�UB
�V��R��t���5�WB
�X�F�C��v���/�YB
�\���U�6�]�]�3�]B
�^�&�"�e�D�k�k�2�_B
�`���U�6�]�]�3�aB
�b��S�%�
�*;�*;�<�cB
�d�:�r�5��;�;�7�eB
�f��S�%�
�*;�*;�<�gB
�h�Z��e�J�.?�.?�@�iB
�l�"�b�%�+�t�':�;�mB
�n
 �oB
�p�E�3��e���-�qB
�r�E�2�u�T�{�{�+�sB
�t�E�2�u�T�{�{�+�uB
�v�E�2�u�T�{�{�+�wB
�x�G�S�%��,�,�/�yB
�z�G�S�%��,�,�/�{B
�|�U�C��u���.�}B
�~�e�S�%��,�,�/�B
�B�f�c�5��=�=�1�CB
�D�h��U�8�_�_�5�EB
�F�f�c�5��=�=�1�GB
�H�e�R��t���-�IB
�J�e�R��t���-�KB
�L�h��U�8�_�_�5�MB
�N�f�c�5��=�=�1�OB
�P�e�S�%��,�,�/�QB
�R�h��E�$�K�K�0�SB
�T�U�C��u���.�UB
�X�e�S�%��,�,�/�YB
�Z�f�b�%��+�+�.�[B
�\�V�S�%��,�,�/�]B
�^�f�b�%��+�+�.�_B
�`�V�S�%��,�,�/�aB
�b�%��e�B�i�i�(�cB
�d�%��e�B�i�i�(�eB
�f�E�3��e���-�gB
�h�E�3��e���-�iB
�j�W�c�5��>�>�2�kB
�n�W�b�%��+�+�.�oB
�p�u�b�%��+�+�.�qB
�r�u�c�5��<�<�0�sB
�t��r�5��;�;�/�uB
�v��s�E�%�L�L�1�wB
�x�u�c�5��;�;�/�yB
�z�d�C��t���-�{B
�|��c�5��;�;�/�}B
�~�d�C��t���-�B
�@�S�"�e�k�4�<�8�AB
�D�3��E�K���6�EB
�F�C��U�[�$�/�:�GB
�H�S�"�e�k�4�+>�?�IB
�J�S�"�e�k�4�+>�?�KB
�L�4��e�D�k�k�*�MB
�N�e�S�%��,�,�/�OB
�P�e�S�%��,�,�/�QB
�R��s�E�%�L�L�1�SB
�T��r�5��;�;�/�UB
�V��s�E�%�L�L�1�WB
�Z��r�5��;�;�/�[B
�\��r�5��;�;�/�]B
�^��s�E�%�L�L�1�_B
�`��c�5��:�:�.�aB
�b��c�5��:�:�.�cB
�d��s�E�#�J�J�/�eB
�f��b�%��+�+�.�gB
�h��b�%��+�+�.�iB
�j��r�5��;�;�/�kB
�l�U�B��d���,�mB
�p�U�C��s���,�qB
�r�U�C��s���,�sB
�t�U�B��d���,�uB
�v�U�B��d���,�wB
�x��b�%��+�+�.�yB
�z��b�%��+�+�.�{B
�|��r�5��;�;�/�}B
�~��b�%��+�+�.�B
�@��b�%��+�+�.�AB
�B��c�5��:�:�.�CB
�F��c�5��:�:�.�GB
�H��s�E�#�J�J�/�IB
�J�e�S�%��+�+�.�KB
�L�f�c�5��;�;�/�MB
�N�U�E�5��#4�#4�5�OB
�P�3��E�$�K�K�(�QB
�R�e�R��x���1�SB
�T�t�S�%��+�+�.�UB
�V�v�s�E�&�M�M�2�WB
�X�v�s�E�&�M�M�2�YB
�\�e�W�e�O�&<�&<�=�]B
�^��w��.?�(@�(@�A�_B
�`�i��e�E�l�l�3�aB
�b��e�U�;�%7�%7�8�cB
�d��e�U�;�%7�%7�8�eB
�f��e�U�:�%6�%6�7�gB
�h�3��E�K��)<�=�iB
�j�u�c�5��<�<�0�kB
�l�B��E�$�K�K�(�mB
�n�2�s�E�"�I�I�&�oB
�r�#�s�E�#�J�J�/�sB
�t�T�5�%��*<�*<�=�uB
�v��C��y�)9�)9�:�wB
�x�K��e�D�k�k�2�yB
�z�J��U�3�Z�Z�0�{B
�|��%��}�)=�)=�>�}B
�~�U�C��u���6�B
�@�'�2�u�T�{�{�3�AB
�B��5�%�
�*;�*;�<�CB
�D����l�(;�(;�<�EB
�H�5�%��|�)<�)<�=�IB
�J�5�%��}�)=�)=�>�KB
�L�f�g�u�5H�/I�/I�J�MB
�N�f�g�u�5H�/I�/I�J�OB
�P�f�g�u�5H�/I�/I�J�QB
�R�i��e�I�.>�.>�?�SB
�T�i��U�4�[�[�9�UB
�V�%���m�(<�(<�=�WB
�X�V�Y��6L�0M�0M�N�YB
�Z&�w��U�7�^�^�D�[B
�^"�5�%��|�1D�1D�E�_B
�`&�w���@�:�:�
�aB
�d&�t�W�e�=�7�7�
�eB
�h&�v�r�5��;�;�?�iB
�j&�v�r�5��;�;�?�kB
�l&�x��%�A�;�;�
�mB
�p#�C��e�C�j�j�9�qB
�r&�w��E�$�K�K�@�sB
�t�5�s��$�%�%�
'�uB
�x�'�7�E�2G�,H�,H�I�yB
�| ��5�%�
�2C�2C�D�}B
�~�D�"�e�D�k�k�*�B
�@�t�S�%��+�+�.�AB
�B��3��e���5�CB
�D�H�c�5��<�<�8�EB
�F��c�5��:�:�.�GB
�H�'�5�%��*@�*@�A�IB
�J�6�2�u�T�{�{�3�KB
�L��5�%�0A�*B�*B�C�MB
�N�H�e�U�3D�-E�-E�F�OB
�R�t�U�E�+�$6�$6�7�SB
�T��e�U�;�%7�%7�8�UB
�V��u�e�K�&8�&8�9�WB
�X���u�\�':�':�;�YB
�Z�%���l�(;�(;�<�[B
�\�E�5�%��*=�*=�>�]B
�^�E�5�%��*=�*=�>�_B
�`�%���l�(;�(;�<�aB
�b�H�e�U�3D�-E�-E�F�cB
�d�4��%�0B�*C�*C�D�eB
�h�f�e�U�=�%9�%9�:�iB
�j����m�(<�(<�=�kB
�l�@�%��2�3�3�
5�mB
�p+�,J��� )�*�*�
+�qB
�v�*�e�U�3G�-H�-H�I�wB
�x�)�U�E�-�,@�,@�A�yB
�z�&�%���)?�)?�@�{B
�|�%��U�4�[�[�1�}B
�~�&�%��y�)9�)9�:�B
�@�%���m�(<�(<�=�AB
�F�f�b�%�+�t�7J�K�GB
�H�V�V�U�?�-C�-C�D�IB
�J!�&�&�%��2G�2G�H�KB
�L!�&�"�e�k�4�;M�N�MB
�R�C��e�C�j�j�)�SB
�T�s�B���T�-C�D�UB
�V�$��U�4�[�[�1�WB
�X�$��E�+�$6�$6�7�YB
�Z�C��e�C�j�j�)�[B
�\)�#�s�E�#�J�J�?�]B
�^�C��e�C�j�j�)�_B
�`��S�%��*�*�-�aB
�b�C��e�C�j�j�)�cB
�d��S�%��*�*�-�eB
�j�E�3��e���-�kB
�l�E�2�u�T�{�{�+�mB
�n�E�2�u�T�{�{�+�oB
�p�E�2�u�T�{�{�+�qB
�r�G�S�%��,�,�/�sB
�t�G�S�%��,�,�/�uB
�x�U�C��u���.�yB
�z�e�S�%��,�,�/�{B
�|�f�c�5��=�=�1�}B
�~�h��U�8�_�_�5�B
�@	��3��h���8�A	B
�B	�f�c�5��=�=�1�C	B
�D	�e�R��t���-�E	B
�F	�e�R��t���-�G	B
�H	���E�$�K�K�0�I	B
�J	�h��U�8�_�_�5�K	B
�N	��3��h���8�O	B
�P	�(�C��x���9�Q	B
�R	�(�C��x���9�S	B
�T	�(�B��d���4�U	B
�V	�f�c�5��=�=�1�W	B
�X	�e�S�%��,�,�/�Y	B
�Z	�%��e�E�l�l�3�[	B
�\	�h��E�$�K�K�0�]	B
�^	�U�C��u���.�_	B
�`	���U�5�\�\�2�a	B
�d	�e�S�%��,�,�/�e	B
�f	�f�b�%��+�+�.�g	B
�h	�V�S�%��,�,�/�i	B
�j	�f�b�%��+�+�.�k	B
�l	�V�S�%��,�,�/�m	B
�n	�%��e�B�i�i�(�o	B
�p	�%��e�B�i�i�(�q	B
�r	�E�3��e���-�s	B
�t	�E�3��e���-�u	B
�v	�W�c�5��>�>�2�w	B
�z	�W�b�%��+�+�.�{	B
�|	�u�b�%��+�+�.�}	B
�~	�u�c�5��<�<�0�	B
�@
��r�5��;�;�/�A
B
�B
��s�E�%�L�L�1�C
B
�D
�u�c�5��;�;�/�E
B
�F
�d�C��t���-�G
B
�H
�d�C��t���-�I
B
�J
�s�B���T�-@�A�K
B
�L
�S�"�e�k�4�<�8�M
B
�P
�3��E�K���6�Q
B
�R
�4��e�D�k�k�*�S
B
�T
�e�S�%��,�,�/�U
B
�V
��s�E�%�L�L�1�W
B
�X
��r�5��;�;�/�Y
B
�Z
��s�E�%�L�L�1�[
B
�\
��r�5��;�;�/�]
B
�^
��r�5��;�;�/�_
B
�`
��s�E�%�L�L�1�a
B
�b
�e�S�%��+�+�.�c
B
�f
�f�c�5��;�;�/�g
B
�h
�U�E�5��#4�#4�5�i
B
�j
�3��E�K��)?�@�k
B
�l
�S�"�e�k�4�+A�B�m
B
�n
�3��E�$�K�K�(�o
B
�p
�C��U�[�$�/�:�q
B
�r
�e�R��x���1�s
B
�t
�t�S�%��+�+�.�u
B
�v
�v�s�E�&�M�M�2�w
B
�x
�v�s�E�&�M�M�2�y
B
�|
�S�"�e�k�4�+>�?�}
B
�~
�S�"�e�k�4�+>�?�
B
�@�e�W�e�O�&<�&<�=�AB
�B��w��.?�(@�(@�A�CB
�D�i��e�E�l�l�3�EB
�F�I�s�E�%�L�L�9�GB
�H�C��U�[�$�*>�?�IB
�J�h��U�5�\�\�2�KB
�L��e�U�;�%7�%7�8�MB
�N�4���k�(:�(:�;�OB
�R��e�U�;�%7�%7�8�SB
�T�4���k�(:�(:�;�UB
�V��e�U�:�%6�%6�7�WB
�X�D�%��z�):�):�;�YB
�Z�3��E�K��)<�=�[B
�\�u�c�5��<�<�0�]B
�^�B��E�$�K�K�(�_B
�`�2�s�E�"�I�I�&�aB
�b�(�E�5��+A�+A�B�cB
�d�F�E�5��+?�+?�@�eB
�h�#�s�E�#�J�J�/�iB
�j�T�5�%��*<�*<�=�kB
�l��C��y�)9�)9�:�mB
�n�K��e�D�k�k�2�oB
�p�J��U�3�Z�Z�0�qB
�r��%��}�)=�)=�>�sB
�t�U�C��u���6�uB
�v�'�2�u�T�{�{�3�wB
�x��5�%�
�*;�*;�<�yB
�z����l�(;�(;�<�{B
�~�5�%��|�)<�)<�=�B
�@�5�%��}�)=�)=�>�AB
�B�f�g�u�5H�/I�/I�J�CB
�D�f�g�u�5H�/I�/I�J�EB
�F�f�g�u�5H�/I�/I�J�GB
�H�i��e�I�.>�.>�?�IB
�J�i��U�4�[�[�9�KB
�L�%���m�(<�(<�=�MB
�N�V�Y��6L�0M�0M�N�OB
�P&�w��U�7�^�^�D�QB
�T"�5�%��|�1D�1D�E�UB
�V&�w���@�:�:�
�WB
�Z&�t�W�e�=�7�7�
�[B
�^&�v�r�5��;�;�?�_B
�`&�v�r�5��;�;�?�aB
�b&�x��%�A�;�;�
�cB
�f%�c�4��s���<�gB
�h)�$��U�4�[�[�A�iB
�r)�"�b�%�+��$�
&�sB
�v-�b�"�e�k��$�
&�wB
�|#�C��e�C�j�j�9�}B
�~&�w��E�$�K�K�@�B
�@
�5�s��$�%�%�
'�A
B
�D
�'�7�E�2G�,H�,H�I�E
B
�F
 ��5�%�
�2C�2C�D�G
B
�H
�D�"�e�D�k�k�*�I
B
�J
�t�S�%��+�+�.�K
B
�L
��3��e���5�M
B
�N
�H�c�5��<�<�8�O
B
�P
��s�E�%�L�L�1�Q
B
�T
��r�5��;�;�/�U
B
�V
��r�5��;�;�/�W
B
�X
��r�5��;�;�/�Y
B
�Z
���e�E�l�l�3�[
B
�\
���e�E�l�l�3�]
B
�^
���U�5�\�\�2�_
B
�`
�%��e�E�l�l�3�a
B
�b
�&�#�u�V�}�}�5�c
B
�d
�8�S�%��/�/�:�e
B
�f
�h��U�8�_�_�=�g
B
�j
�6�3��f�
�
�6�k
B
�l
�%��U�4�[�[�1�m
B
�n
�%��U�4�[�[�1�o
B
�p
�U�B��d���4�q
B
�r
�(�C��x���9�s
B
�t
�h��U�8�_�_�=�u
B
�v
�x��e�H�o�o�>�w
B
�x
�x��e�H�o�o�>�y
B
�z
�x��U�4�[�[�9�{
B
�|
�6�3��f�
�
�6�}
B
�@�5�#�u�U�|�|�4�AB
�B�u�c�5��<�<�8�CB
�D�8�R��t���5�EB
�F�%��e�E�l�l�3�GB
�H�e�S�%��,�,�7�IB
�J�%��e�E�l�l�3�KB
�L�&�"�e�D�k�k�2�MB
�N���e�E�l�l�3�OB
�P�&�"�e�D�k�k�2�QB
�R���e�E�l�l�3�SB
�V�e�S�%��)�)�,�WB
�X�e�S�%��)�)�,�YB
�Z��s�E�%�L�L�1�[B
�\��s�E�%�L�L�1�]B
�^�'�3��g���7�_B
�`��"�e�D�k�k�2�aB
�b�5�"�e�D�k�k�2�cB
�d�5�#�u�U�|�|�4�eB
�f�E�2�u�T�{�{�3�gB
�h�E�3��e���5�iB
�l�5�#�u�T�{�{�3�mB
�n�$��U�4�[�[�1�oB
�p�$��U�4�[�[�1�qB
�r�3��E�K��1D�E�sB
�t��b�%�+�t�|�<�uB
�v�s�B���T�\�:�wB
�x�t�S�%��+�+�.�yB
�z�%��e�E�l�l�3�{B
�|�E�3��e���5�}B
�~�E�2�u�T�{�{�3�B
�B�E�3��e���5�CB
�D�E�2�u�T�{�{�3�EB
�F�E�2�u�T�{�{�3�GB
�H�E�3��e���5�IB
�J�%��e�D�k�k�2�KB
�L�&�#�u�T�{�{�3�MB
�N���u�Z�'8�'8�9�OB
�P�s�B���T�-C�D�QB
�R��b�%�+�t�/E�F�SB
�T�s�B��d���,�UB
�X��R���d�o�>�YB
�Z�%��U�8�_�_�5�[B
�\�4��e�D�k�k�2�]B
�^�6�3��f�
�
�6�_B
�`�6�3��f�
�
�6�aB
�b��b�%�+�t�/B�C�cB
�d��b�%�+�t�/B�C�eB
�f�%��%��*@�*@�A�gB
�h�E�7�E�2C�,D�,D�E�iB
�j�)�S�%��,�,�7�kB
�n�	�3��e���=�oB
�p��R���d�.B�C�qB
�r�(�C��u���6�sB
�t�(�C��u���6�uB
�v�h��U�5�\�\�:�wB
�x�D�%��{�);�);�<�yB
�z�t�U�E�+�,>�,>�?�{B
�|�D�%��{�);�);�<�}B
�~�t�U�E�+�,>�,>�?�B
�@�D�%��z�):�):�;�AB
�D��e�U�:�->�->�?�EB
�F ��u�e�J�.?�.?�@�GB
�H�s�B���T�-@�A�IB
�J�5�#�u�U�|�|�4�KB
�L��B��d���,�MB
�N�r�3��b�	�	�*�OB
�P�h��u�_�/E�/E�F�QB
�R���u�]�/C�/C�D�SB
�T�c�3��c�
�
�3�UB
�V ��u�e�K�.@�.@�A�WB
�Z�Y��U�9�-=�-=�>�[B
�\��S�%��+�+�6�]B
�^�
�C��s���4�_B
�`�W�e�U�=�-A�-A�B�aB
�b ���U�5�\�\�:�cB
�d�g�r�5��;�;�7�eB
�f�X�u�e�J�.?�.?�@�gB
�h�V�U�E�,�,?�,?�@�iB
�j�u�e�U�<�-@�-@�A�kB
�l�u�e�U�=�-A�-A�B�mB
�p!�&�'�5�9L�3M�3M�N�qB
�r!�&�'�5�9L�3M�3M�N�sB
�t!�&�'�5�9L�3M�3M�N�uB
�v!�)�S�%�	�2B�2B�C�wB
�x!�)�R��t���=�yB
�z�e�U�E�-�,@�,@�A�{B
�| ���E�;�5�5�
�}B
�@*�7�C��w���H�AB
�B&�u�e�U�<�5H�5H�I�CB
�D*�7�G�U�D�>�>�
�EB
�J*�4��%�A�;�;�
�KB
�N*�6�2�u�T�{�{�C�OB
�P*�6�2�u�T�{�{�C�QB
�R*�8�W�e�E�?�?�
�SB
�V)�#�t�U�3�Z�Z�@�WB
�X-�d�C��t���E�YB
�^'��S�%��*�*�=�_B
�`;�C���C�j�j�
�aB
�d?��S��C�j�j�
�eB
�h*�7�B��d���D�iB
�l"�#9�3�
�#�
$�
$�
&�mB
�p�g�w��6K�0L�0L�M�qB
�r$�X�u�e�J�6G�6G�H�sB
�t��b�%��+�+�.�uB
�z�4��e�D�k�k�2�{B
�|�X�s�E�%�L�L�9�}B
�~��#�u�U�|�|�<�B
�@���U�4�[�[�1�AB
�B���U�4�[�[�1�CB
�D�&�#�u�T�{�{�3�EB
�H�e�S�%��*�*�5�IB
�J�u�c�5��:�:�6�KB
�L��s�E�#�J�J�7�MB
�N)�%���j�8I�8I�J�OB
�T#�L�#�u�X���G�UB
�X)�-��e�I�>N�>N�O�YB
�\'��c�5��?�?�K�]B
�d�S�"�e�k�4�3F�G�eB
�f0���e�F�m�m�L�gB
�t�c�3��c�
�
�+�uB
�v��S�%��+�+�.�wB
�x�c�3��c�
�
�+�yB
�z��S�%��*�*�-�{B
�|�c�3��c�
�
�+�}B
�~��S�%��*�*�-�B
�D�
�c�5��=�=�
"�EB
�P��
�E�$�K�K�
�QB
�V���U�5�\�\�
�WB
�^���U�5�\�\�
�_B
�h�F�B��d���,�iB
�j���U�6�]�]�3�kB
�p�_�c�5��+=�+=�>�qB
�r���U�;�-?�-?�@�sB
�t�]�C��u���6�uB
�v�}�c�5��<�<�8�wB
�x�X�s�E�(�O�O�<�yB
�~&����H#�B$�B$�
%�B
�B ��'�5�B#�<$�<$�
%�CB
�P&�v�w��?�9�9�
�QB
�V�"�b�%�+�t��?�WB
�Z�Z��e�E�l�l�3�[B
�^�2�r�5�;��(;�<�_B
�`�s�C��s���,�aB
�d�s�C��s���,�eB
�l�5�#�u�U�|�|�4�mB
�n�U�C��t���5�oB
�p�5�#�u�U�|�|�4�qB
�r�U�C��u���6�sB
�t�%��e�E�l�l�3�uB
�v�E�3��e���5�wB
�z�{�C��u���>�{B
�~��c�5��+>�+>�?�B
�B�%��e�E�l�l�3�CB
�D ��3��h���@�EB
�F ��C��y�1A�1A�B�GB
�J#�9�c�5��9�9�=�KB
�N��s�E�%�L�L�1�OB
�P��s�E�%�L�L�1�QB
�R�%��e�E�l�l�3�SB
�T�%��e�E�l�l�3�UB
�^!�'�3��g���?�_B
�b�*�B��d���<�cB
�f�%��U�4�[�[�1�gB
�j�u�b�%��+�+�.�kB
�n�t�W�e�4F�.G�.G�H�oB
�r"�5�%��|�1D�1D�E�sB
�t!�%���l�0C�0C�D�uB
�v"�5�%��|�1D�1D�E�wB
�z�s�C��s���,�{B
�|�B�C��F�m�m�
�}B
�@�?���F�m�m�
�AB
��H�!	7�!	7�A��F�
7��q�6�6�Q�;�;�89�5�G�V�V�X�X�@A�=�G�V�V�X�v�
 �
��5�!'���c�!2�!2�5�5��5�&�-�-�c�%�j�j�9�9�9�9��)�5�5�5�&�-�-�e�4�4�4�4�4�5�����%����g�f��E�E�+�+��.�.�x����!�6�+�+�+�+�+�+�+�+�+�+�+�+�+�+����+�+�+�+����W�f�5�5�A��*�%�1�%*�7�1�7�J�+?�%@�%@�F�F�%*�1�Q�Q�Q�4�[�[�F�F�!&�q�����$�$�V�X�6�6�6�6��5�
R�
R�
R����#>�#>�a��1��g�#>�#>�#>�%��#H�I�I���	�	�A�H�H��P�P�Q�Q�Q�Q�Q�
R����!	7�!	7sI�k$Bp!�l"Bl6�l6Bm�mBm�m5$Bn%�n%Bn)	�n,Bn)	�p!A"Br�rBrc���|�tjddd��d��|�tjddd��d��|�tjdtjd��d��d��|�tjddd��d��|�tjdd	�d��d��dS)
Nztest\?zresult\?\.
ztest?r��\1\1r%rYz\\1\\1c��dS)Nr�rSrTs rrVz-RegexTests.test_replacement.<locals>.<lambda>�	s��G�r)r)r-rjr�rCs r�test_replacementzRegexTests.test_replacement�	s��������9�.@�'�J�J�
�	�	�	�	
�����5�'�3�7�7��>�>�>������5�%�,�w�*?�*?��E�E�w�O�O�O������5�)�S�9�9�7�C�C�C������5�*;�*;�S�A�A�7�K�K�K�K�Krc	��tjtjztjz}|dz}d|zdz|zdz}|�tt
tj|������|j	��dS)Nr�rrr�)
r@�ascii_lowercase�digits�ascii_uppercaser)r�r"r-r.r�)r�all�side�regexps    r�test_common_prefixzRegexTests.test_common_prefix�	ss���$�v�}�4�v�7M�M���Q�w���t��c�!�D�(�3�.������d�5�=��#8�#8�9�9�:�:�D�<N�O�O�O�O�Orc�
�|�tjdd���d��gd���|�tjdd���dd��dgddgf��|�tjd	d
���dd��dggd
�f��|�tjdd���dd��gd�gd�f��|�tjdd���ddd��dggd�dgf��|�tjdd���d��dg��|�tjdd���d��ddg��|�tjdd���d��dg��dS) Nz(\w)+r�r:r�z(\w{3})+r3rrCz^(\d{1,3})(?:\.(\d{1,3})){3}$z192.168.0.1r��192)�168r�r'z^([0-9A-F]{2}){4} ([a-z]\d){5}$z3FB52A0C a2c4g3k9d3)�3F�B5�2A�0C)�a2�c4�g3�k9�d3z([a-z]W)([a-z]X)+([a-z]Y)�aWbXcXdXeXfYr;�aW)�bX�cX�dX�eX�fYz.*?(?=(.)+)brr�z.*?(?>(.){0,2})dr�r��(.)+r\)r)r-r@�capturesrBrCs r�
test_captureszRegexTests.test_captures�	s-�������h��6�6�?�?��B�B�E�E�E�	�	�	������k�8�<�<�E�E�a��K�K��:��u�~�
&�	(�	(�	(������&F�
���!��!�Q���5�)�5F�5F�5F�)G�	I�	I�	I������%G�
�!�!�!)��!�Q���2J�2J�2J�
(�
(�
(�2*�	+�	+�	+�	
�����%@�
���"�(�1�a��+�+�t�f�6N�6N�6N��&�.�	�	�	�	
�����o�t�<�<�E�E�a�H�H��%�	�	�	������&9�6�B�B�K�K�A�N�N���*�	�	�	������g�s�3�3�<�<�Q�?�?�#��G�G�G�G�Grc��tjdd��}|�|�ddd��d��tjdd��}|�|�ddd��d��tjd	d
��}|�|�ddd��d��tjdd
��}|�|�dd��d��tjdd��}|�|���d��tjdd��}|�|���d��dS)Nz(X.*?Y\s*){3}(X\s*)+AB:zXY
X Y
X  Y
XY
XX AB:rr:r�))r;��rb��r��z(X.*?Y\s*){3,}(X\s*)+AB:))rr�r�r�z\d{4}(\s*\w)?\W*((?!\d)\w){2}�9999XX)ror�)�r4zA\s*?.*?(\n+.*?\s*?){0,2}\(Xz
A
1
S
1 (X)�rr_)r�rkz	Derde\s*:zaaaaaa:
Derde:)rk�z
aaaaa:
Derde:)rcra)r-r@r)rArIs  r�test_guardszRegexTests.test_guards�	sL���L�3�
%�
'�
'���������1�a���*G�H�H�H��L�4�
%�
'�
'���������1�a���*G�H�H�H��L�9�8�D�D���������1�a���*D�E�E�E��L�8�/�J�J���������1���'8�9�9�9��L��'8�9�9����������7�+�+�+��L��'7�8�8����������7�+�+�+�+�+rc
��d}t��}t��}|�d��D]�}|�d��\}}|�||f��|�||f��|�||f��|�||f��|�||f����|D]�}|D]�}t	jd|zdz|��}|rJ||f|vrC|�d�t|��t|�������i||f|vrC|�d�t|��t|����������dS)Nu
I=i;I=ı;i=İ�;�=z(?i)\A�\Zz{} matching {}z{} not matching {})	rgr��update�addr-rBr0rGrH)r�pairsr$�matching�pairrsrtrUs        r�test_turkiczRegexTests.test_turkic�	s���'���E�E�	��5�5���K�K��$�$�	%�	%�D��z�z�#���H�C�����c�3�Z�(�(�(��L�L�#�s��$�$�$��L�L�#�s��$�$�$��L�L�#�s��$�$�$��L�L�#�s��$�$�$�$��
	'�
	'�C� �	
'�	
'���K�	�C��%� 7��=�=���'��S�z��1�1��	�	�"2�"9�"9�%��*�*���*�*�#&�#&�'�'�'���S�z�X�-�-��	�	�"6�"=�"=�e�C�j�j���*�*�#&�#&�'�'�'��	
'�
	'�
	'rc��gd�}|�tjdd|������d��|�tjdd|������d��|�tjdd|���d��gd�}|�tjd	d
|������d
��|�tjdd|������d��|�tjd	d
|���d��|�t	ttjdgd��������|j��|�tjddtgd������g��|�tjddtgd������dg��dg}|�tjdd|����
��d��ddg}|�tjdd|����
��d��dg}|�tjdd|����
��d��dg}|�tjdd|����
��d ��|�tjdd!|����
��d ��|�tjd"d#���
��d$��|�tjd"d%���
��d$��|�tjd&d'g����
��d(��dS))N)�one�two�threez
333\L<bar>444�	333one444)r�z(?i)333\L<bar>444�	333TWO444�
333four444)sonestwosthrees
333\L<bar>444s	333one444s(?i)333\L<bar>444s	333TWO444s
333four444z3\L<bar>4\L<bar>+5z^\L<options>zsolid QWERT)�good�	brilliantz	+s\ol[i}drmz+solid QWERT)r�r��+solidr��STRASSE�(?fi)\L<words>ustraße��wordsro�stress�rrc�kitz
(?i)\L<words>�SKITSr�uSKİTSz(?fi)\b(\w+) +\1\bu straße STRASSE )r:r�u STRASSE straße z
^\L<options>$r�r6)r)r-rBr�r�r"r.r�r/rgrAr@)rrns  r�test_named_listszRegexTests.test_named_lists
s���)�)�)�������%5�{������u�w�w��	-�	-�	-������%9�;������u�w�w��	-�	-�	-������%5�|������	�	�	�-�,�,�������%6�������u�w�w��	.�	.�	.������%:�L������u�w�w��	.�	.�	.������%6�
������	�	�	�	
����d�5�=�1F�%�%�%�$'�$'�$'�(�(�)�)�*.�*<�	>�	>�	>�	
������
��9�9�9�:�:�<�<�<�=?�	A�	A�	A���������5�5�5�6�6�8�8�8�:B��	E�	E�	E��+�������%6�
/�w�@�@�@�@D����I
�	�	�	��h�'�������%6�
/�w�@�@�@�@D����I
�	�	�	�9�9�������%6�	����������	)�	)�	)��'�������&6�����������	)�	)�	)������&6�
9����������	)�	)�	)�	
�����&;�
9�;�;�;?�4�6�6�7�	L�	L�	L������&;�
9�;�;�;?�4�6�6�7�	L�	L�	L�	
�����&6��B�G�G�G�L�L�N�N�
�	�	�	�	�	rc	�#�|�tttjd������|j��|�tttjd������|j��|�tttjd������|j��|�tttjd������|j��|�tttjd������|j��|�tttjd������|j��d}|�tjd|��d��|�tjd	|���d
d��d��|�tjd
|��d��|�tjd|��d
d��|�tjd|��d
d��d}|�tjd|���d
d��d��|�tjd|���d
d��d��|�tjd|���d
d��d��|�tjd|���d
d��d��|�tjd|���d
d��d��|�tjd|���d
d��d��|�tttjd������|j��|�tjdd���d
d��d��|�tjdd���d
d��d ��|�tjd!d���d
d��d"��|�tjd#d$���d
d��d%��|�tjd#d&��d��|�tjd'd(���d
d��d)��|�tjd*d+���d
d��d,��|�tjd*d-���d
d��d��|�tjd.d-���d
d��d/��|�tjd0d1���d
d��d��|�tjd0d2���d
d��d3��|�tjd0d4���d
d��d3��|�tjd0d5���d
d��d3��|�tjd0d6���d
d��d��|�tjd0d7���d
d��d��|�tjd0d8���d
d��d��|�tjd0d9���d
d��d:��|�tjd0d;���d
d��d:��|�tjd0d<���d
d��d:��|�tjd0d=��d��|�tjd0d>��d��|�tjd0d?��d��|�tjd0d@��d��|�tjd0dA��d��|�tjdBdC���d
d��dD��|�tjdEdC���d
d��dF��|�tjdGdH���d
d��dI��|�tjdGdJ��d��|�tjdGdK���d
d��dL��dM}|�tjdN|���d
d��dO��|�tjdP|���d
d��dQ��|�tjdR|���d
d��dS��|�tjdTdUdV�	���W��dXdYg��|�tjdTdZdV�	���W��d[dXg��|�tjd\dZdV�	���W��dYdXg��|�tjd]dUdV�	���W��d^dXg��|�tjd_dUdV�	���W��dYdXg��|�tjd]dZdV�	���W��dXdYg��|�tjd`dadb�	���W��dcddg��|�tjd`dedb�	���W��dfdcg��|�tjdgdedb�	���W��dddcg��|�tjdhdadb�	���W��didcg��|�tjdjdadb�	���W��dddcg��|�tjdhdedb�	���W��dcddg��|�tjdkdl���
��dm��|�tjdndl���
��dm��|�tjdodp���
��dq��|�tjdrds��dsdtg��|�tjdudv��dvdtg��|�tjdwdx�����dy��|�tjdwdz�����d{��|�tjdwd|�����d}��|�tjdwd~��d��|�tjdwd�����d���|�tjd�d���j
d���|�tjd�d���j
d���|�tjd�d���j
d���|�tjd�d���j
d���|�tjd�d���j
d���|�tjd�d���jgd��d�ggf��|�ttjd�d�����d���dS)�Nz
(fou){s,e<=1}z(fuu){s}z
(fuu){s,e}z(anaconda){1i+1d<1,s<=1}z(anaconda){1i+1d<1,s<=1,e<=10}z(anaconda){s<=1,e<=1,1i+1d<1}z-molasses anaconda foo bar baz smith anderson z(znacnda){s<=1,e<=3,1i+1d<1}z(znacnda){s<=1,e<=3,1i+1d<2}rr:)�r^�rz(ananda){1i+1d<2}z(?:\bznacnda){e<=2}�anacondaz(?:\bnacnda){e<=2}z#anaconda foo bar baz smith andersonz(fuu){i<=3,d<=3,e<=5})r6r6z(?b)(fuu){i<=3,d<=3,e<=5})�r^r_rz(fuu){i<=2,d<=2,e<=5})�rcr_rz(?e)(fuu){i<=2,d<=2,e<=5}z(fuu){i<=3,d<=3,e}z(?b)(fuu){i<=3,d<=3,e}z(approximate){s<=3,1i+1d<3}z(foobar){e}�xirefoabralfobarxie)roroz(?e)(foobar){e})r>r>z(?b)(foobar){e})�r`r�rz(foobar){e<=2}�
xirefoabrzlfd)�r�r^r
�xirefoabzlfdz(foobar){i<=2,s<=2,e<=2}�oobargoobaploowap)�r�r`r
z\b(foobar){e}\b�zfoobarz)�rrkrzboing zfoobarz goobar woopz(?b)\b(foobar){e}\b)�r�r�rz^(foobar){e<=1}$�foobar�xfoobar)r�r��foobarx�fooxbar�foxbar�xoobar�foobax�oobar)�rr�r�fobar�fooba�xfoobarx�foobarxx�xxfoobar�xfoxbar�foxbarxz (foobar){i<=1,d<=2,s<=3,2d+1s<4}�(3oifaowefbaoraofuiebofasebfaobfaorfeoaro)�r4rar"z$(?b)(foobar){i<=1,d<=2,s<=3,2d+1s<4})��"�'r#zfoo(bar){e<=1}zap�	foobarzap)�rr^�r;r4�fobarzap�foobrzap)r�r;r�zxwww.cnn.com 64.236.16.20
www.slashdot.org 66.35.250.150
For useful information, use www.slashdot.org
this is demo data!
z(?s)^.*(dot.org){e}.*$)�r�x)r-r-z(?es)^.*(dot.org){e}.*$)r,)�]�dz^.*(dot.org){e}.*$))r�w)��ez\b\L<words>{e<=1}\bz book cot dog desk zcat dogr��cot�dogz book dog cot desk z dogz(?e)\b\L<words>{e<=1}\bz(?r)\b\L<words>{e<=1}\bzdog z(?er)\b\L<words>{e<=1}\bs\b\L<words>{e<=1}\bs book cot dog desk scat dogscotsdogs book dog cot desk s dogs(?e)\b\L<words>{e<=1}\bs(?r)\b\L<words>{e<=1}\bsdog s(?er)\b\L<words>{e<=1}\bz(\w+) (\1{e<=1})zfoo fou)r��fouz(?r)(\2{e<=1}) (\w+)s(\w+) (\1{e<=1})sfoo fou)sfoosfouz(?:(?:QR)+){e}r}r�z	(?:Q+){e}r�z(?:service detection){0<e<5}zservic detection)rr�zservice detect)rr�zservice detecti)rr�zservice detectionzin service detection)r��(?:cats|cat){e<=1}�cat�rrr:�(?e)(?:cats|cat){e<=1}�rrrz(?:cat|cats){e<=1}�cats�rr:rz(?e)(?:cat|cats){e<=1}z(?:cat){e<=1} (?:cat){e<=1}zcat cot�r:rrz/(?e)(GTTTTCATTCCTCATA){i<=4,d<=4,s<=4,i+d+s<=8}�ATTATTTATTTTTCATA)rr4r_r`r;z(?:fo){e<=1}|(?:fo){e<=2}�FOT)r)r�r"r-r.r�r@rAr/r�r<rB�	fullmatch�fuzzy_counts�
fuzzy_changesr/rs  r�
test_fuzzyzRegexTests.test_fuzzyA
s�������d�5�=��#A�#A�B�B�C�C�
�
�	�	�	�����d�5�=��#<�#<�=�=�>�>�
�
�	�	�	�����d�5�=��#>�#>�?�?�@�@�
�
�	�	�	�����d�5�=�1K�#L�#L�M�M�N�N�
�
�	�	�	�����d�5�=�1Q�#R�#R�S�S�T�T�
�
�	�	�	�����d�5�=�1P�#Q�#Q�R�R�S�S�
�
�	�	�	�?�������&D�d�K�K�
�	�	�	������&D�
�����Q��
�
�.�	0�	0�	0������&9�4�@�@�$�G�G�G������&<�d�C�C�A�F�
�	�	�	������&;�T�B�B�1�E�
�	�	�	�5�������&=�t�D�D�I�I�!�
�
�
��	 �	 �	 ������&A�
�����Q��
�
�.�	0�	0�	0������&=�t�D�D�I�I�!�
�
�
� �	"�	"�	"������&A�
�����Q��
�
�.�	0�	0�	0������&:�D�A�A�F�F�q�!�L�L�
�	�	�	������&>��E�E�J�J�1�
�
�
� �	"�	"�	"�	
����d�5�=�1N�#O�#O�P�P�Q�Q�
�
�	�	�	�	
�����m�
�!�!�!%��a����-=�	?�	?�	?������&7�
�!�!�!%��a����-=�	?�	?�	?������&7�
�!�!�!%��a����-A�	C�	C�	C�	
�����&6�
����4��1�:�:�'7�	9�	9�	9������&6��G�G��N�N�N�	
�����&@�
���#�t�A�q�z�z�+=�	?�	?�	?�	
�����&9�:�F�F�K�K�A�
�
�
��	 �	 �	 ������&9�
&�(�(�(,��Q��
�
�4D�	F�	F�	F������&=�
&�(�(�(,��Q��
�
�4H�	J�	J�	J�	
�����&8�(�C�C�H�H��A�N�N�
�	�	�	������&8�)�D�D�I�I�!�
�
�
��	 �	 �	 ������&8�)�D�D�I�I�!�
�
�
��	 �	 �	 ������&8�)�D�D�I�I�!�
�
�
��	 �	 �	 ������&8�(�C�C�H�H��A�N�N�
�	�	�	������&8�(�C�C�H�H��A�N�N�
�	�	�	������&8�(�C�C�H�H��A�N�N�
�	�	�	������&8�'�B�B�G�G��1�M�M�
�	�	�	������&8�'�B�B�G�G��1�M�M�
�	�	�	������&8�'�B�B�G�G��1�M�M�
�	�	�	������&8�*�E�E�t�L�L�L������&8�*�E�E�t�L�L�L������&8�*�E�E�t�L�L�L������&8�)�D�D�d�K�K�K������&8�)�D�D�d�K�K�K�
	
�����&H�
4�6�6�6:�d�1�a�j�j�C�	�	�	�	
�����&L�
4�6�6�6:�d�1�a�j�j�C�	�	�	�
	
�����&9�;�G�G�L�L�Q�
�
�
��	 �	 �	 ������&9�:�F�F��M�M�M������&9�:�F�F�K�K�A�
�
�
��	 �	 �	 �O�������&?��F�F�K�K�A�
�
�
�$�	&�	&�	&������&@�$�G�G�L�L�Q�
�
�
�#�	%�	%�	%������&;�T�B�B�G�G��1�M�M�
�	!�	!�	!�
	
�����'=�
�y���'8�'8�:�:�:�<A�5�>�	K�	K�	K������'=�
�y���'8�'8�:�:�:�<B�E�?�	L�	L�	L������'A�
�y���'8�'8�:�:�:�<A�5�>�	K�	K�	K������'A�
�y���'8�'8�:�:�:�<B�E�?�	L�	L�	L������'B�
�y���'8�'8�:�:�:�<A�5�>�	K�	K�	K������'A�
�y���'8�'8�:�:�:�<A�5�>�	K�	K�	K������'>�
 �
�(8�(8�(:�(:�<�<�<�>D�f�=M�	O�	O�	O������'>�
 �
�(8�(8�(:�(:�<�<�<�>E�v�=N�	P�	P�	P������'B�
 �
�(8�(8�(:�(:�<�<�<�>D�f�=M�	O�	O�	O������'B�
 �
�(8�(8�(:�(:�<�<�<�>E�v�=N�	P�	P�	P������'C�
 �
�(8�(8�(:�(:�<�<�<�>D�f�=M�	O�	O�	O������'B�
 �
�(8�(8�(:�(:�<�<�<�>D�f�=M�	O�	O�	O�	
�����&9�9�E�E�L�L�N�N�
�	�	�	������&=�
����V�X�X�~�	/�	/�	/������&:�
����f�h�h� 0�	2�	2�	2�	
�����'8�'�B�B�W�
�E�	�	�	������|�U�;�;�e�R�[�I�I�I�	
�����%D�
���"�d�f�f�g�	/�	/�	/������%D�
��� �D�F�F�G�	-�	-�	-������%D�
���!�T�V�V�W�	.�	.�	.������%D�
��� $�	&�	&�	&������%D�
 �"�"�"&�$�&�&�'�	3�	3�	3�	
�����)>�
����y�	*�	*�	*������)B�
����y�	*�	*�	*�	
�����)>�
����	�	+�	+�	+������)B�
����	�	+�	+�	+�	
�����)G�
���!�9�	.�	.�	.�	
�����&X�
���,�~�~�~��s�B�.G�	I�	I�	I�	
����e�k�*E�t�L�L�M�M�
�	�	�	�	�	rc��|�tjdd��dd�d��|�tjdd��dd�d��|�tjdd��dd�d��|�tjdd��dd�d	��|�tjdd
��dd�d��|�tjdd��d��|�tjd
d��dd�d��|�tjd
d��dd�d��|�tjd
d��dd�d��|�tjd
d��dd�d��|�tjd
d
��dd�d��|�tjd
d��d��|�tjdd��dd�d��|�tjdd���d��gd���|�tjdd��dd�d��|�tjdd���d��gd���|�tjdd��dd�d��|�tjdd��dd�d��|�tjd d!��dd�d"��|�tjd#d!��dd�d"��tjd$��}|�t|�d%����d&��|�t|�d'����d(��|�t|�d)����d&��|�t|�d*����d(��|�t|�d+����d(��|�t|�d,����d(��|�t|�d-����d&��|�t|�d.����d&��|�t|�d/����d(��|�t|�d0����d&��|�t|�d1����d&��|�t|�d2����d&��dS)3Nz(\w)(?:(?R)|(\w?))\1rY)rYr%r�r)rr\r��abba)rFr\N�kayak)rGr+N�paper)�paprr\�dontmatchmez(?r)\2(?:(\w?)|(?R))(\w))rYr�r%)rr�r\)rFNr\)rGNr+)rIr\rz\(((?>[^()]+)|(?R))*\)�
(ab(cd)ef))rKr�r:)rr�(cd)r�z(?r)\(((?R)|(?>[^()]+))*\))rKr)r�rrLrz\(([^()]+|(?R))*\)zsome text (a(b(c)d)e) more text)�(a(b(c)d)e)rYz(?r)\(((?R)|[^()]+)*\))rMr\z!(foo(\(((?:(?>[^()]+)|(?2))*)\)))�foo(bar(baz)+baz(bop)))rNrNz(bar(baz)+baz(bop))zbar(baz)+baz(bop)z%(?r)(foo(\(((?:(?2)|(?>[^()]+))*)\)))zv^\s*(<\s*([a-zA-Z:]+)(?:\s*[a-zA-Z:]*\s*=\s*(?:'[^']*'|"[^"]*"))*\s*(/\s*)?>(?:[^<>]*|(?1))*(?(3)|<\s*/\s*\2\s*>))\s*$z<foo><bar></bar></foo>Tz<foo><bar></foo></bar>Fz<foo><bar/></foo>z<foo><bar></foo>z<foo bar=baz/>z<foo bar="baz">z<foo bar="baz"/>z<    fooo   /  >z	foo<foo/>z<foo>foo</foo>z<foo><bar/>foo</foo>z<a><b><c></c></b></a>)r)r-r@r�r.r/)r�rgxs  r�test_recursivezRegexTests.test_recursives��������&=�t�D�D�a�a�a�I�
�	�	�	������&=�u�E�E�q�q�q�J�
�	�	�	������&=�v�F�F����K�
�	�	�	������&=�w�G�G����L�
�	 �	 �	 ������&=�w�G�G����L�
�	�	�	������&=�}�M�M�
�	�	�	�	
�����&A�4�H�H�!�!�!�M�
�	�	�	������&A�5�I�I�1�1�1�N�
�	�	�	������&A�6�J�J�A�A�A��
 �	"�	"�	"������&A�7�K�K�Q�Q�Q��
!�	#�	#�	#������&A�7�K�K�Q�Q�Q��
�	 �	 �	 ������&A�
����	 �	 �	 �	
�����&?��N�N�
�!�!��#�	%�	%�	%������&?�
��� �����%?�%?�%?�	A�	A�	A�	
�����&C�
�������2�	4�	4�	4������&C�
��� �����%?�%?�%?�	A�	A�	A�	
�����&;�
+�-�-�./�a�a�2�3G�	I�	I�	I�	
�����&?�
+�-�-�./�a�a�2�3G�	I�	I�	I�	
�����&J�
"�$�$�%&�Q�Q�)�+�	 �	 �	 �
	
�����&N�
"�$�$�%&�Q�Q�)�+�	 �	 �	 �
�m�Z�[�[������c�j�j�)A�B�B�C�C�T�J�J�J�����c�j�j�)A�B�B�C�C�U�K�K�K�����c�j�j�)<�=�=�>�>��E�E�E�����c�j�j�);�<�<�=�=�u�E�E�E�����c�j�j�)9�:�:�;�;�U�C�C�C�����c�j�j�):�;�;�<�<�e�D�D�D�����c�j�j�);�<�<�=�=�t�D�D�D�����c�j�j�);�<�<�=�=�t�D�D�D�	
����c�j�j��5�5�6�6��>�>�>�����c�j�j�)9�:�:�;�;�T�B�B�B�����c�j�j�)?�@�@�A�A�4�H�H�H�����c�j�j�)@�A�A�B�B�D�I�I�I�I�Irc��tjd��}|�tj|��|u��|�tj|��|u��|�d��}|�tj|��|u��|�tj|��|u��|�|jdu��tj|��}|���|�|jdu��|�|jdu��tjdd��}tj|��}|�	t|�����d��|�	t|�����d��tjdd��}tj|��}|�	t|�����d��|�	t|�����d��tjdd��}tj|��}|�	t|��d��|�	t|��d��tjdd��}tj|��}|�	t|��d��|�	t|��d��dS)Nr\rPrr�r�rW)
r-r.�
assertTrue�copy�deepcopyrBr@�
detach_stringr�r)r�r�r�)r�rrU�m2r��it2s      r�	test_copyzRegexTests.test_copyIs����M�#��������	�!����)�*�*�*�����
�a�(�(�A�-�.�.�.�

�G�G�C�L�L������	�!���A�-�.�.�.�����
�a�(�(��1�2�2�2�������,�-�-�-�
�Y�q�\�\��
������������,�-�-�-�����	�T�)�*�*�*��^�C��
&�
&���i��m�m������b�����)�)�3�/�/�/�����c�����*�*�C�0�0�0��^�C��
&�
&���m�B��������b�����)�)�3�/�/�/�����c�����*�*�C�0�0�0��_�S�%�
(�
(���i��m�m������b���3�'�'�'�����c���C�(�(�(��_�S�%�
(�
(���m�B��������b���3�'�'�'�����c���C�(�(�(�(�(rc���|�tjddd��d��|�tjddd��d��|�tjddd��d��|�tjddd��d	��|�tjdd���d��d��dS)
Nr�z{0} => {2} {1}r��foo bar => bar fooz(?<word1>\w+) (?<word2>\w+)z{word2} {word1}�bar foo)r[r:)r\r:)r)r-�subf�subfnrB�expandfrCs r�test_formatzRegexTests.test_formatts�������N�4D�
���*�	,�	,�	,������$B�
�Y�(�(�)2�	4�	4�	4�	
�����^�5E�
���/�	1�	1�	1������%C�
�Y�(�(�)7�	9�	9�	9�	
�����^�
����W�-�.�.�0D�	F�	F�	F�	F�	Frc
�:�|�ttjdd����d��|�ttjdd����d��|�ttjddd�����d��|�ttjddd�	����d��|�ttjdd
d�	����d��|�ttjdd
dd�����d��|�ttjd
d����d��|�ttjd
d����d��|�ttjd
dd�����d��|�ttjd
dd�	����d��|�ttjd
d
d�	����d��|�ttjd
d
dd�����d��dS)Nr�TraFr;)r?�xabcr:)r>r2r�r�z(?r)abc�r)r/r-rArCs r�test_fullmatchzRegexTests.test_fullmatch�sm������e�o�f�e�<�<�=�=�t�D�D�D�����e�o�f�f�=�=�>�>��F�F�F�����e�o�f�f�Q�G�G�G�H�H�$�O�O�O�����e�o�f�f�!�D�D�D�E�E�t�L�L�L�����e�o�f�g�1�E�E�E�F�F��N�N�N�����e�o�f�g�1��������	�	�	�	
����e�o�j�%�@�@�A�A�4�H�H�H�����e�o�j�&�A�A�B�B�E�J�J�J�����e�o�j�&��K�K�K�L�L�
�	�	�	�	
����e�o�j�&�a�H�H�H�I�I�
�	�	�	�����e�o�j�'�q�I�I�I�J�J�
�	�	�	�����e�o�j�'�q��������	�	�	�	�	rc	��|�tjddd��d��|�tjdtd��td����d��|�tjddd��d��|�tjdt	d��t	d����d��|�tjdtd��td����d��|�tjdt
d��t
d����d��d	td	��fD]�}|�tjd
|��gd���tj	dkrW|�tjd
|��gd���|�tjd|��gd�����|�tjd
|��gd���|�tjd|��gd�����dt	d��td��t
d��fD]�}|�tjd|��gd���tj	dkrW|�tjd|��gd���|�tjd|��gd�����|�tjd|��gd���|�tjd|��gd�����dtd��fD]�}|�tj
d|��gd���|�tj
d|��gd���|�tj
d |��gd!�����d"t	d"��td"��t
d"��fD]�}|�tj
d#|��gd$���|�tj
d%|��gd$���|�tj
d&|��gd'�����dtd��fD�].}|�tjd|���
��d(��|�tjd)|���
��d*��|�tjd)|���d+��d��|�tjd)|���d,��d��|�tjd)|���d,d,��d-����0dt	d��td��t
d��fD�].}|�tjd|���
��d(��|�tjd.|���
��d/��|�tjd.|���d+��d��|�tjd.|���d,��d��|�tjd.|���d,d,��d0����0dS)1Nr&r\r��xaz�yrRsxyzsxazr�r�r�r�r�r�r�r�r�r�s:a:b::c�:)rrRrrr!s:*)rrrRrrrr!rs(:*))rrhrrrRrhrrr�::rrr!rr)rrRrr!)rrhrRrhrrir!r�r�r�r�r�r�s
a:b::c:::ds:+)rhris:::s(:+)s(:)(:*)))rhr)rhrh)rhrirSrrrr:r	s(a))rR)rRrR)r*r-rjrr�	bytearray�
memoryviewr�r�r�r/r)rBr<r�)rr@s  r�test_issue_18468zRegexTests.test_issue_18468�s�����e�i��S�%�8�8�%�@�@�@����e�i��[��-=�-=�
�e�
�
���$�	&�	&�	&����e�i��d�F�;�;�V�D�D�D����e�i��m�D�.A�.A�
��
�
�!�!�"(�	*�	*�	*����e�i��i��o�o�
�F�
�
���$�	&�	&�	&����e�i��j��.>�.>�
�V�
�
���%�	'�	'�	'� ��Y�!7�!7�7�	-�	-�F��!�!�%�+�c�6�":�":�=�=�=�
�
�
���9�,�,��%�%�e�k�$��&?�&?�B(�B(�B(�)�)�)��%�%�e�k�&�&�&A�&A�DL�DL�DL�M�M�M�M��%�%�e�k�$��&?�&?�B�B�B�����%�%�e�k�&�&�&A�&A�D,�D,�D,�-�-�-�-�"�=��#<�#<�
�J�
�
��J�!7�!7�9�	2�	2�F��!�!�%�+�d�F�";�";�>�>�>�
�
�
���9�,�,��%�%�e�k�%��&@�&@�C3�C3�C3�4�4�4��%�%�e�k�'�6�&B�&B�E�E�E������%�%�e�k�%��&@�&@�C�C�C�����%�%�e�k�'�6�&B�&B�E1�E1�E1�2�2�2�2�#�K��$=�$=�=�	(�	(�F��!�!�%�-��f�"=�"=�@�@�@�
�
�
��!�!�%�-���"?�"?�B�B�B�
�
�
��!�!�%�-�	�6�"B�"B�E'�E'�E'�
(�
(�
(�
(�%�m�M�&B�&B�
�M�
"�
"�J�}�$=�$=�?�	2�	2�F��!�!�%�-��v�">�">�A�A�A�
�
�
��!�!�%�-���"@�"@�C�C�C�
�
�
��!�!�%�-�
�F�"C�"C�F1�F1�F1�
2�
2�
2�
2��;�s�+�+�+�	�	�F����U�[��f�5�5�<�<�>�>��C�C�C����U�[���7�7�>�>�@�@�&�I�I�I����U�[���7�7�=�=�a�@�@�#�F�F�F����U�[���7�7�=�=�a�@�@�#�F�F�F����U�[���7�7�=�=�a��C�C�F�
�
�
�
��]�4�0�0�)�D�/�/�
�T�
�
��	�	�F����U�[��v�6�6�=�=�?�?��D�D�D����U�[���8�8�?�?�A�A�7�K�K�K����U�[���8�8�>�>�q�A�A�4�H�H�H����U�[���8�8�>�>�q�A�A�4�H�H�H����U�[���8�8�>�>�q�!�D�D�G�
�
�
�
�
	�	rc��|�tjddd���jd��|�tjddd������d��|�tjddd���jd��|�tjddd������d��|�tjdd	d���d��|�tjd
dd���jd��|�tjd
dd������d
��|�tjd
dd���jd��|�tjd
dd������d��|�tjddd���jd��|�tjddddg���jd��|�tjddddg������d��|�tjddddg���jd��|�tjddddg������d��|�tjddddg���jd��|�tjddddg������d��|�tjddddg���jd��|�tjddddg������d��|�tjddddg���d��|�tjddd������d��|�tjddd������d��|�tjddd������d��|�tjddd������d��|�tjddd������d��|�tjdd d���d��|�tjdd!d���d��dS)"Nrr\T��partialr7r<r8r>�catchzabc\w{3}r3Fror}rz\d{4}$�1234z	\L<words>�post)ror�rqr>r��POST�post�POSz	[a-z]*4R$rc�ab4�a4�a4R�4a�a44)r)r-rBrorArCs r�test_partialzRegexTests.test_partial�s��������T�3��=�=�=�E�t�L�L�L������T�3��=�=�=�B�B�D�D�f�M�M�M������W�e�T�B�B�B�J�
�	�	�	������W�e�T�B�B�B�G�G�I�I�L
�	�	�	������W�g�t�D�D�D�d�K�K�K������[�(�������	(�	(�	(������[�(����������	(�	(�	(������[�'�������	'�	'�	'������[�'����������	(�	(�	(�	
�����Y���E�E�E�M�
�	�	�	�	
�����\�6�4������!�5�	*�	*�	*������\�6�4�������$�&�&�&�	*�	*�	*������\�5�$������!�4�	)�	)�	)������\�5�$�������$�&�&�&�	*�	*�	*�	
�����%6��������%�u�	.�	.�	.������%6��������"�d�f�f�f�	.�	.�	.������%6��t������%�t�	-�	-�	-������%6��t������"�d�f�f�f�	.�	.�	.������%6�
��u�g�'�'�'�(,�	.�	.�	.�	
�����\�3��E�E�E�J�J�L�L�
�	�	�	������\�4��F�F�F�K�K�M�M�
�	�	�	������\�5�$�G�G�G�L�L�N�N�
�	�	�	������\�4��F�F�F�K�K�M�M�
�	�	�	������\�5�$�G�G�G�L�L�N�N�
�	�	�	������\�4��F�F�F��M�M�M������\�5�$�G�G�G��N�N�N�N�Nrc����|�ttjdtj�����d��|�ttjdtj�����d��|�tjdd��ddg��|�tjd	d��ddg��|�tjdd
��dg��|�tjdd��d
g��|�tjdd��d
g��|�d�tjdd��D��dg��|�tjddtjtjz���	d��d��|�tjddtjtjz���	d��d��|�tjddtjtjz���	d��d��|�tjdd���
��d��|�ttjddtj�����d��|�tjdd���	dd ��d!��|�tjd"d#���	dd ��d$��|�tjd%d&���	d��d&��|�tjd'd(���	dd ��d)��|�tjd*d(��d��|�tjd+d,���	d��d��|�tjd-d.���
d ��d/��|�tjd-d0���
d ��d1��|�tjd-d2���
d ��d3��|�tjd4d2���	��d2��|�tjd5d6���
��d7��|�tjd8d.���
��d9��|�tjd8d0���
��d:��|�tjd;d���	d��d��|�tjd<d2tj����	d��d2��|�tjd=d>���
dd ��d?��|�tjd@d>���
dd ��dA��|�tjdBd>���
dd ��dC��|�tjdDd>���
dd ��dE��|�tjdFdG���	d��d.��|�tjdHdIdJdKg�L��gdM���|�tjdNdI��gdO���|�tjdPdI��gdM���|�tjdQdI��gdM���|�tjdRd.���	dd dS��dT��|�tjdUdV���
dd ��dW��|�tjdXd.���	dd ��dY��|�tjdZd[��d��|�tjd\d]��d��|�tj|jd^���|�tjd_d`���
d��da��|�tjdbdc���	d��dc��|�tjddde��d��|�tjdfdg��d��|�tjdhdi���	dd dS��dj��|�tjdkdl��d#dmg��|�tjdndl��d#dmg��|�tjdodl��d#dmg��|�tjdpdl��d#dmg��|�tjdqdr���	��dr��|�ds�tjdtdu��D��dvdwg��|�tjdxdy���dz��gd{���|�tj|jd|���d}}d~}|�tj||tj��dd��|�tjd�d���d�g��|�t)tjd�d�d�tj����t)d�����|�tjd�d���d��|�tjd�d����d���d�d:g��|�tjd�d��d���d���tjd�tj���}|�|�d���d��|�|�d���g��|�tj|jd����|�tjd�d�����d���|�tjd�d����d���|�tjd���d���|�tjd�d�����d���|�tjd�d����d���|�tjd���d���|�tjd�d����
��d���|�tjd�d����
��d���|�tjd�d����
��d���tjd�tjtjz���}|�d��|�d���D��d�g��|�|�d���d�g��d�}|�d��|�|��D��d�g��|�|�|��d�g��tjd�tjtjztjz���}|�d��|�d���D��d�g��|�|�d���d�g��d�}|�d��|�|��D��d�g��|�|�|��d�g��t:jd�kr+|�tjd�d�d���dV��n*|�tjd�d�d���d���|�tjd�d�d���dV��t:jd�kr+|�tjd�d�d���d���n*|�tjd�d�d���d���|�tjd�d�d���d���|�tjd�d�d�tj���d���|�tjd�d���j d���|�tjd�d���j d���|�tjd�d���j d���|�tjd�d���j d���|�tjd�d���j d���|�tjd�d���j d���|�tjd�d���j d���|�tjd�d���j d���|�tjd�d���j d���|�tjd�d¦�j dæ�|�tjd�d¦�j dæ�|�tjd�d¦�j dæ�|�tjd�d���j d���|�tjd�d���j d���|�tjd�d���j d���|�tjd�dȦ�g��|�tjd�d�d���d���|�ttjd.d.tj!����d��|�tjd�d˦�ddg��|�tjd�d˦�ddg��|�tjd�d˦�ddg��|�tjd�d˦�ddg��|�tjd�dЄ��|�tjd�d.���	dd dS��dҦ�|�tjd�d.���	dd dS��dҦ�dԠ"dՄtGd֦�D����}|�t)dԠ"tjd�|������t)dԠ"tjd�|��������|�t)dԠ"tjd�|������t)dԠ"tjd�|��������|�t)dԠ"tjd�|������t)dԠ"tjd�|��������|�t)dԠ"tjd�|������t)dԠ"tjd�|��������|�t)dԠ"tjd�|������t)dԠ"tjd�|��������|�t)dԠ"tjd�|������t)dԠ"tjd�|��������|�t)dԠ"tjd�|������t)dԠ"tjd�|��������|�t)dԠ"tjd�|������t)dԠ"tjd�|��������|�t)dԠ"tjd�|������t)dԠ"tjd�|��������|�t)dԠ"tjd�|������t)dԠ"tjd�|��������|�t)dԠ"tjd�|������t)dԠ"tjd�|��������|�t)dԠ"tjd�|������t)dԠ"tjd�|��������|�t)dԠ"tjd�|������t)dԠ"tjd�|��������|�t)dԠ"tjd�|������t)dԠ"tjd�|��������tItGd����}|�t)d�"tjd�|������t)d�"tjd�|��������|�t)d�"tjd�|������t)d�"tjd�|��������|�t)d�"tjd�|������t)d�"tjd�|��������|�t)d�"tjd�|������t)d�"tjd�|��������|�t)d�"tjd�|������t)d�"tjd�|��������|�t)d�"tjd�|������t)d�"tj�d|��������|�t)d�"tj�d|������t)d�"tj�d|��������|�t)d�"tj�d|������t)d�"tj�d|��������|�t)d�"tj�d|������t)d�"tj�d|��������|�t)d�"tj�d|������t)d�"tj�d|��������|�t)d�"tj�d	|������t)d�"tj�d
|��������|�t)d�"tj�d|������t)d�"tj�d|��������|�t)d�"tj�d
|������t)d�"tj�d|��������|�t)d�"tj�d|������t)d�"tj�d|��������|�t)tj�d�d���	����t)�d����|�tj�d�d���
���d��|�tj�d�dd����d��|�tj�d�dd����d��|�tj%�d�dd����d��|�tj%�d�dd����d��|�tj&�dd�d�����
��d:��|�tj&�dd�d����j'd��|�tj�d�dd�����
���d ��|�tj�d!�dd�����
���d ��|�tj�d"�dd�����
���d#��|�tj�d$�d%���
��d9��|�tj�d&�d'��d��|�tj�d(�d)��g�d*���|�tj�d+�d)��g�d*���|��d,�tj�d-�d.��D��g�d/���|��d0�tj�d1�d.��D��g�d/���|�tj�d2�d3��d�d3��|�tj�d2�d4��d�d4��|�tj�d5�d6��d�d6��|�tj�d7�d8��d�d8��|�tj�d9d���	dd ���d:��|�tj�d;�d<���d=�d>g��|�tj�d?�d<��d�d@g��|�tj�dAd���	dd ���dB��|�tj�dC�d<���dDd�g��|�tj�dE�d<���d@dg��|�tj�dF�dG��d�dG��|�tj�dH�dI��d�dJ��|�tj�dK�dI��d�dJ��|�tj�dL�dI��d��|�tj�dM�dI��d�dI��|�tj�dN�dO��d�dO��|�tj�dN�dP��d�dQ��|�tj�dR�dO��d�dS��|�tj�dR�dP��d�dQ��|�tj�dT�dP��d�dP��|�tj�dT�dU��d�dQ��|�tj�dV�dU��d�dQ��|�tj�dW�dU��d�dQ��|�tj�dX�dI��d��|�tj�dY�dI��d�dI��|�tj�dZ�dO��d�dO��|�tj�dZ�dP��d�dQ��|�tj�d[�dP��d�dP��|�tj�d[�dU��d�dQ��|�tj�d\�dU��d�dQ��|�tj�d]�dU��d�dQ��|�tj�d^�dO��d�dO��|�tj�d^�dP��d�dQ��|�tj�d_�dO��d�dS��|�tj�d_�dP��d�dQ��|�tj�d`�dP��d�dP��|�tj�d`�dU��d�dQ��|�tj�da�dU��d�dQ��|�tj�db�dU��d�dQ��|�tj�dc�dO��d�dO��|�tj�dc�dP��d�dQ��|�tj�dd�dP��d�dP��|�tj�dd�dU��d�dQ��|�tj�de�dU��d�dQ��|�tj�df�dU��d�dQ���dg}|�tQtj�dh|����d ��|�tj�di�dj���
��d:��|�tj�dk�dl��d�dl��tj�dm��}�dn}	|��do�|�|	��D���dp�dqg��|�tj�dr�dstj���
���dt��|�tj�du�dstj���
���dv��|�tj�dw�dx���
���dy��|�tj�dz�dx��d��|�tj�d{�d|���
���d}��|�tj�d{�d~���d�d�g��|�tj�d��d����	dd ���d���|�tj�d��d����	dd ���d���|�tj�d��d��d����d���|�tj�d��d��d����d���|�tj�d��d��d�g������
��d���|�tj�d��d��d�g������
��d���|�tj�d��d����
���d���|�tj�d��d����
���d���|�tj�d��d����
���d���|�tj�d��d����
���d���|�tj�d��d����
���d���tj�d��d��d�g�����}
tSj*|
��}tSj+|��}
|�|
��d����
��d7��|�tj�d��d�tj����
���dy��|�tj�d��d�tj����
���d���|�tj�d�d�tj���d��|�tj�d��d�tj����
���dy��|�tj�d��d�tj����
���d���|�tj�d�d�tj���d��|�,tj�d����|�,tj�d����|�ttj�d�����d��|�ttj�d�����d��|�tj�d��d�tj-���d��d�g��|�tj�d��d�d�����
���d����d�}�d�}
|�ttj�d�|z|
����d��|�ttj�d�|
z|����d��|�ttj�d�|z|
����d���|�ttj�d�|
z|����d���|�ttj�d�|z|
����d���|�ttj�d�|
z|����d���|�ttj�d��d��d��d�g�������d��|�ttj�d��d��d��d�g�������d��|�ttj�d��d��d��d�g�������d��|�ttj�d��d��d��d�g�������d��|�tj�d��d��d��d�g������
���d���|�tj�d��d��d��d�g������
���d���|�tj�d��d����
���d���|�tj�d��d����
���d���|�tj�d��d����
���d���|�tj�d��d���d��|�tj�ddæ��
���dĦ�|�tj�dŐdƦ��
���dǦ��d�}�d�}|�ttj||����d���|�ttj�dʐd�����d��|�ttj�dːd�����d���|�ttj�d̐d�����d��|�ttj�d͐d�����d���|�ttj�dΐdϦ���d���|�tj�dАdѦ��
���dҦ�|�tj�dӐd�tj���
���d���|�tj�dӐd�tj��j d���|�tj�dՐd�tj���
���d���|�tj�dՐd�tj��j d���|�tj�d֐d�tj���
���dئ�|�tj�d֐d�tj��j �d٦�|�tj�dڐd�tjtjz����
���dܦ�|�tj�dݐd<���d@g��|�tj�dސd<���d@g��|�tj�dߐd���d�d�g��|�tj�d�d��g��|�tj�d�d���d�g��|�tj�d�d��g�d���|�tj�d�d���	���d��|�tj�d�d���	���d��|�tj�d�d���	���d��|�tj�d�d���	���d��|�tj�d�d���	���d��|�tj�d�d���	���d��|�tj�d�d���	���d��|�tj�d�d���	���d��|�tj�d�d���	���d��|�tj�d��d���	���d��|�tj�d��d���	���d��|�tj�d��d���	���d��|�tj�d�d�d�������d���|�tj�d�d�d������d���|�tj�d�dd�������d���|�tj�d�dd������d���|�tj�d����d���|�tj�d�de���
��d9��|�tj�d��d����
��d9��|�tj�d�d����
���d��|�tj�ddԦ��
���d��|�tj�ddԦ��
���d��|�tj�dd#���
���d��|�tj�dd#���.���ddi��|�tj�dd#���/���dd.gi��|�tj�dd#���
���d��|�tj�dd#���.���ddi��|�tj�dd#���/���dd.gi��|�tj�dd#���
���d��|�tj�dd#���.���ddi��|�tj�dd#���/���dd.gi��|�ttj�d	d����d��|�tj�d
�dd�����
���d���|�tj�d�dd�����
���d���|�ttj�d
�d����d��|�ttj�d�d����d��|�ttj�d�d����d��|�ttj�d�d����d��|�ttj�d�d����d��|�ttj�d�d����d��|�ttj�d�d����d��|�ttj�d�d����d���|�ttj�d�d����d��|�ttj�d�d����d���|�ttj�d�d����d��|�ttj�d�d����d���|�ttj�d�d����d��|�ttj�d�d����d���|�tj&�d d#���d���g�d!���|�tj&�d d#���	d���d��|�tj&�d"d#���d���g�d!���|�tj&�d"d#���	d����d#��|�tj�d$d�d����j'd���|�tj�d$�d%d����j'd���|�tj�d&d�d����j'd���|�tj�d'd�d����j'd���|�tj�d'�d%d����j'd���|�tj�d(d�d����j'd���|�tj�d(�d%d����j'd���|�tj�d)d�d����j'd���|�tj�d*d�d����j'd���|�tj�d*�d%d����j'd���|�tj�d+d�d����j'd���|�tj�d+�d%d����j'd���|�tj�d,d�d����j'd���|�tj�d-d�d����j'd���|�tj�d-�d%d����j'd���|�tj�d.d�d����j'd���|�tj�d.�d%d����j'd���|�tj�d/d�d����j'd���|�tj�d0d�d����j'd���|�tj�d0�d%d����j'd���|�tj�d1d�d����j'd���|�tj�d2d�d����j'd���|�tj�d3d�d����j'd���|�tj�d4d�d����j'd��|�tj�d5d�d����j'd��|�tj�d6d�d����j'd��|�tj�d4d.d����j'd���|�tj�d5d.d����j'd���|�tj�d6d.d����j'd���|�tj�d7d�d����j'd���|�tj�d8d�d����j'd���|�tj�d9d�d����j'd���|�tj�d:d�d����j'd��|�tj�d;d�d����j'd��|�tj�d<d�d����j'd��|�tj�d:d.d����j'd���|�tj�d;d.d����j'd���|�tj�d<d.d����j'd���|�tj�d=�d>d����j'd����d?}�d@}tj||tj���}|�|j d���|�|j0g�dAggf��|�tj�dB�dC��j �dD��|�tj�dB�dE��j d���|�tj�dF�dG���dGg��|�ttj�dHd.����d��|�ttj�dId.����d��|�tj&�dJ�dI���
��d7��|�tj�dK�dL���/���dMgg�dMg�dN���|�ttj�dO�dP����d��|�ttj�dQ�dP����d��|�tj�dR�dS��j0ggg�dT�f��|�tj�dU�d#��j �dV��|�tj�dU�d#��j0dggd gf��|�tj�dW�d#��j �dX��|�tj�dW�d#��j0ggdgf��|�tj�dY�d#��j �dX��|�tj�dY�d#��j0ggdgf��|�tj�dZ�d[��j �d\��|�tj�d]�d[��j d���|�tj�d^�d[��j d���|�tj�d_�d`��j �da��|�tj�db�d`��j �da��|�tj&�dc�dd��j d���|�tj&�de�dd��j d���|�tj�df�dg��d��|�ttj�dh����d��|�ttj�di����d��|�tj�dj�dk��g�dl���|�tj�dm�dk��g�dl���|�tj�dn�dotj1���j �dp��|�ttj�dq�d�����d��|�ttj�dr�d�����d��|�tj�ds�dt���	���dt��|�tj�ds�du��d��|�tj�dv�dw���	���dw��|�tj�dv�dx��d��|�tj�dv�dw��j0g�dyggf��|�tj�dz�dw���	���dw��|�tj�d{�dw��j0g�dyggf��|�tj�d|���2�d}��g�d~���|�tj�d|���2�d��g�d����|�tj�d�����d���d��|�tj�d�����d���d��tj�d�tjtj3z���}|�|��d����	���d���|�|��d����	���d���|�|��d����	���d���|�|��d����	���d����d�}�d�}tj||tj���}|�|�
���d���|�|�.���d��d��d��d��d��d����tj||tj-���}|�|�
���d���|�|�.���d��d��d��d��d��d�����d�}�d�}tj||tj���}|�|j �dD��|�|j0gggf���d�}tj||tj���}|�|j �da��|�|j0�d��d�gggf��|�tj�d��d��d����d���|�tj%�d��d��d����d���|�tj�d��d����4�d����d���f|�tj�d��d����5�d����d���|�tj�d��d���d��|�tj�d��d�tj���d��|�tj�d��d����
��d:��|�tj�d��d����
��d:��|�tj�d��d���d��|�tj�d��d����
��d9��|�tj�d�d#���6��d#gg�d!�f��|�tj�d�d#���7��d7gg�d��f��|�ttj&�d��d�����d��|�ttj&�d��d�����d��|�tj�d�de��d��|�tj�d�de���
��d/��dS(�Nz(?>b)rMTz^((?>\w+)|(?>\s+))*$z\((?:(?>[^()]+)|(?R))*\)za(bcd(e)f)g(h)z	(bcd(e)f)z(h)z\((?:(?:[^()]+)|(?R))*\)za(b(cd)e)f)g)hz(b(cd)e)z
a(bc(d(e)f)ghz(d(e)f)z(?r)\((?:(?>[^()]+)|(?R))*\)c�6�g|]}|�����SrSr�r�s  rr�z+RegexTests.test_hg_bugs.<locals>.<listcomp>.s2��E�E�E��!�'�'�)�)�E�E�Erz\((?:[^()]*+|(?0))*\)z
a(b(c(de)fg)hz	(c(de)fg)za(bc)dr�rz([\da-f:]+)$r�rYz^(?=ab(de))(abd)(e)�abde)r�rrYz\ r�z^(a|)\1{2}br�r:)r�r�z	^(a){0,0}r�rz(?>.*/)bza/bz(?V0)((?i)blah)\s+\1�	blah BLAH)r�blahz(?V1)((?i)blah)\s+\1z(\()?[^()]+(?(1)\)|)z(abcdz(a*)*r\�r:r:r �r�r�r<�r;r;z	a(?#xxx)*z
(?=abc){3}abc�	abcabcabcr>z^(?:a(?:(?:))+)+r7rcza(?x: b c )dza#comment
*z(?V1)(a(?(1)\1)){1}�
aaaaaaaaaar6z(?V1)(a(?(1)\1)){2})r>r9z(?V1)(a(?(1)\1)){3})ror(z(?V1)(a(?(1)\1)){4})r�)r4r_z(?V1)(a)(?<=b(?1))�bazz(?fi)\L<keywords>u)POST, Post, post, poſt, post, and poſtrrr>)�keywords)rs�Postrrupoſtrt�poſtz
(?fi)pos|post)ru�Posr>upoſrtr�z
(?fi)post|posz(?fi)post|anotherz(?V1)((a)(?1)|(?2))r�r�z(?V1)(\1xx|){6}rY)rcr�z(a|)+rz(a|)*\d�Paaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaz^(?:a?b?)*$r
c�*�tjd��S)Nz\N{1}r�rSrrrVz)RegexTests.test_hg_bugs.<locals>.<lambda>�r�rr�za
a
rz(q1|.)*(q2|.)*(x(a|bc)*y){2,}�xayxayz(?i)[^a]rgz(?i)[[:ascii:]]uKz((a|b(?1)c){3,5})�baaaaca)rVrVr\z
(?<=:\S+ )\w+z:9 abc :10 defrCz
(?<=:\S* )\w+z(?<=:\S+? )\w+z(?<=:\S*? )\w+z(?:fe)?male�femalec�6�g|]}|�����SrSr�r�s  rr�z+RegexTests.test_hg_bugs.<locals>.<listcomp>�s,��7�7�7��!�'�'�)�)�7�7�7rz!(fe)?male: h(?(1)(er)|(is)) (\w+)z(female: her dog; male: his cat. asdsasdazfemale: her dogz
male: his catz (?<rec>\((?:[^()]++|(?&rec))*\))zaaa(((1+0)+1)+1)bbb�rec)z(1+0)z	((1+0)+1)z
(((1+0)+1)+1)c�.�tjddd��S)Nr%�\r�rSrrrVz)RegexTests.test_hg_bugs.<locals>.<lambda>�s��
�)�C��s�
#�
#�rz%(CAGCCTCCCATTTCAGAATATACATCC){1<e<=2}ڮtcagacgagtgcgttgtaaaacgacggccagtCAGCCTCCCATTCAGAATATACATCCcgacggccagttaaaaacaatgccaaggaggtcatagctgtttcctgccagttaaaaacaatgccaaggaggtcatagctgtttcctgacgcactcgtctgagcgggctggcaagg�tCAGCCTCCCATTCAGAATATACATCCzc..+/cz
cA/c
cAb/czcAb/cz(\w+)r(u#अन्‍न ന്‍ किनu)[अन्‍न] [ന്‍] [किन]z.*a.*ba.*aa�ababbaz(?<x>a(?<x>b))rr%r�z(-)c�,�|�d��S)Nr%)r,rTs rrVz)RegexTests.test_hg_bugs.<locals>.<lambda>�s��Q�X�X�d�^�^�rr��axbxcz
\bt(est){i<2}z	Some textc�*�tjd��S)Nz.???r�rSrrrVz)RegexTests.test_hg_bugs.<locals>.<lambda>
s��
�-��
 �
 �rzfoo!?F)�special_onlyzfoo\!\?zfoo!\?sfoo!?sfoo\!\?sfoo!\?z^([^z]*(?:WWWi|W))?$�WWWi)r�z^([^z]*(?:WWWi|w))?$z^([^z]*?(?:WWWi|W))?$r5c�6�g|]}|�����SrSr��r�r%s  rr�z+RegexTests.test_hg_bugs.<locals>.<listcomp>!
� ��B�B�B��!�'�'�)�)�B�B�Br�yxxxc�6�g|]}|�����SrSr�r�s  rr�z+RegexTests.test_hg_bugs.<locals>.<listcomp>%
� ��?�?�?��!�'�'�)�)�?�?�?rc�6�g|]}|�����SrSr�r�s  rr�z+RegexTests.test_hg_bugs.<locals>.<listcomp>*
r�rc�6�g|]}|�����SrSr�r�s  rr�z+RegexTests.test_hg_bugs.<locals>.<listcomp>.
r�rr�z(?V0).*rez(?V1).*z(?V0).*?rz	|||||||||z	|t|e|s|t|z(?V1).*?z^(@)\n(?!.*?@)(.*)z\1\n==========\n\2z@
z
@
==========
r7�cazr>r:z(?b)(?:cats|cat){e<=1}z
(?:cat){e<=1}z(?e)(?:cat){e<=1}z(?b)(?:cat){e<=1}z(?:cats){e<=2}zc ats)r:r:rz(?e)(?:cats){e<=2}r=z(?b)(?:cats){e<=2}zc a ts)rr�rz(?:cats){e<=1}z(?e)(?:cats){e<=1}z(?b)(?:cats){e<=1}z\bof ([a-z]+) of \1\bz#To make use of one of these modulesz\g<0>z(?V1)[[b-e]--cd]r3z(?V1)[b-e--cd]z(?V1)[[bcde]--cd]z(?V1)[bcde--cd]z ^unknown property at position 4$c�*�tjd��S)Nz\p{}r�rSrrrVz)RegexTests.test_hg_bugs.<locals>.<lambda>}
s��%�-��(�(�rz(?:()|(?(1)()|z)){2}(?(2)a|z))r\r�r�z(?:()|(?(1)()|z)){0,2}(?(2)a|z)r�c3�4K�|]}t|��V��dSrrrs  rrz*RegexTests.test_hg_bugs.<locals>.<genexpr>�
s(����7�7�1��A���7�7�7�7�7�7riz[[:alnum:]]+z[\p{Alpha}\p{PosixDigit}]+z[[:alpha:]]+z
\p{Alpha}+z[[:ascii:]]+z[\p{InBasicLatin}]+z[[:blank:]]+z[\p{gc=Space_Separator}\t]+z[[:cntrl:]]+z\p{gc=Control}+z[[:digit:]]+z[0-9]+z[[:graph:]]+z<[^\p{Space}\p{gc=Control}\p{gc=Surrogate}\p{gc=Unassigned}]+z[[:lower:]]+z
\p{Lower}+z[[:print:]]+z%(?V1)[\p{Graph}\p{Blank}--\p{Cntrl}]+z[[:punct:]]+z2(?V1)[\p{gc=Punctuation}\p{gc=Symbol}--\p{Alpha}]+z[[:space:]]+z\p{Whitespace}+z[[:upper:]]+z
\p{Upper}+z[[:word:]]+zL[\p{Alpha}\p{gc=Mark}\p{Digit}\p{gc=Connector_Punctuation}\p{Join_Control}]+z
[[:xdigit:]]+z[0-9A-Fa-f]+rrs(?a)[[:alnum:]]+s(?a)[\p{Alpha}\p{PosixDigit}]+s(?a)[[:alpha:]]+s(?a)\p{Alpha}+s(?a)[[:ascii:]]+s(?a)[\x00-\x7F]+s(?a)[[:blank:]]+s(?a)[\p{gc=Space_Separator}\t]+s(?a)[[:cntrl:]]+s(?a)\p{gc=Control}+s(?a)[[:digit:]]+s
(?a)[0-9]+s(?a)[[:graph:]]+s@(?a)[^\p{Space}\p{gc=Control}\p{gc=Surrogate}\p{gc=Unassigned}]+s(?a)[[:lower:]]+s(?a)\p{Lower}+s(?a)[[:print:]]+s&(?aV1)[\p{Graph}\p{Blank}--\p{Cntrl}]+s(?a)[[:punct:]]+s3(?aV1)[\p{gc=Punctuation}\p{gc=Symbol}--\p{Alpha}]+s(?a)[[:space:]]+s(?a)\p{Whitespace}+s(?a)[[:upper:]]+s(?a)\p{Upper}+s(?a)[[:word:]]+sP(?a)[\p{Alpha}\p{gc=Mark}\p{Digit}\p{gc=Connector_Punctuation}\p{Join_Control}]+s(?a)[[:xdigit:]]+s(?a)[0-9A-Fa-f]+z\X$uab℃u℃z([^L]*)([^R]*R)�LtR)r�r�r�zx\1y�xayxbyr�zx{1}yz(a)*abcrn�OXRG�OOGOXr+z.XRGz	.{1,3}XRG)r:r�zR|R�Rz
(.)(?(1)(?!))rEz(y)?(\d)(?(1)\b\B)�ax1y2z3b))r�r')r��2)r�r�z(y)?+(\d)(?(1)\b\B)c�6�g|]}|�����SrS�rAr�s  rr�z+RegexTests.test_hg_bugs.<locals>.<listcomp>s,�����q�!�&�&�(�(���rz(?i)(?:error){e}z
regex failure)r)r�r_)r_ra)rarac�6�g|]}|�����SrSr�r�s  rr�z+RegexTests.test_hg_bugs.<locals>.<listcomp>	s2��A�A�A�q�!�&�&�(�(�A�A�Arz(?fi)(?:error){e}z(?p)\d+(\w(\d*)?|[eE]([+-]\d+))�10b12z10E+12z(?p)(\w|ae|oe|ue|ss)�aez(?p)one(self)?(selfsufficient)?�oneselfsufficientz(ab\Kcd))rr�z
\w\w\K\w\w�abcdefghr�ghz(\w\w\K\w\w)�efghz(?r)(ab\Kcd))rr�z(?r)\w\w\K\w\wr�z(?r)(\w\w\K\w\w)z6(?(DEFINE)(?<quant>\d+)(?<item>\w+))(?&quant) (?&item)z5 elephantsz12(*FAIL)|3�123r�z(?r)12(*FAIL)|3z
\d+(*PRUNE)\dz\d+(?=(*PRUNE))\dz\d+(*PRUNE)bcd|[3d]�123bcd�123zzdrz\d+?(*PRUNE)bcd|[3d]�3bcdz\d++(?<=3(*PRUNE))zzd|[4d]$�124zzdz\d++(?<=(*PRUNE)3)zzd|[4d]$z\d++(?<=2(*PRUNE)3)zzd|[3d]$z(?r)\d(*PRUNE)\d+z(?r)\d(?<=(*PRUNE))\d+z(?r)\d+(*PRUNE)bcd|[3d]z(?r)\d++(?<=3(*PRUNE))zzd|[4d]$z(?r)\d++(?<=(*PRUNE)3)zzd|[4d]$z (?r)\d++(?<=2(*PRUNE)3)zzd|[3d]$z\d+(*SKIP)bcd|[3d]z\d+?(*SKIP)bcd|[3d]z\d++(?<=3(*SKIP))zzd|[4d]$z\d++(?<=(*SKIP)3)zzd|[4d]$z\d++(?<=2(*SKIP)3)zzd|[3d]$z(?r)\d+(*SKIP)bcd|[3d]z(?r)\d++(?<=3(*SKIP))zzd|[4d]$z(?r)\d++(?<=(*SKIP)3)zzd|[4d]$z(?r)\d++(?<=2(*SKIP)3)zzd|[3d]$z�June 30, December 31, 2013 2012
some words follow:
more words and numbers 1,234,567 9,876,542
more words and numbers 1,234,567 9,876,542z(?<!\d)(?>2014|2013 ?2012)z1(?>2)�12zn(?V1w)(?=(?=[^A-Z]*+[A-Z])(?=[^a-z]*+[a-z]))(?=\D*+\d)(?=\p{Alphanumeric}*+\P{Alphanumeric})\A(?s:.){8,255}+\ZzAAaa11!!z�(?smx)
(?(DEFINE)
  (?<subcat>
   ^,[^,]+,
   )
)

# Group 2 is defined on this line
^,([^,]+),

(?:(?!(?&subcat)[\r\n]+(?&subcat)).)+
zP
,Cat 1,
,Brand 1,
some
thing
,Brand 2,
other
things
,Cat 2,
,Brand,
Some
thing
c�:�g|]}|�dd����Sr�r�r�s  rr�z+RegexTests.test_hg_bugs.<locals>.<listcomp>�s0��*�*�*�1�!�&�&��A�,�,�*�*�*r)r�)r�rc)r�)�6�;z
(abcdefgh){e}z******abcdefghijklmnopqrtuvwxyz)r4r�z(abcdefghi){e})r4r�z(?:(?=\d)\d+\b|\w+)r�roz(?(?=\d)\d+\b|\w+)z (?(?<=love\s)you|(?<=hate\s)her)z
I love yourz&I love you but I don't hate her either�you�herz(?p)a*(.*?)�aaabbb)r��bbbz
(?p)a*(.*)r�r�z
(?irV0)\L<kw>�21r')�kwz
(?irV1)\L<kw>za|b�111a222)r;r�z(?r)a|bz(?if)<(CLI)><\1>z
<cli><cli>r�z
<cli><clI>z(?ifr)<\1><(CLI)>z\L<options>r�r�rmz(x{6}){e<=1}�xxxxxx�xxxxxrz(?r)(x{6}){e<=1}c�*�tjd��S)Ns00000\0\00\^(\00\U05000000r�rSrrrVz)RegexTests.test_hg_bugs.<locals>.<lambda>�s��
�-�<�
=�
=�rc�*�tjd��S)Ns{e<lr�rSrrrVz)RegexTests.test_hg_bugs.<locals>.<lambda>�s��u�}�W�/E�/E�rz	((?0)){e}z	?(?0){e}z0((brown)|(lazy)){1<=e<=3} ((dog)|(fox)){1<=e<=3}z+The quick borwn fax jumped over the lzy hog)�borwnr�r��faxr�r�)�lzyr�r��hogr�r�z\d\d\d-\d\d-\d\d\d\dz$My SSN is 999-89-76, but don't tell.)�$r�uЙuйz(?ui)z(?ai)z(?afi)z
(?i)\L<aa>�22�121)r z(?ri)\L<aa>z(?fi)\L<aa>z(?fri)\L<aa>z(?r)\1dog..(?<=(\L<aa>))$�ccdogcc�bcb�ccr�z(?ir)\1dog..(?<=(\L<aa>))$z(2)(?:\1{5}){e<=1}�3222212)r:rcz(\d)(?:\1{5}){e<=1}z&\A(?P<whole>(?>\((?&whole)\)|[+\-]))\Zz((-))z((-)+)zx.*? (.).*\1(.*)\1z	x  |y| z|r'z\.sr (.*?) (.)(.*)\2(.*)\2(.*)z#.sr  h |<nw>|<span class="locked">|)r�#z�"\xF9\x80\xAEqdz\x95L\xA7\x89[\xFE \x91)\xF9]\xDB'\x99\x09=\x00\xFD\x98\x22\xDD\xF1\xB6\xC3 Z\xB6gv\xA5x\x93P\xE1r\x14\x8Cv\x0C\xC0w\x15r\xFFc%" z�(?P<http_referer>((?>(?<!\\)(?>"(?>\\.|[^\\"]+)+"|""|(?>'(?>\\.|[^\\']+)+')|''|(?>`(?>\\.|[^\\`]+)+`)|``)))) (?P<useragent>((?>(?<!\\)(?>"(?>\\.|[^\\"]+)+"|""|(?>'(?>\\.|[^\\']+)+')|''|(?>`(?>\\.|[^\\`]+)+`)|``))))zfoo(?<=foo)zfoo(?<!foo)z
foo(?<=foo|x)z
foo(?<!foo|x)z0(?(?=.*\!.*)(?P<true>.*\!\w*\:.*)|(?P<false>.*))r�z\w*(ea)\w*|\w*e(?!a)\w*�easier)�eaz
(^1234$){i,d}�12234z(^1234$){s,i,d}z(^123$){s,i,d}�xxxxxxxx123)rr`)rrkrza?yz�xxxxyz)r�r4z(?:(?![a-d]).)+z.(?(DEFINE)(?P<mydef>(?:(?![a-d]).)))(?&mydef)+z((\w{1,3})(\.{2,10})){1,3}z("Erm....yes. T..T...Thank you for that."�zErm....�Ermz....�zT...�Tr�z((\w{1,3})(\.{2,10})){3}z((\w{1,3})(\.{2,10})){2}z((\w{1,3})(\.{2,10})){1})r�)zT..r�r�r�z(?:ESTONIA(?!\w)){e<=1}zESTONIAN WORKERS�ESTONIANz(?:ESTONIA(?=\W)){e<=1}z(?:(?<!\w)ESTONIA){e<=1}z
BLUB NESTONIA�NESTONIAz(?:(?<=\W)ESTONIA){e<=1}z(?r)(?:ESTONIA(?!\w)){e<=1}z(?r)(?:ESTONIA(?=\W)){e<=1}z(?r)(?:(?<!\w)ESTONIA){e<=1}z(?r)(?:(?<=\W)ESTONIA){e<=1}z(?:A.*B.*CDE){e<=2}zA B CYZz(?:A.*B.*?CDE){e<=2}z(?:A.*?B.*CDE){e<=2}z(?:A.*?B.*?CDE){e<=2}z ,0A[)r��literal_spacesz\ \,0A\[z \,0A\[z\ ,0A\[z ,0A\[z(?(?=A)A|B)r�z
(?(?=A)A|)r6z
(?(?=X)X|)z(?(?=X))z(?(DEFINE)(?<func>.))(?&func)r�funcz!(?(DEFINE)(?<func>.))(?=(?&func))z#(?(DEFINE)(?<func>.)).(?<=(?&func))zab(?#comment\))cdz[a-z]+ [a-z]*?:r�z(?r):[a-z]*? [a-z]+z(?u)\p{Script:Beng}u৯z(?u)\p{Script:Bengali}z!(?u)\p{Script_Extensions:Bengali}z(?u)\p{Script_Extensions:Beng}z(?u)\p{Script_Extensions:Cakm}z(?u)\p{Script_Extensions:Sylo}z(?u)\p{scx:Latin}rdz(?u)\p{scx:Ahom}z(?u)\p{scx:Common}�4z(?u)\p{scx:Caucasian_Albanian}z(?u)\p{scx:Arabic}uتz(?u)\p{scx:Balinese}z(?u)\p{scx:Devanagari}uजz(?u)\p{scx:Batak}z(?P<x>.)*(?&x)r�z(?P<x>.)(?P<x>.)(?P<x>.)r�z(?:ab)*�ababz(?:ab)*?z(?:ab)*+z(?:ab)+z(?:ab)+?z(?:ab)++z(?r)(?:ab)*z(?r)(?:ab)*?z(?r)(?:ab)*+z(?r)(?:ab)+z(?r)(?:ab)+?z(?r)(?:ab)++r4za*?za*+r?za+?za++z(?r)a*z(?r)a*?z(?r)a*+z(?r)a+z(?r)a+?z(?r)a++z
(?:\s*\w+'*)+�whateveraz(?P<termini5>GGCGTCACACTTTGCTATGCCATAGCAT[AG]TTTATCCATAAGATTAGCGGATCCTACCTGACGCTTTTTATCGCAACTCTCTACTGTTTCTCCATAACAGAACATATTGACTATCCGGTATTACCCGGCATGACAGGAGTAAAA){e<=1}(?P<gene>[ACGT]{1059}){e<=2}(?P<spacer>TAATCGTCTTGTTTGATACACAAGGGTCGCATCTGCGGCCCTTTTGCTTTTTTAAGTTGTAAGGATATGCCATTCTAGA){e<=0}(?P<barcode>[ACGT]{18}){e<=0}(?P<termini3>AGATCGG[CT]AGAGCGTCGTGTAGGGAAAGAGTGTGG){e<=1}�?GCACGGCGTCACACTTTGCTATGCCATAGCATATTTATCCATAAGATTAGCGGATCCTACCTGACGCTTTTTATCGCAACTCTCTACTGTTTCTCCATAACAGAACATATTGACTATCCGGTATTACCCGGCATGACAGGAGTAAAAATGGCTATCGACGAAAACAAACAGAAAGCGTTGGCGGCAGCACTGGGCCAGATTGAGAAACAATTTGGTAAAGGCTCCATCATGCGCCTGGGTGAAGACCGTTCCATGGATGTGGAAACCATCTCTACCGGTTCGCTTTCACTGGATATCGCGCTTGGGGCAGGTGGTCTGCCGATGGGCCGTATCGTCGAAATCTACGGACCGGAATCTTCCGGTAAAACCACGCTGACGCTGCAGGTGATCGCCGCAGCGCAGCGTGAAGGTAAAACCTGTGCGTTTATCGATGCTGAACACGCGCTGGACCCAATCTACGCACGTAAACTGGGCGTCGATATCGACAACCTGCTGTGCTCCCAGCCGGACACCGGCGAGCAGGCACTGGAAATCTGTGACGCCCTGGCGCGTTCTGGCGCAGTAGACGTTATCGTCGTTGACTCCGTGGCGGCACTGACGCCGAAAGCGGAAATCGAAGGCGAAATCGGCGACTCTCATATGGGCCTTGCGGCACGTATGATGAGCCAGGCGATGCGTAAGCTGGCGGGTAACCTGAAGCAGTCCAACACGCTGCTGATCTTCATCAACCCCATCCGTATGAAAATTGGTGTGATGTTCGGCAACCCGGAAACCACTTACCGGTGGTAACGCGCTGAAATTCTACGCCTCTGTTCGTCTCGACATCCGTTAAATCGGCGCGGTGAAAGAGGGCGAAAACGTGGTGGGTAGCGAAACCCGCGTGAAAGTGGTGAAGAACAAAATCGCTGCGCCGTTTAAACAGGCTGAATTCCAGATCCTCTACGGCGAAGGTATCAACTTCTACCCCGAACTGGTTGACCTGGGCGTAAAAGAGAAGCTGATCGAGAAAGCAGGCGCGTGGTACAGCTACAAAGGTGAGAAGATCGGTCAGGGTAAAGCGAATGCGACTGCCTGGCTGAAATTTAACCCGGAAACCGCGAAAGAGATCGAGTGAAAAGTACGTGAGTTGCTGCTGAGCAACCCGAACTCAACGCCGGATTTCTCTGTAGATGATAGCGAAGGCGTAGCAGAAACTAACGAAGATTTTTAATCGTCTTGTTTGATACACAAGGGTCGCATCTGCGGCCCTTTTGCTTTTTTAAGTTGTAAGGATATGCCATTCTAGACAGTTAACACACCAACAAAGATCGGTAGAGCGTCGTGTAGGGAAAGAGTGTGGTACCi�z)(?e)(dogf(((oo){e<1})|((00){e<1}))d){e<2}�dogfoodr;�dogfootrUu👨‍👩‍👧‍👦z(?=a)az(?!b)az
((\d)*?)*?zX(?(DEFINE)(?<mydef>(?<wrong>THIS_SHOULD_NOT_MATCHx?)|(?<right>right))).*(?<=(?&mydef).*)zx rightr�)�mydef�wrongr�z(?:cat){e<=1:[u]}�cutz(?:cat){e<=1:u}z?(?be)(AGTGTTCCCCGCGCCAGCGGGGATAAACCG){s<=5,i<=5,d<=5,s+i+d<=10}�TTCCCCGCGCCAGCGGGGATAAACCG)rr:r;r�z	(?:bc){e})r:rr:z
(?e)(?:bc){e}r9z
(?b)(?:bc){e}z,(?e)(?:^(\$ )?\d{1,3}(,\d{3})*(\.\d{2})$){e}z$ 10,112.111.12)r4rr�z/(?e)(?:^(\$ )?\d{1,3}(,\d{3})*(\.\d{2})$){s<=1}z9(?e)(?:^(\$ )?\d{1,3}(,\d{3})*(\.\d{2})$){s<=1,i<=1,d<=1}z/(?e)(?:^(\$ )?\d{1,3}(,\d{3})*(\.\d{2})$){s<=3}z$ 10,1a2.111.12)r�rrz/(?e)(?:^(\$ )?\d{1,3}(,\d{3})*(\.\d{2})$){s<=2}z(?e)(?:0?,0(?:,0)?){s<=1,d<=1}z,0;0z(?e)(?:0??,0(?:,0)?){s<=1,d<=1}z#\b(?e)(?:\d{6,20}){i<=5:[\-\\\/]}\bz-cat dog starting at 00:01132.000. hello worldz(?#)z(?x)(?#)z(\d+){i<=2:[ab]}�123X4Y5)r�r��5z(?i)(\d+){i<=2:[ab]}z^(test){e<=5}$�terstin)rr;rz(?:(x*)\1\1\1)*x$z(?:(x*)\1{3})*x$zt(?:es){s<=1:\d}t�te5t�teztzt(?:es){i<=1:\d}t�tes5t�tesztr;zt(es){i<=1,0<e<=1}tzt(?:es){i<=1,0<e<=1:\d}tz(\d+ week|\d+ days)�7 days)r�r�r��10 days)r�r�r�z[ ]* Name[ ]*\* z  Name *za|\.*pb\.pyz.geojsa?(?<=(?:\A|\W|_))(\d+ decades? ago|\d+ minutes ago|\d+ seconds ago|in \d+ decades?|\d+ months ago|in \d+ minutes|\d+ minute ago|in \d+ seconds|\d+ second ago|\d+ years ago|in \d+ months|\d+ month ago|\d+ weeks ago|\d+ hours ago|in \d+ minute|in \d+ second|in \d+ years|\d+ year ago|in \d+ month|in \d+ weeks|\d+ week ago|\d+ days ago|in \d+ hours|\d+ hour ago|in \d+ year|in \d+ week|in \d+ days|\d+ day ago|in \d+ hour|\d+ min ago|\d+ sec ago|\d+ yr ago|\d+ mo ago|\d+ wk ago|in \d+ day|\d+ hr ago|in \d+ min|in \d+ sec|in \d+ yr|in \d+ mo|in \d+ wk|in \d+ hr)(?=(?:\Z|\W|_))z1 month agoz9 hours 1 minute agoz1 minute agoz10 months 1 hour agoz
1 hour agoz1 month 10 hours agoz10 hours ago�2TTCAGACGTGTGCTCTTCCGATCTCAATACCGACTCCTCACTGTGTGTCTzw(?P<insert>.*)(?P<anchor>CTTCC){e<=1}(?P<umi>([ACGT]){4,6})(?P<sid>CAATACCGACTCCTCACTGTGT){e<=2}(?P<end>([ACGT]){0,6}$))r�2�TTCAGACGTGTGCT�CTTCC�GATCT�CAATACCGACTCCTCACTGTGT�GTCT)�insert�anchor�umi�sidr�zt(?P<insert>.*)(?P<anchor>AACACTGG){e<=1}(?P<umi>([AT][CG]){5}){e<=2}(?P<sid>GTAACCGAAG){e<=2}(?P<end>([ACGT]){0,6}$)�&GGAAAACACTGGTCTCAGTCTCGTAACCGAAGTGGTCG�&GGAAAACACTGGTCTCAGTCTCGTCCCCGAAGTGGTCGr1�z(test1)|(test2)z
matched: \1\2�test1zmatched: test1zmatched: {1}{2}z(?:\bha\b){i:[ ]}�havingz	(?a:\w)\wudжz(?a:\w)(?u:\w)z	^\p{LC}+$u😺z	^\p{So}+$r�)r7r�r5z\p{HorizSpace}+u4	   ᠎              z\p{VertSpace}+u

…

z(?(?<=A)|(?(?![^B])C|D)))8r)r/r-r.�V1r/r�r@rvr�r<rBrdrAr}r��UNDEF_CHAR_NAMEr�r��	BESTMATCHrHrj�WORD�spansr�r��FULLCASErIr�r�r�rTrB�DEBUGrNr�r�r]rAror#�pickle�dumps�loadsr��ENHANCEMATCHr)rrCr�r��V0r,r_�allcaptures�allspans)r�fz�seq�rxr�rawrmr�
TEST_REGEX�	TEST_DATArVr�upper_i�lower_ir\�py_regex_patternrxrU�sequences                   r�test_hg_bugszRegexTests.test_hg_bugss�a��	
����e�m�G�5�8�D�D�D�E�E�t�L�L�L�	
����e�m�,C�������� �	"�	"�	"�	
�����'B�
���)�5�1�	3�	3�	3������'B�
���)�5�1�	3�	3�	3������'B�
���(�\�	+�	+�	+������'B�
���&�K�	)�	)�	)������'F�
���&�K�	)�	)�	)����E�E�
�.�1�?�
C�
C�E�E�E��-�	�	�	�	
�����h����
�(�9����E�!�H�H�f�	&�	&�	&�
	
�����o�s�E�G�
�(�=����E�!�H�H�c�	#�	#�	#������o�s�E�G�
�(�=����E�!�H�H�c�	#�	#�	#�
	
�����&;�V�D�D�K�K�M�M�
�	�	�	�
	
����e�k�%��E�G�D�D�D�E�E�t�L�L�L�	
�����n�c�:�:�@�@��A�F�F�I�	�	�	�
	
�����k�5�9�9�?�?��1�E�E�H�	�	�	�	
�����j�%�8�8�>�>�q�A�A�5�I�I�I�	
�����&=�
����u�Q��{�{�$9�	;�	;�	;������&=�{�K�K�
�	�	�	�
	
�����&=�
����5��8�8�V�	%�	%�	%�
	
�����g�s�3�3�8�8��;�;�V�D�D�D������g�t�4�4�9�9�!�<�<�f�E�E�E������g�u�5�5�:�:�1�=�=�v�F�F�F�	
�����k�5�9�9�?�?�A�A�5�I�I�I�	
�����o�{�C�C�H�H�J�J�M
�	�	�	�
	
�����&8�#�>�>�C�C�E�E�v�N�N�N������&8�$�?�?�D�D�F�F��O�O�O�	
�����n�f�=�=�C�C�A�F�F��O�O�O�	
�����n�e��������q���5�	*�	*�	*�
	
�����&<�
�����Q��
�
�$4�	6�	6�	6������&<�
�����Q��
�
�$4�	6�	6�	6������&<�
�����Q��
�
�$4�	6�	6�	6������&<�
�����Q��
�
�$6�	8�	8�	8�
	
�����&:�E�B�B�H�H��K�K�

�	�	�	�
	
�����';�
?��5�>�#�#�#�%"�%"�%"�	#�	#�	#�	
�����'7�
?�A�A�C<�C<�C<�	=�	=�	=�	
�����'7�
?�A�A�C?�C?�C?�	@�	@�	@�	
�����';�
?�A�A�C?�C?�C?�	@�	@�	@�	
�����&;�S�A�A�G�G��1�
�
�
��	 �	 �	 �
	
�����&8�$�?�?�D�D�Q��J�J�
�	�	�	�	
�����g�s�3�3�9�9�!�Q�?�?��K�K�K�	
�����j�(�;�;�T�B�B�B�	
�����m�T�:�:�D�A�A�A�	
���u�{�D�,@�C"�C"�	#�	#�	#�	
�����e�X�6�6�;�;�A�>�>��G�G�G�	
�����&E�
����E�!�H�H�h�	(�	(�	(�
	
�����j�#�6�6��=�=�=�	
�����&7�9J�K�K�
�	�	�	�
	
�����&9�9�E�E�K�K�A�
�Q���&�	(�	(�	(�	
�����'7�9I�J�J��%�.�	�	�	������'7�9I�J�J��%�.�	�	�	������'8�:J�K�K��%�.�	�	�	������'8�:J�K�K��%�.�	�	�	�	
�����n�h�?�?�E�E�G�G�
�	�	�	����7�7�
�.�=�
4�6�6�7�7�7�9J�
�9�	�	�	�	
�����&I�
�!�!�!)��%���3�3�3�	�	�	�
	
���u�{�D�O�>$�>$�	'�	'�	'�5���������b�#�u��?�?��B�
'�	)�	)�	)�	
�����y�-�@�@�7�)�L�L�L�	
����u�y��7�
P�
�*� � ����\�
]�
]�	_�	_�	_�	
�����^�X�>�>��E�E�E�	
�����%6��=�=�C�C�C�H�H�L
��K�	�	�	�
	
�����6�+C�+C�W�M�M�
�	�	�	�
�]�+�5�8�
<�
<�
<��������;�/�/��6�6�6�������K�0�0�"�5�5�5�	
���u�{�D�,@�C!�C!�	"�	"�	"�	
�����g�E�B�B�B�K�P�P�P������g�D�A�A�A�9�M�M�M������g�.�.�	�:�:�:������h�U�C�C�C�\�R�R�R������h�T�B�B�B�
�	�	�	������h�/�/��<�<�<�	
�����&<�
����&�(�(�J�	(�	(�	(������&<�
����&�(�(�J�	(�	(�	(������&=�
����&�(�(�J�	(�	(�	(��m�F�%�.�5�=�*H�I�I�I�����B�B�S�\�\�&�-A�-A�B�B�B�U�G�L�L�L�������V�,�,�u�g�6�6�6������?�?�S�\�\�#�->�->�?�?�?�%��I�I�I�������S�)�)�E�7�3�3�3��m�F�%�.�5�;K�*K�
�-�+��������B�B�S�\�\�&�-A�-A�B�B�B�U�G�L�L�L�������V�,�,�u�g�6�6�6������?�?�S�\�\�#�->�->�?�?�?�%��I�I�I�������S�)�)�E�7�3�3�3���y�(�(����U�Y�y�#�v�>�>��E�E�E�E����U�Y�y�#�v�>�>��D�D�D������9�c�6�:�:�D�A�A�A���y�(�(����U�Y�z�3��?�?��M�M�M�M����U�Y�z�3��?�?��M�M�M������:�s�F�;�;�[�I�I�I�	
�����#8�
��e�l�<�<�<�=N�	P�	P�	P�	
�����%:�	����i�	)�	)�	)������%>�
����y�	*�	*�	*������%>�
����y�	*�	*�	*�	
�����%5�u�=�=�J�
�	�	�	������%9�
����y�	*�	*�	*������%9�
����y�	*�	*�	*�	
�����%6��@�@�M�
�	�	�	������%:�
�����	,�	,�	,������%:�
�����	,�	,�	,�	
�����%6�
��� �)�	-�	-�	-������%:�
��� �)�	-�	-�	-������%:�
��� �)�	-�	-�	-�	
�����%6��@�@�M�
�	�	�	������%:�
�����	,�	,�	,������%:�
�����	,�	,�	,�	
�����'?�
/�1�1�24�	6�	6�	6�
	
�����4��3�7�7��=�=�=�	
����e�k�$��U�[�A�A�B�B�D�I�I�I�	
�����':�H�E�E��

�H�	�	�	������'8�(�C�C�c�

�F�	�	�	������';�X�F�F��

�I�	�	�	������'9�8�D�D�s�

�G�	�	�	�	
���u�{�,N�
(�
(�	*�	*�	*�	
�����%D�

����u�Q��1�~�~�}�	.�	.�	.������%F�

����u�Q��1�~�~�}�	.�	.�	.����7�7��g���7�7�7�7�7������r�w�w�u�}�5H�
�(�(� � ����"�'�'�%�-�0Q�
�#�#�����	�	�	�	
����r�w�w�u�}�5H�
�(�(� � ����"�'�'�%�-�0A�
�#�#�����	�	�	�	
����r�w�w�u�}�5H�
�(�(� � ����"�'�'�%�-�0J�
�#�#�����	�	�	�	
����r�w�w�u�}�5H�
�(�(� � ����"�'�'�%�-�0R�
�#�#�����	�	�	�	
����r�w�w�u�}�5H�
�(�(� � ����"�'�'�%�-�0F��"N�"N�O�O�P�P�	R�	R�	R�����r�w�w�u�}�5H�
�(�(� � ����"�'�'�%�-�
�u�"E�"E�F�F�G�G�	I�	I�	I�����r�w�w�u�}�5H�
�(�(� � ����"�'�'�%�-�0s�
�#�#�����	�	�	�	
����r�w�w�u�}�5H�
�(�(� � ����"�'�'�%�-�0A�
�#�#�����	�	�	�	
����r�w�w�u�}�5H�
�(�(� � ����"�'�'�%�-�0\�^c�"d�"d�e�e�f�f�	h�	h�	h�����r�w�w�u�}�5H�
�(�(� � ���
�����
�&_�
�������	�	�	�	
����r�w�w�u�}�5H�
�(�(� � ����"�'�'�%�-�0F�
�#�#�����	�	�	�	
����r�w�w�u�}�5H�
�(�(� � ����"�'�'�%�-�0A�
�#�#�����	�	�	�	
����r�w�w�u�}�5G�
�(�(� � ����"�'�'�%�-�1D�
�#�#�����	�	�	�	
����r�w�w�u�}�5I�
�(�(� � ����"�'�'�%�-�0C�
�#�#�����	�	�	�
�e�E�l�l�#�#������s�x�x��
�6N�
�)�)� � ����#�(�(�5�=�1W�
�$�$�����	�	�	�	
����s�x�x��
�6N�
�)�)� � ����#�(�(�5�=�1G��#O�#O�P�P�Q�Q�	S�	S�	S�����s�x�x��
�6N�
�)�)� � ����#�(�(�5�=�1I�5�#Q�#Q�R�R�S�S�	U�	U�	U�����s�x�x��
�6N�
�)�)� � ����#�(�(�5�=�1X�
�$�$�����	�	�	�	
����s�x�x��
�6N�
�)�)� � ����#�(�(�5�=�1L�
�$�$�����	�	�	�	
����s�x�x��
�6N�
�)�)� � ����#�(�(�5�=�1C�U�#K�#K�L�L�M�M�	O�	O�	O�����s�x�x��
�6N�
�)�)� � ����#�(�(�5�=�1y�|A�$B�$B�C�C�D�D�	E�	E�	E�����s�x�x��
�6N�
�)�)� � ����#�(�(�5�=�1G��#O�#O�P�P�Q�Q�	S�	S�	S�����s�x�x��
�6N�
�)�)� � ����#�(�(�5�=�1_�af�#g�#g�h�h�i�i�	k�	k�	k�����s�x�x��
�6N�
�)�)� � ����#�(�(�5�=�1l�
�$�$�����	�	�	�	
����s�x�x��
�6N�
�)�)� � ����#�(�(�5�=�1L�e�#T�#T�U�U�V�V�	X�	X�	X�����s�x�x��
�6N�
�)�)� � ����#�(�(�5�=�1G��#O�#O�P�P�Q�Q�	S�	S�	S�����s�x�x��
�6M�
�)�)� � ����#�(�(�5�=�2J�LQ�$R�$R�S�S�T�T�	U�	U�	U�����s�x�x��
�6O�
�)�)� � ����#�(�(�5�=�1I�5�#Q�#Q�R�R�S�S�	U�	U�	U�	
����u�|�F�J�?�?�E�E�G�G�H�H�
��/�/�	�	�	�
	
�����&7��?�?�F�F�H�H�K�	�	�	�
	
�����6�7�D�9�9�8�D�D�D������:�w��=�=�x�H�H�H������F�G�T�:�:�H�E�E�E������J���>�>��I�I�I�	
������D����������	(�	(�	(�������D�������	'�	'�	'�
	
�����f�g�t�D�D�D�I�I�K�K�
�	�	�	������f�g�t�D�D�D�I�I�K�K�
�	�	�	������k�7����������	(�	(�	(�	
�����U�C�0�0�5�5�7�7��@�@�@�	
�����%5�t�<�<�d�C�C�C�	
�����'<�j�I�I�
+�
+�
+�	-�	-�	-������'=�z�J�J�
+�
+�
+�	-�	-�	-�	
�����E�N�;N�
�-�-����B�B�B�	D�	D�	D����A�A�
�.�-��
?�
?�A�A�A�C#�C#�C#�	$�	$�	$�	
�����&H�
������	 �	 �	 ������&H�
����� �	"�	"�	"�	
�����&=�t�D�D�Q�G��N�N�N������&H�
��� �"�#6�	8�	8�	8�	
�����k�6�:�:�@�@��A�F�F�I�	�	�	������}�j�A�A�D�
�D�	�	�	�������
�C�C�f�
�F�	�	�	�	
�����o�v�>�>�D�D�Q��J�J�
�	�	�	������'8�*�E�E��
�H�	�	�	������':�J�G�G��6�
�	�	�	�	
�����&_�
�����*�	,�	,�	,�	
�����n�e�<�<�Q�?��E�E�E������&8�%�@�@��C�S�I�I�I������&6��>�>��E�E�E������&:�E�B�B�1�E�u�M�M�M������&<�h�G�G��J�
�	�	�	������&<�h�G�G��J�

�	�	�	������&=�x�H�H��K�
�	�	�	������&=�x�H�H��K�

�	�	�	������&D�
����� �	"�	"�	"������&D�
������	�	�	������&D�
������	�	�	������&E�
������	�	�	�	
�����&:�E�B�B�D�I�I�I������&?��G�G��J�
�	�	�	������&@�
����� �	"�	"�	"������&@�
������	�	�	������&H�
����� �	"�	"�	"������&H�
������	�	�	������&H�
������	�	�	������&I�
������	�	�	�	
�����&;�X�F�F�q�I�
�	�	�	������&;�X�F�F�q�I�

�	�	�	������&<�h�G�G��J�
�	�	�	������&<�h�G�G��J�

�	�	�	������&C�
����� �	"�	"�	"������&C�
������	�	�	������&C�
������	�	�	������&D�
������	�	�	�	
�����&?��J�J�1�M�
�	�	�	������&?��J�J�1�M�

�	�	�	������&G�
����� �	"�	"�	"������&G�
������	�	�	������&G�
������	�	�	������&H�
������	�	�	�.��	
����U�]�+H�$�O�O�P�P�RS�T�T�T�	
�����X�t�4�4�9�9�;�;�V�D�D�D�	
�����&W�
�����$�	&�	&�	&��]�$���
��	�	
���*�*�
�
�
�i�
(�
(�*�*�*�,>�A�,�	�	�	�
	
�����o�
+�U�_�>�>�>B�d�f�f�g�	O�	O�	O������&6�
+�U�_�>�>�>B�d�f�f�g�	O�	O�	O�	
�����%;�X�F�F�K�K�M�M�
�	�	�	������%:�H�E�E�t�L�L�L������&I�
��������	)�	)�	)������'J�
2�4�4�6;�U�^�	E�	E�	E�	
�����n�h�?�?�E�E�a��K�K�
�	�	�	������m�X�>�>�D�D�Q��J�J�
�	�	�	������>�5�(�C�C�U�K�K�K������=�%��B�B�E�J�J�J�	
�����%5�t���F�F�F�K�K�M�M�
�	�	�	������%5�t���F�F�F�K�K�M�M�
�	�	�	�	
�����e�Y�7�7�<�<�>�>��G�G�G������i��;�;�@�@�B�B�F�K�K�K�	
�����&9�
��������	)�	)�	)������&9�
��������	)�	)�	)������&:�
��������	)�	)�	)�
�M�.�5�%�.�A�A�A���L��O�O���L��O�O�����������,�,�.�.��7�7�7�	
�����^�X���!�!�!�!%�����	1�	1�	1������^�W���!�!�!�!%�����	1�	1�	1������^�S���!�!�!�"&�	(�	(�	(������%7����!�!�!�!%�����	1�	1�	1������%7����!�!�!�!%�����	1�	1�	1������%7����!�!�!�"&�	(�	(�	(�	
���%�+�(>�(>�	?�	?�	?�	
���%�+�'E�'E�F�F�F�	
����e�m�K�8�8�9�9�4�@�@�@�	
����e�m�N�;�;�<�<�d�C�C�C�	
�����'Z�
7��9K�M�M�3�6��	�	�	�	
�����&=�
0�$�@�@�@�@D����I�	�	�	�
8��5������e�k�(�W�*<�
������	�	�	�����e�k�(�W�*<�
������	�	�	�	
����e�k�(�W�*<�
������	�	�	�����e�k�(�W�*<�
������	�	�	�	
����e�k�)�g�*=�
������	�	�	�����e�k�)�g�*=�
������	�	�	�	
����e�l�=�$�E�
�D�������	�	�	�����e�l�>�4�U�
�E�������	�	�	�����e�l�>�4�U�
�E�������	�	�	�����e�l�?�D�e�
�F�������	�	�	�	
�����&B�I��T�]����!�T�V�V�V�	-�	-�	-������&C�
���
�'�'�'�(,�����	8�	8�	8�	
�����&;�
����T�V�V�V�	%�	%�	%������&<�
����T�V�V�V�	%�	%�	%�
	
�����%R�
����4�6�6�6�	#�	#�	#������%R�
����	�	�	�
	
�����%:�
����t�v�v�v�	'�	'�	'������%F�
0�2�2�26�$�&�&�'�	C�	C�	C�
��y������e�l�+;�Q�?�?�@�@�%�H�H�H�	
����e�k�-��?�?�@�@�$�G�G�G�����e�k�-��?�?�@�@�%�H�H�H�����e�k�/�5�A�A�B�B�D�I�I�I�����e�k�/�5�A�A�B�B�E�J�J�J�	
����e�k�*]�

������	�	�	�	
�����%?�
����F�H�H�h�	(�	(�	(�	
�����o�w�
�/����4�6�6�6�	+�	+�	+������o�w�
�/���'��	4�	4�	4�	
�����&7��
�/����4�6�6�6�	+�	+�	+������&7��
�/���'��	4�	4�	4�	
�����&6�
�
�/����4�6�6�7�	,�	,�	,������&6�
�
�/���'��	4�	4�	4�
	
�����g�x�u�~�
�
�@���� �D�F�F�F�	,�	,�	,�	
�����'9�:�F�F��(�	�	�	������'\�
����x�	!�	!�	!�	
�����'D�
4�6�6�9�'�8)�	*�	*�	*�	
�����'B�
4�6�6�79�	;�	;�	;������'B�
4�6�6�8L�7M�	O�	O�	O������'B�
4�6�6�8=�8=�8=�	>�	>�	>�	
�����&@�
���#�e�g�g�z�	3�	3�	3������&@�
���#�e�g�g�z�	3�	3�	3�	
�����&A�
��� �5�7�7�J�	0�	0�	0������&A�
��� �5�7�7�J�	0�	0�	0�	
�����&D�
���#�e�g�g�z�	3�	3�	3������&D�
���#�e�g�g�z�	3�	3�	3�	
�����&E�
��� �5�7�7�J�	0�	0�	0������&E�
��� �5�7�7�J�	0�	0�	0�
	
�����&<�
����U�W�W�i�	)�	)�	)������&=�
����U�W�W�i�	)�	)�	)������&=�
����U�W�W�i�	)�	)�	)������&>�
����U�W�W�i�	)�	)�	)�	
�����g�E�RW�X�X�X�Zg�h�h�h������g�E�RV�W�W�W�Yd�e�e�e������g�D�QV�W�W�W�Yd�e�e�e������g�D�QU�V�V�V�Xa�b�b�b������g�.�.��<�<�<�	
�����n�c�:�:�?�?�A�A�6�J�J�J������n�c�:�:�?�?�A�A�6�J�J�J������m�S�9�9�>�>�@�@�&�I�I�I������m�R�8�8�=�=�?�?��H�H�H������k�2�6�6�;�;�=�=�v�F�F�F�	
�����&F�
�������8�	%�	%�	%������&F�
�������v�t�n�	.�	.�	.������&F�
�������&�3�%��	2�	2�	2�	
�����&J�
�������8�	%�	%�	%������&J�
�������v�t�n�	.�	.�	.������&J�
�������&�3�%��	2�	2�	2�	
�����&L�
�������8�	%�	%�	%������&L�
�������v�t�n�	.�	.�	.������&L�
�������&�3�%��	2�	2�	2�	
����e�k�*>��G�G�H�H�$�O�O�O�	
�����&8�)����������	(�	(�	(������&<�i����������	(�	(�	(�	
����e�k�*@�
������	�	�	�����e�k�*C�
������	�	�	�����e�k�*N�
������	�	�	�����e�k�*K�
������	�	�	�����e�k�*K�
������	�	�	�����e�k�*K�
������	�	�	�
	
����e�k�*>��D�D�E�E�t�L�L�L�����e�k�*=�s�C�C�D�D�e�L�L�L�����e�k�*?��E�E�F�F��M�M�M�����e�k�*K�S�Q�Q�R�R�
�	�	�	�����e�k�*?��J�J�K�K�T�R�R�R�����e�k�*A�8�L�L�M�M�
�	�	�	�����e�k�*C�X�N�N�O�O�
�	�	�	�����e�k�*>��I�I�J�J�E�R�R�R�	
�����)9�5�A�A�J�J�3�O�O�
�/�/�	�	�	������)9�5�A�A�G�G��L�L�

�	�	�	�	
�����)C�
�����#������	1�	1�	1������)C�
�����s���S�	"�	"�	"�	
�����Y��d�C�C�C�K�
�	�	�	������Y���E�E�E�M�
�	�	�	������Z��T�B�B�B�J�
�	�	�	������Z��t�D�D�D�L�
�	�	�	������Z���F�F�F�N�
�	�	�	������Y��d�C�C�C�K�
�	�	�	������Y���E�E�E�M�
�	�	�	������Z��t�D�D�D�L�
�	�	�	������Z��t�D�D�D�L�
�	�	�	������Z���F�F�F�N�
�	�	�	�	
�����]�D�$�G�G�G�O�
�	�	�	������]�F�D�I�I�I�Q�
�	�	�	������^�R��F�F�F�N�
�	�	�	������^�T�4�H�H�H�P�
�	�	�	������^�V�T�J�J�J�R�
�	�	�	������]�D�$�G�G�G�O�
�	�	�	������]�F�D�I�I�I�Q�
�	�	�	������^�T�4�H�H�H�P�
�	�	�	������^�T�4�H�H�H�P�
�	�	�	������^�V�T�J�J�J�R�
�	�	�	�	
�����T�2�t�<�<�<�D�e�L�L�L������U�B��=�=�=�E�u�M�M�M������U�B��=�=�=�E�u�M�M�M������T�2�t�<�<�<�D�d�K�K�K������U�B��=�=�=�E�t�L�L�L������U�B��=�=�=�E�t�L�L�L������T�3��=�=�=�E�u�M�M�M������U�C��>�>�>�F��N�N�N������U�C��>�>�>�F��N�N�N������X�r�4�@�@�@�H�%�P�P�P������Y��D�A�A�A�I�5�Q�Q�Q������Y��D�A�A�A�I�5�Q�Q�Q������X�r�4�@�@�@�H�$�O�O�O������Y��D�A�A�A�I�4�P�P�P������Y��D�A�A�A�I�4�P�P�P������X�s�D�A�A�A�I�5�Q�Q�Q������Y��T�B�B�B�J�E�R�R�R������Y��T�B�B�B�J�E�R�R�R������%5�z�4�P�P�P�X�
�	�	�	�G����,
�L��$�e�o�>�>�>��������3�3�3������2��v�r�*:�;�;�;�	
�����&R�
���!�9�	.�	.�	.������&R�
���!�9�	.�	.�	.�	
�����u�
F�H�H�G�
H�	J�	J�	J�
	
����e�l�9�c�:�:�;�;�T�B�B�B�����e�l�9�c�:�:�;�;�T�B�B�B�	
�������>�>�C�C�E�E�v�N�N�N�	
�����'F�
���!�\�^�^��y�2��)�&�&�	�	�	�
	
����e�k�*>��F�F�G�G��N�N�N�����e�k�*<�e�D�D�E�E�t�L�L�L�	
�����&h�
&�(�(�(5��B����7M�	O�	O�	O�	
�����\�3�7�7�D�G
�	�	�	������\�3�7�7�E���
�q�c�H�	�	�	������%5�s�;�;�H�K�	�	�	������%5�s�;�;�I�
�r�A�3�-�	�	�	������%5�s�;�;�H�K�	�	�	������%5�s�;�;�I�
�r�A�3�-�	�	�	�	
�����%X�
���)�9�	6�	6�	6������%[�
���)�9�	6�	6�	6������%e�
���)�9�	6�	6�	6������%[�
���)�9�	6�	6�	6������%[�
���)�9�	6�	6�	6�	
�����)J�
����	�	+�	+�	+������)K�
����	�	+�	+�	+�	
�����&L�
9�;�;�<@�	B�	B�	B�	
����e�m�F�3�3�4�4�d�;�;�;�����e�m�J�7�7�8�8�$�?�?�?�	
�����':�I�F�F�
�
�
�	�	�	������'>�	�J�J�
�
�
�	�	�	�	
�����%6�	������%�y�	2�	2�	2�	
����e�k�*>��H�H�I�I�4�P�P�P�����e�k�*=�w�G�G�H�H�$�O�O�O�	
�����%9�6�B�B�H�H�J�J�
�	�	�	������%9�6�B�B�D�I�I�I������%9�7�C�C�I�I�K�K�
�	�	�	������%9�7�C�C�T�J�J�J������%9�
��� �2��s�B�-�	1�	1�	1������%;�W�E�E�K�K�M�M�
�	�	�	������%@�
��� �2��s�B�-�	1�	1�	1�	
�����'=�>�>�D�D�X�N�N�Pb�Pb�Pb�c�c�c������'=�>�>�D�D�Y�O�O�Qd�Qd�Qd�e�e�e������':�;�;�B�B�:�N�N�PT�U�U�U�������7�7�>�>�x�H�H�$�O�O�O��M�J
�R
W
�R
Y
�\
a
�\
d
�R
d
�
e
�
e
�
e
��������-�0�0�6�6�8�8�-�H�H�H�������"8�9�9�?�?�A�A�>�R�R�R�������"8�9�9�?�?�A�A�<�P�P�P�������"8�9�9�?�?�A�A�>�R�R�R�H��M���K�����A�A�A����������7�+�+�+���������3C�w�_f�pH�QW�)X�)X�	Y�	Y�	Y��K����1C�D�D�D����������7�+�+�+���������3C�w�_f�pH�QW�)X�)X�	Y�	Y�	Y�J��;���K�����A�A�A��������3�3�3������2�r�2�,�7�7�7�;���K�����A�A�A��������3�3�3������B��8�R��*<�=�=�=�	
�����#5�7G��Q�Q�Sc�d�d�d������$6�8J�G�T�T�Vf�g�g�g������&8�:J�K�K�R�R�Sc�d�d�fv�w�w�x�x������&8�:J�K�K�S�S�Tf�g�g�iy�z�z�z�	
�����&:�H�E�E�t�L�L�L������&:�H�E�G�T�T�T�VZ�[�[�[�	
�����\�3S�T�T�Y�Y�[�[�]c�d�d�d������%6�8X�Y�Y�^�^�`�`�bh�i�i�i�	
�����\�3Y�Z�Z�\`�a�a�a������\�3Y�Z�Z�_�_�a�a�ci�j�j�j�	
�����W�e�4�4�@�@�B�B�e�W�o�o�o�D^�_�_�_������W�e�4�4�=�=�?�?�6�(�Ld�Ld�Ld�Ae�f�f�f�	
����e�o�.@�Cl�m�m�n�n�pt�	u�	u�	u�����e�o�.?�A[�\�\�]�]�_c�d�d�d�	
�����%@�#�F�F��M�M�M������&A�3�G�G�L�L�N�N�PV�W�W�W�W�Wrc���|�ttjdd����d��|�ttjdd����d��|�ttjdd����d��|�ttjdd����d��|�ttjdd����d��|�ttjdd����d��|�ttjdd����d��|�ttjdd����d��|�ttjd	d����d��|�ttjd
d����d��|�ttjd	d����d��|�ttjd
d����d��|�ttjdd����d��|�ttjdd
����d��|�ttjdd����d��|�ttjdd����d��|�ttjdd����d��|�ttjdd����d��|�ttjdd����d��|�ttjdd����d��|�ttjdd����d��|�ttjdd����d��|�ttjdd����d��|�ttjdd����d��|�ttjdd����d��|�ttjdd����d��|�ttjdd����d��|�ttjdd����d��|�ttjdd����d��|�ttjdd����d��|�ttjdd����d��|�ttjdd����d��|�ttjdd����d��|�ttjdd ����d��|�ttjd!d"����d��|�ttjd!d#����d��|�ttjdd$����d��|�ttjdd%����d��|�ttjd&d'����d��|�ttjd&d(����d��dS))Nz(?r)(?:a){e<=1:[a-z]}rYTz(?:a){e<=1:[a-z]}r�Fr�r>z(?:ab){e<=1:[a-z]}z(?r)(?:ab){e<=1:[a-z]}z(a)\1{e<=1:[a-z]}z(?r)\1{e<=1:[a-z]}(a)r�rAz4(?fiu)(?:\N{LATIN SMALL LETTER SHARP S}){e<=1:[a-z]}�ts�stz5(?firu)(?:\N{LATIN SMALL LETTER SHARP S}){e<=1:[a-z]}z-szs-z4(?fiu)(\N{LATIN SMALL LETTER SHARP S})\1{e<=1:[a-z]}�ssst�sstsz5(?firu)\1{e<=1:[a-z]}(\N{LATIN SMALL LETTER SHARP S})�stss�tssszss-szsss-z5(?firu)(\N{LATIN SMALL LETTER SHARP S})\1{e<=1:[a-z]}z(?fiu)(ss)\1{e<=1:[a-z]}ußtsußstz(?firu)\1{e<=1:[a-z]}(ss)ustßutsßuß-sußs-z(?firu)(ss)\1{e<=1:[a-z]}us-ßu-sßrcrCs r�test_fuzzy_extzRegexTests.test_fuzzy_ext�s�������e�o�.F��L�L�M�M�
�	�	�	�����e�o�.B�C�H�H�I�I�
�	�	�	�����e�o�.B�C�H�H�I�I�
�	�	�	�����e�o�.F��L�L�M�M�
�	�	�	�	
����e�o�.B�D�I�I�J�J�
�	�	�	�����e�o�.F�
������	�	�	�����e�o�.B�D�I�I�J�J�
�	�	�	�����e�o�.F�
������	�	�	�	
����e�o�.C�T�J�J�K�K��	�	�	�����e�o�.G�������	�	�	�����e�o�.C�T�J�J�K�K��	�	�	�����e�o�.G�������	�	�	�	
����e�o�.B�D�I�I�J�J��	�	�	�����e�o�.F�������	�	�	�����e�o�.B�D�I�I�J�J��	�	�	�����e�o�.F�������	�	�	�	
����e�o�.e�
������	�	�	�����e�o�.e�
������	�	�	�����e�o�.f�
������	�	�	�����e�o�.f�
������	�	�	�����e�o�.e�
������	�	�	�����e�o�.e�
������	�	�	�����e�o�.f�
������	�	�	�����e�o�.f�
������	�	�	�	
����e�o�.e�������	�	�	�����e�o�.e�������	�	�	�����e�o�.f�������	�	�	�����e�o�.f�������	�	�	�����e�o�.e�������	�	�	�����e�o�.e�������	�	�	�����e�o�.f�������	�	�	�����e�o�.f�������	�	�	�	
����e�o�.I�-�/�/�0�0�15�	7�	7�	7�����e�o�.I�-�/�/�0�0�15�	7�	7�	7�����e�o�.J�-�/�/�0�0�15�	7�	7�	7�����e�o�.J�-�/�/�0�0�15�	7�	7�	7�����e�o�.I�-�/�/�0�0�16�	8�	8�	8�����e�o�.I�-�/�/�0�0�16�	8�	8�	8�����e�o�.J�-�/�/�0�0�16�	8�	8�	8�����e�o�.J�-�/�/�0�0�16�	8�	8�	8�	8�	8rc�j�|�tjdd���d��d��|�tjdd���d��d��|�tjdd���d��d��|�tjddd��d��|�tjddd��d��|�tjddd��d��dS)Nz	(?P<x>.)+r�z{0} {0[0]} {0[-1]}zabc abc abcz0{1} {1[0]} {1[1]} {1[2]} {1[-1]} {1[-2]} {1[-3]}z
c a b c c b az0{x} {x[0]} {x[1]} {x[2]} {x[-1]} {x[-2]} {x[-3]})r)r-rBr_r]rCs r�test_subscripted_capturesz$RegexTests.test_subscripted_capturesDsZ�������\�
�����-�.�.�
�	?�	?�	?������\�
�����K�L�L�
�	�	�	�	
�����\�
�����K�L�L�
�	�	�	�	
�����L�2G�
����	!�	!�	!������L�
<�e�E�E�
�	�	�	�	
�����L�
<�e�E�E�
�	�	�	�	�	rc��tjdkr�|�tjdd��gd���|�tjddd��d��|�tjdd��gd���|�d�tjdd��D��gd	���|�d
�tjdd��D��gd
���dSdS)Nr�z\b|:+za::bc)r�r\r�r�rr�r�z-a---bc-)r�r�r�r�r�c�6�g|]}|�����SrSr�r�s  rr�z2RegexTests.test_more_zerowidth.<locals>.<listcomp>^s,�����1�a�f�f�h�h���r)r6r�r9r��r�r�c�6�g|]}|�����SrSr�r�s  rr�z2RegexTests.test_more_zerowidth.<locals>.<listcomp>`s,�����1�a�f�f�h�h���rz
(?m)^\s*?$z	foo


bar)r)r�r�r,)r�r�r)r-r�rjr/r�rCs r�test_more_zerowidthzRegexTests.test_more_zerowidthWsP����y�(�(����U�[��7�;�;�>�>�>�
�
�
����U�Y�x��g�>�>�
�K�K�K����U�]�8�W�=�=�@�@�@�
�
�
��������x��1�1����A�A�A�
C�
C�
C��������}��1�1���� 8� 8� 8�
:�
:�
:�
:�
:�)�(rr)�rrrr�rr�r�r�r�r�r�r�r�r�r�r5r6r7r8r9r:r�r�r�r�r�r��DUPLICATE_GROUPr�rr*r2rDrJrlrorrr�r�r�r�r�r�r�r�r�r�r�rrrrr"r*r-r0rCrKrOrUr[r`rurwr{r}r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rr	rrr;rBrJrNrortrxr�r�r�r�r�r�r�r�r�r�r�r�rrrr%r�r�r�r�r�r�rrDrPrYr`rdrlr{rr'r)r.rSrrrrs>������.�M�U��1���J�2�N�-���J�%�O�#�M�1�J�'��*�G�K��K��>��C��G��M�K�"�N�-�N�*�N�+��'�O�0�J�'�O�=�M�0�O�
 �
 �
 �
 ����
9�
9�
9�"�"�"�B�B�B�>���
	�	�	�
3�
3�
3����
7�7�7�rC�C�C����?�?�?�)�)�)�2�2�2�.H�H�H�1�1�1�f���E�E�E�2���N�N�N�6.�.�.�."�"�"� O�O�O�'�'�'�
#B�#B�#B�J/�/�/�<'�'�'�B
1�
1�
1����
J�J�J�F�F�F�4VN�VN�VN�p<�<�<�E�E�E�>�>�>�8�8�8�
8�
8�
8�
�
�
�"�"�"�
$�$�$� 
&�
&�
&�I�I�I�
A�A�A�#�#�#�
�
�
�6�6�6�K�K�K�D�D�D� ������$���1�1�1�G�G�G�������
1�1�1�;�;�;�D�D�D�=�=�=�8
9�
9�
9� %� %� %�D%�%�%�6	`�	`�	`� � � �v2�v2�v2�pB�B�B�M�M�M�`E�`E�`E�D?�?�?�J�J�J�48-�8-�8-�t)�)�)�"L�L�L�.�.�.�`L�L�L�*���"J�J�J�0���

/�
/�
/�1�1�1�0(I�(I�(I�T4=�4=�4=�lKL�KL�KL�Zf7�f7�f7�PL�L�L�P�P�P�H�H�H�(,�,�,�('�'�'�44�4�4�l���BEJ�EJ�EJ�N))�))�))�VF�F�F����,J�J�J�X3O�3O�3O�jQX�QX�QX�f&V8�V8�V8�p���&
:�
:�
:�
:�
:rrc�0�tjd���dS)Nr�)�	verbosity)�unittest�mainrSrr�	test_mainr4cs���M�A������r�__main__)�weakrefrrSrr-r@r�r2rGrr�r�TestCaserr4rrSrr�<module>r8s������������
�
�
�
�����
�
�
�
�
�
�
�
�����7�7�7�7�7�#�7�7�7�9�9�9�9�9�E�9�9�9�OE:�OE:�OE:�OE:�OE:��"�OE:�OE:�OE:�bJ����z���
�I�K�K�K�K�K��r

Youez - 2016 - github.com/yon3zu
LinuXploit