A seconda dell'algoritmo utilizzato per il matching le alternative potrebbero essere ordinate, in questo caso b matcha anche bah e quindi viene scelto perché lo precede. La soluzione è ordinare per lunghezza dei prefissi, quindi (a|bah|b) o ragruppare (a|b(ah)?)