I would expect the behavior to be different on negative indexes:

```js
expect( insert('bcd', -1, 'a') ).toBe('bcad')
```

similar to [String#slice](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/slice) - which I use way more often nowadays than the `substr` or `substring` [since the behavior is consistent across browsers and more useful](http://www.jacklmoore.com/notes/substring-substr-slice-javascript/).