docs: def finditer_noregex(string, sub, whole_word):
      """
      Search occurrences using str.find instead of regular expressions.
  
      :param string: string to parse
      :param sub: search string
      :param whole_word: True to select whole words only
      """
      start = 0
      while True:
          start = string.find(sub, start)
          if start == -1:
              return
          if whole_word:
              if start:
                  pchar = string[start - 1]
              else:
                  pchar = ' '
              try:
                  nchar = string[start + len(sub)]
              except IndexError:
                  nchar = ' '
              if nchar in DocumentWordsProvider.separators and \
                      pchar in DocumentWordsProvider.separators:
                  yield start
              start += len(sub)
          else:
              yield start
              start += 1