I'm not sure what you want to have happen when you hit a "101". If you want all your "part#" variables to remain missing, just skip doing anything for the "101"s:
DO i=1 to 54;
if original{i} ne '101' then DO j=1 to 3;
new{i,j} = substr(original{i}, 2*j-1);
END;
END;
DROP
i j;
Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!