Sorry, maybe it's nitpicking or not, but using /b assertion just won't work for the task as stated:
...article... plain-text ...each paragraph takes up one "line"
Punctuation may be torn from preceding words, including (always) at the end of paragraph.
C:\>perl -e "@a=(qq(This produced output where most lines, alas, were
+not wrapped.\n\n))x3; for (@a) { s/(.{0,37})\b/$1\n/g; print }"
This produced output where most lines
, alas, were not wrapped
.
This produced output where most lines
, alas, were not wrapped
.
This produced output where most lines
, alas, were not wrapped
.