ON :TEXT:@scriptreq :#:{Phil, you may need to leave a space between the command and the asterisk symbol, so mIRC will ensure that the $2 has been supplied. This way the script doesn't get triggered if someone enters @scriptreg without $2-3 being provided.
Another way is to make your $2 and $3 have double dollar signs: $$2- and $$3 This will make sure they're supplied too. With the double dollar sign method, you don't need to leave a space.
Keep up the good work, of course.