>perl -wMstrict -le "my $s = 'Foo|1ate|||2ate||||Pre|3ate|Post|||||4ate|Alive'; my $Fate = qr{ \d ate }xms; my $n = shift; my $x = 2 * $n; $s = join '', grep defined, (split /($Fate)/, $s, $n + 1)[0 .. $x - 2, $x] ; print qq{'$s'}; " 3 'Foo|1ate|||2ate||||Pre||Post|||||4ate|Alive'