I'm not convinced that your regex's give a maintainance problem. My background is very much the Unix/Shell/Awk/C world (still love them all). IMHO the one thing they all have in commom is a basic philosophy of maximum power from mininum keystrokes. To my mind Perl belongs to this mindset. What you are doing is complicated. So what. If its well commented its supportable. Trying to avoid your REGEX's creates its own problems - much more code for a start. Anyway debugging REGEX's isn't usually too terrible as you can easily pull them out and run in a test harness. Apologies for the speeling. Friday afternoon just back from the Pub. Hic.
"We are all prompted by the same motives, all deceived by the same fallacies, all animated by hope, obstructed by danger, entangled by desire, and seduced by pleasure."
- Samuel Johnson