Definitivamente debe hacer uso de técnicas de parsing. Además se debe definir una estructura de datos \"ExpresionRegular\" para representar a las expresiones regulares. Las expresiones regulares tienen una estructura \"recursiva\" asi que talvez se pueda emplear algoritmos recursivos para manipular dicha estructura de datos. A primera vista no parece ser muy dificil hacerlo de esa manera pero bueno espero haber ayudado en algo. Saludos.