Performs one of several string operations, depending on option. The legal options (which may be abbreviated) are:
string first a 0a23456789abcdef 5will return 10, but
string first a 0123456789abcdef 11will return -1.
If charIndex is less than 0 or greater than or equal to the length of the string then an empty string is returned.
In the case of boolean, true and false, if the function will return 0, then the varname will always be set to 0, due to the varied nature of a valid boolean value.
string last a 0a23456789abcdef 15will return 10, but
string last a 0a23456789abcdef 9will return 1.
string map {abc 1 ab 2 a 3 1 0} 1abcaababcabababc
will return the string 01321221.