Find the last three words of each paragraph if they are shorter than 20 characters in total
37 bytes * 1403 steps = 51911 bytesteps
34 bytes * 1036 steps = 35224 bytesteps
37 bytes * 666 steps = 24642 bytesteps
(?&lt;!\S)(?!.{21})\S+(( | - )\S+){0,2}$

Verify it here!