in reply to Regex Matching Oddity

the Anonymous Monk is right... only two sets of () means only $1 and $2 gets set, with $2 being overwritten with the latest value each match... I suppose you could do something like...
push @list, $a while($a = /(?:\Ars://([-\w]+)|\.([-\w]+))/g);
untested, but I think it would work... but your best bet is probably to regexp out the address then split it, as you said...

                - Ant