Ну вот, сделал... Вроде как все Ваши запросы удовлетворены, и вставка ссылок вполне стандартна и понятна

Большое спасибо за задачу, узнал просто кучу нового для себя. Надеюсь, Вы попробуете это разобрать и тоже что-нибудь узнаете

Удачи.
----
Нашел баг - если ссылку вставлять в место, где после нее пойдет сразу текст без пробела, он включается в линк до первого пробела. Вот с этим я точно не знаю что делать, как отследить именно ВСТАВЛЕННЫЙ текст. Написать функцию типа compare...