I’d say:
1) Use with fixed length string *only*, as they never move in memory.
2) QB64 strings aren’t null terminated by default, so either add a CHR$(0) to your strings, or manually error check:
Startpos = _OFFSET(fixedlengthstring$)
Findpos = strpbrk(fixedlengthstring$, “foo”)
If Findpos - Startpos > LEN(fixedlengthstring$) THEN Findpos = 0 ‘null terminator outside string memory area
Note: I can’t swear the above still wouldn’t give error messages if the function failed to find a CHR$(0) before hitting restricted memory. I don’t think ‘d personally consider it safe to use, except when I knew I was working with null-terminated strings.