@@ -619,6 +619,7 @@ def test_re_fullmatch(self):
619
619
self .assertEqual (re .fullmatch (r"a.*?b" , "axxb" ).span (), (0 , 4 ))
620
620
self .assertIsNone (re .fullmatch (r"a+" , "ab" ))
621
621
self .assertIsNone (re .fullmatch (r"abc$" , "abc\n " ))
622
+ self .assertIsNone (re .fullmatch (r"abc\z" , "abc\n " ))
622
623
self .assertIsNone (re .fullmatch (r"abc\Z" , "abc\n " ))
623
624
self .assertIsNone (re .fullmatch (r"(?m)abc$" , "abc\n " ))
624
625
self .assertEqual (re .fullmatch (r"ab(?=c)cd" , "abcd" ).span (), (0 , 4 ))
@@ -802,6 +803,8 @@ def test_special_escapes(self):
802
803
self .assertEqual (re .search (r"\B(b.)\B" ,
803
804
"abc bcd bc abxd" , re .ASCII ).group (1 ), "bx" )
804
805
self .assertEqual (re .search (r"^abc$" , "\n abc\n " , re .M ).group (0 ), "abc" )
806
+ self .assertEqual (re .search (r"^\Aabc\z$" , "abc" , re .M ).group (0 ), "abc" )
807
+ self .assertIsNone (re .search (r"^\Aabc\z$" , "\n abc\n " , re .M ))
805
808
self .assertEqual (re .search (r"^\Aabc\Z$" , "abc" , re .M ).group (0 ), "abc" )
806
809
self .assertIsNone (re .search (r"^\Aabc\Z$" , "\n abc\n " , re .M ))
807
810
self .assertEqual (re .search (br"\b(b.)\b" ,
@@ -813,6 +816,8 @@ def test_special_escapes(self):
813
816
self .assertEqual (re .search (br"\B(b.)\B" ,
814
817
b"abc bcd bc abxd" , re .LOCALE ).group (1 ), b"bx" )
815
818
self .assertEqual (re .search (br"^abc$" , b"\n abc\n " , re .M ).group (0 ), b"abc" )
819
+ self .assertEqual (re .search (br"^\Aabc\z$" , b"abc" , re .M ).group (0 ), b"abc" )
820
+ self .assertIsNone (re .search (br"^\Aabc\z$" , b"\n abc\n " , re .M ))
816
821
self .assertEqual (re .search (br"^\Aabc\Z$" , b"abc" , re .M ).group (0 ), b"abc" )
817
822
self .assertIsNone (re .search (br"^\Aabc\Z$" , b"\n abc\n " , re .M ))
818
823
self .assertEqual (re .search (r"\d\D\w\W\s\S" ,
@@ -836,7 +841,7 @@ def test_other_escapes(self):
836
841
self .assertEqual (re .match (r"[\^a]+" , 'a^' ).group (), 'a^' )
837
842
self .assertIsNone (re .match (r"[\^a]+" , 'b' ))
838
843
re .purge () # for warnings
839
- for c in 'ceghijklmopqyzCEFGHIJKLMNOPQRTVXY ' :
844
+ for c in 'ceghijklmopqyCEFGHIJKLMNOPQRTVXY ' :
840
845
with self .subTest (c ):
841
846
self .assertRaises (re .PatternError , re .compile , '\\ %c' % c )
842
847
for c in 'ceghijklmopqyzABCEFGHIJKLMNOPQRTVXYZ' :
@@ -2608,8 +2613,8 @@ def test_findall_atomic_grouping(self):
2608
2613
self .assertEqual (re .findall (r'(?>(?:ab){1,3})' , 'ababc' ), ['abab' ])
2609
2614
2610
2615
def test_bug_gh91616 (self ):
2611
- self .assertTrue (re .fullmatch (r'(?s:(?>.*?\.).*)\Z ' , "a.txt" )) # reproducer
2612
- self .assertTrue (re .fullmatch (r'(?s:(?=(?P<g0>.*?\.))(?P=g0).*)\Z ' , "a.txt" ))
2616
+ self .assertTrue (re .fullmatch (r'(?s:(?>.*?\.).*)\z ' , "a.txt" )) # reproducer
2617
+ self .assertTrue (re .fullmatch (r'(?s:(?=(?P<g0>.*?\.))(?P=g0).*)\z ' , "a.txt" ))
2613
2618
2614
2619
def test_bug_gh100061 (self ):
2615
2620
# gh-100061
0 commit comments