fix a very very old bug in Redex uncovered by the new enumerator

The new test case in this commit shows the bad behavior;
the fix was to replace the regexp #rx".*[^0-9]([0-9]+)$"
with #rx"([0-9]+)$", ie make the regexp work properly in
the empty case (since regexps promise to find longest matches
anyway).

Also, Rackety
Add in let-poly bugs

also, misc clean ups of let-poly