public StringDataInstance getByteOffcut(int byteOffset) {
		if (isBadCharSize() || isProbe() || !isValidOffcutOffset(byteOffset)) {
			return NULL_INSTANCE;
		}
		if (byteOffset == 0) {
			return this;
		}
		int newLength = Math.max(0, length - byteOffset);
		StringDataInstance sub = new StringDataInstance(this, getOffcutLayout(),
			new WrappedMemBuffer(buf, byteOffset), newLength, charsetName);

		return sub;
	}
Returns a new {@link StringDataInstance} that points to the string characters that start at
{@code byteOffset} from the start of this instance.
<p>
If the requested offset is not valid, StringDataInstance.NULL_INSTANCE is returned.

@param byteOffset number of bytes from start of data instance to start new instance.
@return new StringDataInstance, or <code>StringDataInstance.NULL_INSTANCE</code> if 
offset not valid.
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/StringDataInstance.java