Assuming you never have an empty <span></span> set, I believe the following should work, should it not?
s{((?:(?:<span>)?.(?:</span>)?){80})}{$1\n}g
bbfu
Black flowers blossum
Fearless on my breath
In reply to (counting chars but ignoring SPANs) Re4: highlight and line breaks
by bbfu
in thread highlight and line breaks
by glwtta
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |