while ($source =~ m/(name.*?)(?=name)/sg) { if ($& =~ m/(.*user: 2)/s) { print "$1\n"; } }