The debugger on this site seems to mask the return details. RegexBuddy does a better job. Here is what it shows for ^\w+:

After \w+ consumes all the letters, it tries to match : and fails. Then it returns one character, tries again : and works again. And so on, until there is nothing left to give. Only fifteen. Now consider the atomic version ( ^(?>\w+): :

After an unsuccessful match with : for the first time, it returns all the letters at once, as if they were a single character. Only five steps, and two of them enter and leave the group. And using possessive quantifiers ( ^\w++: eliminates even those:

As for your second question, yes, a measure of the number of steps from regular expression debuggers is useful, especially if you're just learning regular expressions. Each regex has at least a few optimizations that even poorly written regexes can perform adequately, but a debugger (especially taste-neutral like RegexBuddy's) makes it obvious when you do something wrong.
Alan moore
source share