@Override
    public boolean equals(Object o) {
        if ( ! (o instanceof Substring)) return false;
        var other = (Substring)o;
        if (this.start != other.start) return false;
        if (this.end != other.end) return false;
        if (! Objects.equals(this.string, other.string)) return false;
        return true;
    }
Returns the character n places (0 base) before the start of the value substring into the superstring.
For example charBefore(0) returns the first character before the start of the substring

@return the char n planes before the start of the substring
@throws IndexOutOfBoundsException if the string does not have a character at this position
container-search/src/main/java/com/yahoo/prelude/query/Substring.java