public boolean isFound() {
        if (length != toLocate.length) {
            return false;
        }
        int cursor = tailPointer;
        for (int i = toLocate.length - 1; i >= 0; i--) {
            if (toLocate[i] != buffer[cursor]) {
                return false;
            }
            cursor = decrement(cursor, 1);
        }
        if (mustNotFollow != null
                && followLength == mustNotFollow.length) {
            for (int i = mustNotFollow.length - 1; i >= 0; i--) {
                if (mustNotFollow[i] != buffer[cursor]) {
                    return true;
                }
                cursor = decrement(cursor, 1);
            }
            return false;
        }
        return true;
    }