I get this behavior in both Chrome (Developer Tools) and Firefox (Firebug). Note the regex test returns alternating true/false values:
> var re = /.*?\\bb
/g (global) regexps will do that, yes.
/g
See this question.
When you write a literal, you're getting a new regexp object every time, so losing the lastIndex state associated with the old object.
lastIndex