/
# Version 1: Match 1-80 characters, backtracking
# as necessary until whitespace or EOL is reached.
# If words > 80 characters (w/o whitespace) are
# found, no wrapping is performed on that word.
# [807 steps]
#(.{1,80})(?:\s|$)|(\S{81,})(?:\s|$)
# Version 2: Same as Version 1 but with a
# negative look-ahead at the front to skip to the
# alternate branch sooner.
# [197 steps]
#(?!\S{81})(.{1,80})(?:\s|$)|(\S{81,})(?:\s|$)
# Version 3: Same as Version 1 but alternations
# swapped.
# [185 steps]
#(\S{81,})(?:\s|$)|(.{1,80})(?:\s|$)
# Version 4: Combine alternations into one group.
# Change substitution from '\1\2\n' to '\1\n'.
# [169 steps]
(\S{80,}|.{1,80})(?:\s|$)
/
gmx