According to http://code.google.com/p/re2/wiki/Syntax, they are not equivalent.
a? always prefers a to be present, but | prefers the first variant. So the equivalent
expression to ab? would be a(b|), and not a(|b).
http://play.golang.org/p/rYOj6jVlbi is correct (ab ab ab a).
It's fine to just leave this open. I'll fix the regexp match (if there is a
bug, but it sure sounded like it on the review) once bigger stuff is done.
It will be easy.