use Data::Dump;
my $data = q|
foo
bar
{{
alpha
beta
}}
baz
|;
@splits = split /({{.*?}})/s, $data;
dd \@splits;
my $result="";
while (my $block = shift @splits) {
$block =~ s/\n/
\n/gs;
$result .= $block;
$result .= shift @splits if @splits;
}
print $result;
####
["\nfoo\nbar\n", "{{\nalpha\nbeta\n}}", "\nbaz\n"]
foo
bar
{{
alpha
beta
}}
baz