my $message = '[b] stuff [i] stuff [/i] [/b]'; $message =~ s{\[(.?)?([\w]+)\]}{<$1$2>}xgo; print $message;