use CGI::Pretty qw(ol li); my $string = "yadda\n[yadda\nyadda]yadda\n"; $string =~ s/\[\s*([^\]]+)\]/ol li[split "\n+",$1]/eg;