It attemps to match and backtracks when it can't find a match. Here's a sample of the matches (one per line) the regexp engine attempts.
1) a*>"a"x61, a*>"", a*>"", a*>"", ... a*>"", [b]>fail
2) a*>"a"x60, a*>"a", a*>"", a*>"", ... a*>"", [b]>fail
3) a*>"a"x60, a*>"", a*>"a", a*>"", ... a*>"", [b]>fail
4) a*>"a"x60, a*>"", a*>"", a*>"a", ... a*>"", [b]>fail
.
.
.
32) a*>"a"x60, a*>"", a*>"", a*>"", ... a*>"a", [b]>fail
33) a*>"a"x60, a*>"", a*>"", a*>"", ... a*>"", [b]>fail
34) a*>"a"x59, a*>"aa", a*>"", a*>"", ... a*>"", [b]>fail
35) a*>"a"x59, a*>"a", a*>"a", a*>"", ... a*>"", [b]>fail
36) a*>"a"x59, a*>"a", a*>"", a*>"a", ... a*>"", [b]>fail
.
.
.
64) a*>"a"x59, a*>"a", a*>"", a*>"", ... a*>"a", [b]>fail
65) a*>"a"x59, a*>"a", a*>"", a*>"", ... a*>"", [b]>fail
66) a*>"a"x59, a*>"", a*>"aa", a*>"", ... a*>"", [b]>fail
67) a*>"a"x59, a*>"", a*>"a", a*>"a", ... a*>"", [b]>fail
.
.
.
95) a*>"a"x59, a*>"", a*>"a", a*>"", ... a*>"a", [b]>fail
.
.
.
The character class [b] is necessary because a plain b would trigger optimizations in the regexp engine. The optimization would cause it to scan for the location of b chars in the string to match. Finding none, it would exit immediately.
