use CGI qw(param); $command = param("command"); $command =~ m/(!\w+\s?.+?)(?=!\w)/simg; if ($command eq "") { print "Add a command, man!\n"; } if $command ne "") { if $command =~ /^\!Book/) { print "Found a Book\n\n"; } elsif ($command =~ /^\!Number/) { print "Time to log a phone number\n\n"; } print "Command has the following in it : $command and was started at \n"; printf "Time %s\n", scalar(localtime); print "Command 1 is $1\n"; print "And Command 2 is $2\n\n"; print "Command 3 is $3\n\n"; print "\n"; } # (!\w+\s?)(.+?(?=!\w)) is the original regex I was using