This is an abuse of the the ephemeral scope. The ephemeral scope is just supposed to be used for the numeric variables populated by regexes.

I was wondering how you were planning on handling scope inside the block for this. I think we need to come up with a better way. I think that with this implementation we have at least 2 problems:

1. ephemeral scope is being manhandled for this case
2. regular variables set inside the block (if that is possible, and if it isn't then it probably should be) will be set on the outer scope

The second one would also create a problem in which a `foreach` that includes a variable assignment will error on the second call to the lambda because the variable has already been set in the scope.