Same problem on 8.6b2

% regsub -all -- {(.*)} "something" {\1test}
somethingtesttest

The same:
% regsub -all -- {(.*)} "something" {\1 test}
something test test

With $:
% regsub -all -- {(.*)$} "something" {\1 test}
something test test

But with ^ (or ^ and $):
% regsub -all -- {^(.*)} "something" {\1 test}
something test
% regsub -all -- {^(.*)$} "something" {\1 test}
something test