m{ \|\\ # the delimiter ([^@]*) # everything but a @ @ .*? # garbage inbetween \(ACK\) (.*) # the rest }x; print "<$1>, <$2>\n";