docs: def request_search(self, txt=None):
          """
          Requests a search operation.
  
          :param txt: The text to replace. If None, the content of lineEditSearch
                      is used instead.
          """
          if self.checkBoxRegex.isChecked():
              try:
                  re.compile(self.lineEditSearch.text(), re.DOTALL)
              except sre_constants.error as e:
                  self._show_error(e)
                  return
              else:
                  self._show_error(None)
  
          if txt is None or isinstance(txt, int):
              txt = self.lineEditSearch.text()
          if txt:
              self.job_runner.request_job(
                  self._exec_search, txt, self._search_flags())
          else:
              self.job_runner.cancel_requests()
              self._clear_occurrences()
              self._on_search_finished()