Could you please reverse the order of the two tests:
`0 <= start && start <= original.length`
which is easier to read, IMO, and is what I see in most codes.