I have this pattern:
Use a lazy quantifier:
See the regex demo
\w+ contains a greedy quantifier that: 1) grabs as many chars as it can (and note it can match
i, all letters, digits and underscores) and then backtracks (yielding one char after another moving from right to left), trying to accommodate for the subsequent patterns. Since the
in is found first, it is matched, and the whole group is considered matched, the regex goes on to check the end of string with
$. A lazy quantifier will have the regex engine skip the
\w+? after matching 1 word char, and other patterns will be tried, moving from left to right.