Following regexes will overwrite previously set $1 and friends. Probably your best best would be to tell users that matches aren't stored in $1, $2 etcetera but in an array named @match. Then, after each user defined regex set @match to the values. This will allow them to be persistent (to a degree, based on how many regexes are fed to your script). This can be a bit confusing if there are a lot of usedefined regexes, because your users might wants a greater degree of persistance that one regex. Of course, if that happens, then you probably need a different solution that command line args.
Cheers,
Erik
Light a man a fire, he's warm for a day. Catch a man on fire, and he's warm for the rest of his life. - Terry Pratchet