What in the world? I've never seen "_+.:E:S". What does this do? I understand :E:S but where did you come up with +.? The problem I see with :E:S is if there are multiple objects under the cursor wouldn't you end up with both of them?
On another note, here's entse7 with a few bugs worked out.
(defun entse7 (wildcard / ent)
(setq pmpt (strcat "Get any " wildcard " type of object: ")
greed (grread nil 4 2)
)
(cond ((or (= (car greed) 25) ;right-click
(and (= (car greed) 2) ;keyboard entry
(or (= (cadr greed) 13) ;enter
(= (cadr greed) 32) ;spacebar
)
)
)
(setq ent nil)
)
((and (= (car greed) 3);ensures left-click
(setq ent (nentselp pmpt (cadr greed)))
)
(if (not (wcmatch (cdr (assoc 0 (entget (car ent)))) wildcard))
(entse7 wildcard)
ent
)
)
(t (entse7 wildcard))
)
)