I agree with @Tom:
data ds2;
infile datalines dlm='09'x missover;
input @;
do while (index(_infile_,'0909'x) gt 0);
_infile_=tranwrd(_infile_,'0909'x,'092E09'x);
end;
if _infile_=: '09'x then _infile_='.'||_infile_; input (var1-var8) ($);
datalines;
2 "28 4 29"
"28 4 29"
2 "28 4 29"
;
run;
Art, CEO, AnalystFinder.com