part of why regexes feel like dark magic to a lot of people is that they look like symbol vomit. you could probably make them a lot more usable if you made them more verbose... somehow made it easier to insert nonsignificant whitespace and comments...
ooh, maybe you could package it in a nifty little functional programming style syntax and extend its functionality a little bit...
wait, i just invented parser combinators again