substr extracts a substring from a given string by offset and (maximum) length.
substr(string, offset, length)
> substr("hello world", 1, 4) ello
The offset and length are both counted in unicode characters rather than bytes:
> substr("🤔🤷", 0, 1) 🤔
The offset index may be negative, in which case it is relative to the end of the given string. The length may be -1, in which case the remainder of the string after the given offset will be returned.
> substr("hello world", -5, -1) world
If the length is greater than the length of the string, the substring will be the length of all remaining characters.
> substr("hello world", 6, 10) world