Here are two ways . One is CALL SCAN() , another is prxchange().
Data ds;
Infile datalines;
Input idno name&$30. Team $ strtwght endwght ;
call scan(name,1,p1,l1);
call scan(name,-1,p2,l2);
Middle_Name1=strip(substr(name,l1+1,p2-l1-1));
Middle_Name2=prxchange('s/^\w+|\w+$//',-1,strip(name));
drop p1 p2 l1 l2;
Datalines;
1331 Jason Schock paul Long blue 187 172
1067 Kanoko john rav Nagasaka green 135 122
1251 Richard roy granny Rose blue 181 166
1192 Charlene tin Armstrong yellow 152 139
1352 Bette Schock green 156 137
1262 Yao Chen Garg blue 196 180
1124 Adrienne Fink green 156 142
;
run;
... View more