in reply to A Regex simple Question

I don't like negative lookahead much either! My non-lookahead version:
/^a([^a]|a[^b])*a?b$/
Works as well I think.