protected final int getNextMatchPosImpl(String searchFor,
                                            String searchIn, boolean goForward,
                                            boolean matchCase, boolean wholeWord) {
        if (wholeWord) {
            int len = searchFor.length();
            int temp = goForward ? 0 : searchIn.length();
            int tempChange = goForward ? 1 : -1;
            while (true) {
                if (goForward)
                    temp = searchIn.indexOf(searchFor, temp);
                else
                    temp = searchIn.lastIndexOf(searchFor, temp);
                if (temp != -1) {
                    if (isWholeWord(searchIn, temp, len)) {
                        return temp;
                    } else {
                        temp += tempChange;
                        continue;
                    }
                }
                return temp; // Always -1.
            }
        } else {
            return goForward ? searchIn.indexOf(searchFor) :
                    searchIn.lastIndexOf(searchFor);
        }
    }