my $re4 = qr/\b([Na0-9\.\-\+]+)\b/; # capture a floating point number my @vals = ($x =~ m/$re4/gx ); croak "Invalid line '$x'" if @vals != 4; ($d, $e, $f, $g) = @vals; #### my $float = qr/\b([Na0-9\.\-\+]+)\b/; croak "Invalid line '$x'" if $x !~ /((?:$float(\s+|$)){4}))/; print "Found numbers '$1'\n"; my @vals = $1 =~ /($float)/g;