Верное решение привел выше susl. Вот немного улучшенный вариант его решения: ^(?:.[^a])*.?$
Хотя этот вариант менее универсальный, так как меньше диалектов регекспов поддерживают такие конструкции, но будет работать быстрее, и будет использовать меньше памяти.