my $foo = "211.46.248.1 /the / directory / is / here/ l:user p:pass port:21"; my @bar = $foo =~ /^(\d+\.\d+\.\d+\.\d+) +(.+)(?= l:) +l:(\S+) p:(\S+) port:(\d+)/; print join ',', @bar; # prints 211.46.248.1,/the / directory / is / here/,user,pass,21