in reply to Match typo

Unfortunately, this is a difficult problem... because what you want is fuzzy matching, and regex engines don't make it easy to do fuzzy matching.

You could try a different approach, for example, split the string into appropriate segments and then calculate some similarity measure to the target words, and accept/reject based on some threshold. There are some modules out there that might assist you with that, e.g. String::Similarity or Text::Levenshtein.