s/^\s+//; s{ [^\S\n]* (?: (\n)\s* | [^\S\n]+ ) }{ $1 || ' ' }gex #### s{(?<=(\S))?\s+(?=(\S))?}{length($1.$2)?'':' '}gx #### s{(?<=(\S))?\s+(?=(\S?))}{length(($1//'').$2)?'':' '}gx #### s{(^)?\s+(\z)?}{$1//$2//' '}gx