my $name = qr/(\w[\w-]*\w?)/; # any valid hostname segment my $nnam = qr/(($name\.)*$name)/; # one or more "name" segments my @domainnames = ( { re => qr/$nname\.com/, desc => 'a commercial domain' }, { re => qr/$nname\.edu/, desc => 'an educational institution' }, );