code: def replace_find_selection(self, focus_replace_text=False):
          
          if self.editor is not None:
              replace_text = to_text_string(self.replace_text.currentText())
              search_text = to_text_string(self.search_text.currentText())
              case = self.case_button.isChecked()
              words = self.words_button.isChecked()
              re_flags = re.MULTILINE if case else re.IGNORECASE|re.MULTILINE
  
              re_pattern = None
              if self.re_button.isChecked():
                  pattern = search_text
              else:
                  pattern = re.escape(search_text)
                  replace_text = re.escape(replace_text)
              if words:  # match whole words only
                  pattern = r'\b{pattern}\b'.format(pattern=pattern)
  
              # Check regexp before proceeding
              try:
                  re_pattern = re.compile(pattern, flags=re_flags)
                  # Check if replace_text can be substituted in re_pattern
                  # Fixes issue #7177
                  re_pattern.sub(replace_text, '')
              except re.error as e:
                  # Do nothing with an invalid regexp
                  return
  
              selected_text = to_text_string(self.editor.get_selected_text())
              replacement = re_pattern.sub(replace_text, selected_text)
              if replacement != selected_text:
                  cursor = self.editor.textCursor()
                  cursor.beginEditBlock()
                  cursor.removeSelectedText()
                  if not self.re_button.isChecked():
                      replacement = re.sub(r'\\(?![nrtf])(.)', r'\1', replacement)
                  cursor.insertText(replacement)
                  cursor.endEditBlock()
              if focus_replace_text:
                  self.replace_text.setFocus()
              else:
                  self.editor.setFocus()
docs: Replace and find in the current selection