Many regular expression implementations don't deal properly with unicode character classes and collation. So adding something like unicode identifiers to go may be impossible or impractical with regexs whereas with a loop you can rely on more standard collation support.
In my experience, the opposite is true (up to the point when your grammar becomes non-regular).