You will need to use a DATA step and parse the first, second fields, and then after finding the offset character to the third field using INDEXC possibly, then use SUBSTR along with the SAS special variable _INFILE_ to assign the final variable.
INFILE /* additional parameters as needed */ ;
* LOAD THE INPUT BUFFER. ;
* LENGTH OR ATTRIB statements go here. ;
F1 = SCAN(_INFILE_,1," ");
F2 = SCAN(_INFILE_,2," ");
OFFSET = INDEXC(_INFILE_," ");
OFFSET = INDEXC(SUBSTR(_INFILE_,OFFSET+1)," ");
F3 = SUBSTR(_INFILE_,OFFSET+1);
You can input 'comment' and 'string2' as one variable firstly, then parse this variable into two variables you need. try it.
input d1 $ string1 $ comment & $50.;
001 001 qwer asd 5
002 002 asdfyuiop 6
003 003 zxcv 5