code: @Override
      protected int handlePrevious(int position) {
          if (pattern_.CELength_ == 0) {
              search_.matchedIndex_ =
                      search_.matchedIndex_ == DONE ? getIndex() : search_.matchedIndex_;
              if (search_.matchedIndex_ == search_.beginIndex()) {
                  setMatchNotFound();
              } else {
                  search_.matchedIndex_--;
                  textIter_.setOffset(search_.matchedIndex_);
                  search_.setMatchedLength(0);
              }
          } else {
              textIter_.setOffset(position);
  
              if (search_.isCanonicalMatch_) {
                  // *could* use exact match here since extra accents *not* allowed!
                  handlePreviousCanonical();
              } else {
                  handlePreviousExact();
              }
          }
  
          return search_.matchedIndex_;
      }
docs: {@inheritDoc}