If you want to broaden your view quite a bit, and have the time,
you can learn strange (but useful) things that
many current languages skimp on from some of these...
Lisp You can learn this over time. Just grab
a copy of emacs and hack your own commands
as you need them. Plenty of code comes with
it.
Snobol/ The Perl of the 60s, as far as pattern
Spitbol matching goes. My grad advisor, Ralph
Griswold came up with this. I seem to
remember Spitbol had a construct of
"compiling" code at runtime similar to
Perl's "eval".
Icon Another Griswold invention of the late 70s
early 80s. Check out generators (similar
to closures). It had backtracking, but
not just when matching patterns.