It looks like you're new here. If you want to get involved, click one of these buttons!
orxU32 size = 3, pos = 3;
orxSTRING testing = "CATDOGFISH";
orxString_NPrint(buffer, size + 1, "%s", testing + pos);
Basically it'll allocate a new buffer (you'll be responsible for deleting it) and copy the substring into it, with a 0 terminal character.
One of the very very old items on my todo list is to add support for dual marker strings, ie. string that are not defined by address + 0-termination but by two addresses: start and stop.
That has many advantages like cheap length computation, in-place substrings, etc... One day, maybe!
I solved it by converting to a std::string and doing a substr then converting back to orxSTRING.