Если мы имеем такую структуру данных и хотим на этапе ее чтения превратить в нечто другое (например в стандартизованный для DX или OpenGL формат, то нам всеравно на каком-то этапе придется сформировать некую структуру данных и туда все записать.
1 вариант — все данные поместить в хеш, а потом работать с ним
2 вариант — вызовы функций по "запихиванию" данных в какой-то контейнер вписать прямо в шаблон,
соответсвенно сохранив функцию рекурсивности.
Мне кажется что PERL подобные регулярные выражения потому и не поддерживают рекурсивность, что на этапе определения глубины обработки регулярным синтаксисом невсегдя можно описать что делать,
поэтому может необходимо добавить каких-то комманд управляющих именно рекурсивностью, кстати если каждая обрабатываемая группа в регулярном выражении сможет вызывать ПРОИЗВОЛЬНУЮ функцию, указанную в шаблоне, то в этой как раз функции и имеет смысл вставить обработку того что туда попало, возможно снова регулярным выражением, и так далее...
p.s.
В VC.NET есть поддержка регулярных выражений (RegExp), было бы интересно попробовать на базе этого создать расширенную библиотеку.
Честно говоря не очень себе представляю как алгоритмически это написать, если кому будет не лень, может подаст идею с чего начать.
Если есть примеры подобного, или идеи или советы, сообщите пожалуйста alex_4x@mail.ru