Simplificando la expresión regular “ab | a | b”

(Cómo) podría simplificarse la siguiente expresión regular:

ab|a|b

?

Estoy buscando una menos redundante, es decir, con una solaa y unob. ¿Es posible?

Algunos intentos:

a?b?       # matches empty string while shouldn't
ab?|b      # still two b

Tenga en cuenta que el regex real tiene más complicadoa yb partes, es decir, no un solo char, sino subregexes internos, digamos.

Respuestas a la pregunta(1)

Su respuesta a la pregunta