Vince, I appreciate your opinion and sharing of knowledge. These look like common data entry mistakes and one should aware of. It is definitely helpful for me. I never ever get anyone wrong for healthy discussion. In fact, these kind of discussions are very helpful for quick gain of knowledge and foresee problems so that one can go for robust code. By the way, my approach, previous to this posting was: if index(a,'(') then unit = strip( compress( substr(a, find(a,'(', -(length(a))) ),'()')); run; I got 2 other responses in the SAS-L which are lot better. Simple non-perl solution from 'Data _Null_': if findc(a,')','b') then unit2 = scan(a,-1,')(','t'); and, a perl solution from Søren Lassen: data b; set a; length unit $40.; prxid=prxparse('/.*\(([^\)]*)/'); if prxmatch(prxid,a) then unit=prxposn(prxid,1,a); run; Thank you, Sunil
... View more