Seems like a possible regex bug, which are always a little tricky to untangle. @zogstrip maybe you can have a look since you’ve worked in this area recently (though this seems to have existed for a while).
Here’s my understanding…
When we’re checking words, there are 3 segments that have to match: leading, the word, trailing. We’ve set leading and trailing to be non-letter characters… these could be punctuation, spaces, OR numbers. The numbers are what’s throwing off the match here. The intention is to be able to catch words even if there’s punctuation or whatever before/after the word.
So the regex sees 123Test, finds Test, looks before it and finds 3 and that matches as a “non-letter”, then looks after and finds the end of the word. So it matches on 3Test.
I think we need to check for non-letter AND non-number characters in the leading/trailing segments to avoid this? Not sure if there’s a reason we didn’t include numbers or if it’s just an oversight.