Тот факт, что вам даже нужно задать этот вопрос, и что приведенные решения, скажем так, не совсем читабельны :-), должны быть хорошим показателем того, что RE не являются реальным ответом на этот вопрос.
Было бы гораздо лучше, с точки зрения читабельности, фактически кодировать это как относительно простой синтаксический анализатор.
Слишком часто люди пытаются использовать RE, чтобы быть «умными» (я не имею в виду это уничижительным образом), думая, что единственная строка элегантна, но все, что они в итоге приводят, - это непреодолимая масса символов. Я предпочел бы иметь полностью прокомментированное 20-строчное решение, которое я могу понять в одно мгновение.