in reply to Regular expression double grouping negation headache

Just an afterthought: Getopt::Declare could be used for command-line argument processing.
#!/usr/bin/perl -w use strict; use Getopt::Declare; my $args = new Getopt::Declare <<'EOSPEC' or die; [strict] FOO <value> first parameter TEST <number> second parameter EVERYTHING <boolean> third parameter EOSPEC for (qw(FOO TEST EVERYTHING)) { print "$_ ... ".$args->{$_}."\n" if defined($args->{$_}); }

---
"A Jedi uses the Force for knowledge and defense, never for attack."