The function does work with the expression, the mistake was poor tracking of the position of the point. Below code
(defun otmKvhk()
"Отметка выражений в кавычках
Обрабатывается выделенный регион
Отмечается только крайние кавычки, вложения пропускаются,
начало соответствия 'bbo# ', конец ' #obb'"
(interactive)
(let ((n_pozRgn (region-beginning)) (z_pozRgn (region-end)) n_svpd k_svpd)
(goto-char n_pozRgn)
(while (setq n_svpd (re-search-forward "\"\\|`" z_pozRgn t))
(let ((data (match-data)))
(unwind-protect
(if (setq k_svpd (search-forward (match-string-no-properties 0) z_pozRgn t))
(progn (insert " #obb")
(setq k_svpd (+ 5 k_svpd))
(setq n_svpd (- n_svpd 1))
(goto-char n_svpd)
(insert "bbo# ")
(setq k_svpd (+ 5 k_svpd))
(goto-char k_svpd)
(setq z_pozRgn (+ 10 z_pozRgn)))
(error "%s" "Не найдено соответствие!")
)
(set-match-data data)))
)
(goto-char z_pozRgn))
)
"
or`
), so your problem isn't what you think it is. What is your problem?