You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
But, looking at the impl it was clearly wrong. It detected that we wanted case-insensitive match, but proceeded to build a state machine with the single case. The rust version called a separate case_fold method on the character class, which added the other cases. Ours didn't have that method, and also seemed not be correctly ranging over all runes when case-insensitive was requested.
I have a potential fix coming, once I remember how gerrit works.
The text was updated successfully, but these errors were encountered:
First reported to me by @aviadl, it appears that case-insensitive matching was not working.
We should be able to write regexes like
(?i)marty
and matchmarty
,MARTY
andmArTy
among others.When I first reviewed the code (and the rust version it was based on) it appeared that this was intended to work. See: https://github.com/couchbase/vellum/blob/master/regexp/compile.go#L71
But, looking at the impl it was clearly wrong. It detected that we wanted case-insensitive match, but proceeded to build a state machine with the single case. The rust version called a separate
case_fold
method on the character class, which added the other cases. Ours didn't have that method, and also seemed not be correctly ranging over all runes when case-insensitive was requested.I have a potential fix coming, once I remember how gerrit works.
The text was updated successfully, but these errors were encountered: