#!/usr/bin/perl # http://perlmonks.org/?node_id=1159215 use strict; use warnings; my $stayinsection = qr/(?:(?!\n\n).)*/s; $_ = do { local $/; }; print "<$1> <$2>\n" while /First Name:\s+([A-Za-z0-9 _ ( )]*)${stayinsection}Last Name:\s+([A-Za-z0-9 _ ( )]*)${stayinsection}Location: Central USA/g; __DATA__ First Name: John Last Name: Doe Occupation: Network Administrator Location: West Coast First Name: Jane Last Name: Doe Occupation: Human Resources Location: East Coast First Name: James Last Name: Doe Occupation: Technical Support Engineer Location: Central USA First Name: Jane Last Name: Doe Occupation: Human Resources Location: East Coast First Name: Another Last Name: Doe Occupation: Technical Support Engineer Location: Central USA