use strict;
my $str = '[quote author=username link=1150111054/0#7 date=1150151926][/quote]
[quote] username link=1142890417/0#43 date=1156429613]This is a very simple test sentence.[/quote]
[quote=user name pid=123456]
Test.[/quote]
[quote] user name link=1142890417/0#43 date=1156429613][quote] username link=1142890417/0#43 date=1156429613]This is a very simple test sentence.[/quote]
This is a very simple test sentence.[/quote]
';
my $regex = qr/\[(quote)\]?\s*(?:author)?=?(\S+)*/mp;
my $subst = '[$1=$2]';
my $result = $str =~ s/$regex/$subst/rg;
print "The result of the substitution is' $result\n";
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Perl, please visit: http://perldoc.perl.org/perlre.html