Assuming that the blocks are not attributed or dynamic, then the following should work:
(defun c:test ( / doc new pat )
(setq pat (strcase "*SM_Annotation*")
new (strcase "SM_Annotation")
doc (vla-get-activedocument (vlax-get-acad-object))
)
(vlax-for blk (vla-get-blocks doc)
(if (and (= :vlax-false (vla-get-isxref blk))
(/= new (strcase (vla-get-name blk)))
)
(vlax-for obj blk
(if (and (= "AcDbBlockReference" (vla-get-objectname obj))
(wcmatch (strcase (vla-get-name obj)) pat)
)
(vla-put-name obj new)
)
)
)
)
(vla-regen doc acallviewports)
(princ)
)
(vl-load-com) (princ)