اول براساس نوع لینک هایی که میخواید انتخاب بشه باید regex متناسبی رو انتخاب کنید مثلا
کد PHP:
(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))
بعد با preg_match_all همه رو در یک ارایه داشته باشید و در حلقه بزارید
بعد با parse_url می تونید مشخصات هر لینک رو بگیرید
اگر لینک داخلی باشه یا تنظیمات خاصی لازمه بر اساس دومین اعمال بشه انجام بدید و در کپی متن اصلی replace کنید
البته اگر دومین اصلی ثابت هست در همون مرحله اول regex هم میشه مشخص کرد این دومین انتخاب نشه ولی نوشتن regex یکم سخت تر میشه و باید الگوهای اماده رو ادیت کنید