To avoid throwing stuff in $1 when you don't need to, there is a great feature called clustering in REs with the (?:stuff here) stuff :).
in reply to Re: Problems with regex grouping
in thread Problems with regex grouping
And that way nothing will be put in $1.
You may also want to consider chomping $2 and $3 because a newline could get in there somewhere and cause some trouble.
Hope I helped out. :):):) Later
print chr($_-39); # Easy but its ok.