Perl vast natuurlijk heel grapppig, reguliere expressies zijn heel handig en pattern matching kent fantastische toepassingen, maar imho moet je zo geen C code gaan parsen...
Programmeertalen als C worden beschreven met behulp van een
context-vrije grammatica, wat een uitgebreider concept is dan pure reguliere expressies. Vanuit een context-vrije grammatica voor C kan je met behulp van een
parser-generator een parser genereren voor C. Deze parser kan je gebruiken om C code te parsen en het resultaat van dit parsen (de
parse-tree) te vertalen in een
abstract syntax tree. Deze abstract syntax tree komt overeen met productie-regels ui de context vrije grammatica voor de taal C.
Je kan je herschrijvingen daarna implementeren door deze boom te transformeren. Het resultaat van de transformatie kan je
pretty-printen naar de syntax voor C en je bent klaar

.
Gelukkig bestaat C al erg lang en daarom zijn er al vele grammatica's, pretty-printers en andere meta-tools. Als je wat voelt voor een wat professionelere, meer zekere, aanpak kan ik bepaalde onderdelen nog wel wat verder uitleggen als het echt hokus-pocus voor je is. Ook kan ik eventueel nog wel wat tools aanbevelen.
Het kan sowieso geen kwaad om eens iets lezen over context-vrije grammatica's, parsers en code-generators. Reguliere expressies (voor zover je het systeem van Perl nog reguliere expressies mag noemen) zijn heel leuk, maar niet bedoeld voor het interpreteren van teksten in een taal als C, Java, PHP en dergelijke. Daarvoor heb je gewoon goede tools nodig

.