Well, your way of taking it aparts breaks much too easy, e.g. on
m#bla#
/bla\//
/bla/g # as you already mentioned
...
But why shouldn't you use eval (what you call 'requoting', a rather strange expression imho), that's what it is made for. Don't reinvent the wheel.
In the end, you are trying to parse Perl and as the saying goes only perl can parse Perl (or was it PERL can parse perl? :).
Being extremley cautious about the content of anything you eval, however, is a totally different issue ...
-- Hofmator