Just test each word.
data want ;
set have;
do i=1 to countw(var1,' ,.()-') until(found);
word=scan(var1,i,' ,.()-');
if length(word)>3 then found = 0<findw(var2,word,' ,.()-','it');
end;
if not found then do;
word=' ';
i=0;
end;
run;
Obs VAR1 VAR2 i found word
1 1.DR. MORRISON 0 0
2 1.MORRISON ABCFG MORRISON 2 1 MORRISON
3 1.DR. MORRISON MORRISON 3 1 MORRISON
4 1.DR. MORRISON DR. WRIGHT 0 0
5 1. LA HOSPITAL SAN DIEGO 0 0
... View more