s{(?mx: # Explicitly set /mx for this scope. This puts the modifiers right up where they are being used instead of at the end of the regex. ^\[$ ((?s:.*?)) # Non-greedy match of multiple lines ^\]$ )}{ my $tmp = $1; $tmp =~ s{^([^\n]+)$}{
  • $1
  • }mg; # Added /m and fixed closing bracket. Preferred [^\n] to . for explictness. "" }eg;