- -- start of a word).
- res, newstr = utf.match(str, "^([a-zA-Z][%a%d%+%-%,_]+)(.*)")
+ -- start of a word). A word must always end with a letter or a digit
+ res, newstr = utf.match(str, "^([a-zA-Z][%a%d%+%-%,_]*[%a%d]+)(.*)")
+ if not res then
+ -- The above does not catch single letter words
+ res, newstr = utf.match(str, "^([a-zA-Z])(.*)")
+ end