>perl -wMstrict -le
"my $s = ' ';
my $t;
($t = $s) =~ s@((?:<[^>]*>)+) +((?:<[^>]*>)+)@$1$2@g;
print qq{'$t'};
my $tag = qr{ < [^>]* > }xms;
my $blank = qr{ [ ] }xms;
($t = $s) =~ s{ ($tag) $blank+ ($tag) }{$1$2}xmsg;
print qq{'$t'};
($t = $s) =~ s{ ($tag) $blank* ($tag) }{$1$2}xmsg;
print qq{'$t'};
print qq{'$s'};
"
' '
' '
' '
' '