in reply to Simple re question
The variables $' and $` are not scoped to the if containing the regex as its condition. So, the values remain intact and unchanged after you drop out of the block controlled by the if.
However, if the match failed, and the block controlled by the if was not run, the code following the if is run and what is the value of $' now? It's gibberish! So it makes no sence to refer to it outside of an if statement that tests on a successful match, since if the value is defined the branch will be taken and you might as well put the use of it inside the braces. If you use it after the if block, you don't know whether it's defined or not—that's the point of the if statement, to test whether the match succeeded.
—John
|
|---|