#! /usr/bin/perl use strict; use warnings; my $str = "aaaaa\nbbbbb\nccccc\naaaaa\nddddd\neeeee\n" ; my @a = $str =~ /(aaaaa.*?)(?=aaaaa|$)/gs ; print join "\n", @a;