in reply to Regex is eating up whitespace

It seems your [^<] and [^=] are the "problem". They match the whitespace. Since you just want to match "S.", why not just match that?
s/S\./<S.=initial>/g;
will do.