re.sub is faster; newlines don't add to width