!/usr/bin/perl
use warnings;
use strict;
$_ = "a { b } c ( d ) e";
my $nobrackets = qr/([^{}]+)/;
s/\{$nobrackets\}/leftbracket $1 rightbracket/g;
print "$_\n";
####
a leftbracket b rightbracket c ( d ) e
####
use warnings;
use strict;
my @c = ("a { b } c ( d ) e", "a { b } c ( d ) e {{F}} ((G))");
print replace($_), "\n" for @c;
sub replace {
my $d = shift;
my $nobrackets = qr/([^{}]+)/;
$d =~ s/\{$nobrackets\}/leftbracket $1 rightbracket/g;
return $d;
}
####
a leftbracket b rightbracket c ( d ) e
a leftbracket b rightbracket c ( d ) e {leftbracket F rightbracket} ((G))