##
my $compd_pattern = qr($pattern);
##
##
my $pat = ...;
my $repl = ...;
my $mods = '';
$mods .= 'i' if ...;
$mods .= 's' if ...;
$mods .= 'm' if ...;
$mods .= 'x' if ...;
my $re = qr/(?$mods:$pat)/;
if (...) {
s/$re/$repl/g;
} else {
s/$re/$repl/;
}