String Functions in Inform6

Does Inform6 have defined string functions like, mid, left, right etc?
(I haven’t seen any in the documentation, but I could be looking in the wrong place.)
If someone already has the code to do “mid” to determine the character number within a string (or return 0), it would save me having to write one.
I’ve got the Inform6 issue of passing, updating, and returning strings in hand, so that is not an issue. I only need help with the actual “mid” function.

Here is something I came across and wonder if it would work.
(Presuming one temporarily ‘mutates’ the string before and “unmutates” it after.)

Include (- [ StrChr str char i j k; ! StrChr: Matches the first occurance of a character in a string ! ex: if AStr contains the string "Hi, how are you" ! then StrChr(AStr,','); returns 3 ! therefore Astr->(3+2)==',' (there is an offset of 2 in string arrays) ! j=i+2; k=0; while (k==0 && j<=str-->0+2) { if (str->j==char) k=1; j++; } if (k==0) j=2+i; return j-2-i; ]; -).