Здравствуйте, jhfrek, Вы писали:
J>А так не пойдет?
J>J>Initialize(СписокСтрок);
J>while (!конецшаблона()) do begin
J> Лексема := ПолучитьЛексему(Шаблон);
J> case лексема of
J> ТипЛексема1: ДобавитьЦифрыДляТипЛексема1(СписокСтрок);
J> ...
J> end
J>end
J>
в принципе подходит, но реализация функций ПолучитьЛексему(Шаблон)
и ДобавитьЦифрыДляТипЛексемаNNN(СписокСтрок) становится нетривиальной задачей

Может все же подскажете путь с использованием регулярных выражений?
Если эти выражения в общем используются для разделения и поиска строк,
так почему их не использовать для их формирования?