(if(not(member"pcre2006.arx"(arx)))(arxload "pcre2006.arx")) (defun pcre-sr(s-pat r-pat str flags / matchlist matchpair r-str tmp) (setq r-str "") (if(setq matchlist(pcre-match s-pat str flags)) (progn (while(>(strlen r-pat)0) (if(= "\\"(substr r-pat 1 1)) (if(<(setq tmp(atoi(substr r-pat 2)))10) (progn (setq matchpair(nth tmp matchlist)) (setq r-str (strcat r-str (substr str (1+(car matchpair)) (cadr matchpair) ) ) ) (setq r-pat(substr r-pat 3)) ) ) (progn (setq r-str(strcat r-str(substr r-pat 1 1))) (setq r-pat(substr r-pat 2)) ) ) ) r-str ) ) )