while (m/\G(<[^>]*>|#[^#]*#|[^#<]+)/gc) { push @pieces, $1; }