You can use a positive lookahead assertion to avoid having to reinsert $1.
$line =~ s/^(?=R.*\$SUB=)<\*\d+>//;
aehhm, this won't work. The lookahead doesn't move the position in your regex, so you are effectively looking for /^<\*\d+>/ which isn't there. Instead you would need a look behind assertion but they are only available for constant length.
As I understand the file format there are no other digits in angle brackets starting with a star. So why not simply write:
Update: As of Rhodium's clarification of the specs, I would now fully recommend IO's solution.