Looks like it is doing what you asked.
3015 data test1;
3016 do a='there is a cat','IT IS UNIT1A','IT IS unit' ;
3017 b = prxmatch('/UNIT1A$/i',a);
3018 c = prxmatch('/UNIT$/i',a);
3019 d = prxmatch('/cat$/i',a);
3020 put (_all_) (=);
3021 output;
3022 end;
3023 run;
a=there is a cat b=0 c=0 d=12
a=IT IS UNIT1A b=0 c=0 d=0
a=IT IS unit b=0 c=0 d=0
Did you want to trim the value of A?
3042 data test1;
3043 do a='there is a cat','IT IS UNIT1A','IT IS unit' ;
3044 b = prxmatch('/UNIT1A$/i',trim(a));
3045 c = prxmatch('/UNIT$/i',trim(a));
3046 d = prxmatch('/cat$/i',trim(a));
3047 put (_all_) (=);
3048 output;
3049 end;
3050 run;
a=there is a cat b=0 c=0 d=12
a=IT IS UNIT1A b=7 c=0 d=0
a=IT IS unit b=0 c=7 d=0
... View more