if ($text =~ /\bstart\b(.*?)\bend\b/) { $result = $1; # do something with results } #### sub between { my $text = shift; if ($text =~ /start(.*?)end/) { $result = $1; between($result); } else { return $text; } }