sub! can return nil

Revert "drop one more string allocation"

This reverts commit 4d15661d6c46c86a62ee1fc358f4b3ef9dd9f2ea.