Note: if you actually use this routine, you might add some extensions: negative position and length could have special meaning:
substring("1234abc", 0, -1) --> "1234ab"
substring("1234abc", 1, -2) --> "234ab"
substring("1234abc", 2, -4) --> "34a"
substring("1234abc", -1, 1) --> "c"
substring("1234abc", -2, 2) --> "bc"
substring("1234abc", -3, 1) --> "a"
|