Владислав Софиенко: это не задача для одного регулярного выражения. Теоретически можно написать и на одном, но будет очень сложно понимать/менять и работать будет не быстрее чем сделать натнесколтких регулярках и точно медленнее чем сделать в ручную в один проход.
Вы описываете как раз тот случай про который говорят что если вы решили проблему при помощи рег выражения, то теперь у вас 2 проблемы.