@@ -193,4 +193,57 @@ public void testEquals() {
193193 Truth .assertThat (pattern1 .hashCode ()).isEqualTo (pattern2 .hashCode ());
194194 Truth .assertThat (pattern1 ).isNotEqualTo (pattern4 );
195195 }
196+
197+ @ Test
198+ public void testUnicodeWordBoundary () {
199+ final String pattern = "l\\ p{L}*\\ b" ;
200+ final String text = "l\u00E0 " ;
201+ {
202+ final java .util .regex .Matcher matcher =
203+ java .util .regex .Pattern .compile (pattern ).matcher (text );
204+ assertEquals (true , matcher .find ());
205+ assertEquals ("l\u00E0 " , text .substring (matcher .start (), matcher .end ()));
206+ }
207+ {
208+ final com .google .re2j .Matcher matcher =
209+ com .google .re2j .Pattern .compile (pattern ).matcher (text );
210+ assertEquals (true , matcher .find ());
211+ assertEquals ("l\u00E0 " , text .substring (matcher .start (), matcher .end ()));
212+ }
213+ }
214+
215+ @ Test
216+ public void testUnicodeWordBoundary2 () {
217+ final String pattern = "d\u00E9 \\ p{L}*\\ b" ;
218+ {
219+ final String text = "d\u00E9 s" ;
220+ {
221+ final java .util .regex .Matcher matcher =
222+ java .util .regex .Pattern .compile (pattern ).matcher (text );
223+ assertEquals (true , matcher .find ());
224+ assertEquals ("d\u00E9 s" , text .substring (matcher .start (), matcher .end ()));
225+ }
226+ {
227+ final com .google .re2j .Matcher matcher =
228+ com .google .re2j .Pattern .compile (pattern ).matcher (text );
229+ assertEquals (true , matcher .find ());
230+ assertEquals ("d\u00E9 s" , text .substring (matcher .start (), matcher .end ()));
231+ }
232+ }
233+ {
234+ final String text = "d\u00E9 " ;
235+ {
236+ final java .util .regex .Matcher matcher =
237+ java .util .regex .Pattern .compile (pattern ).matcher (text );
238+ assertEquals (true , matcher .find ());
239+ assertEquals ("d\u00E9 " , text .substring (matcher .start (), matcher .end ()));
240+ }
241+ {
242+ final com .google .re2j .Matcher matcher =
243+ com .google .re2j .Pattern .compile (pattern ).matcher (text );
244+ assertEquals (true , matcher .find ());
245+ assertEquals ("d\u00E9 " , text .substring (matcher .start (), matcher .end ()));
246+ }
247+ }
248+ }
196249}
0 commit comments