<?php
$test = '<img loading="lazy"
src="//www.gravatar.com/avatar/ace483d9a9207b222b22130857ace315?s=20&r=g&d=mm"
class="avatar bpbm-avatar-user-id-1 user-1-avatar avatar-20 photo" width="20"
height="20" alt="Profile picture of Test St" data-size="20" data-user-id="1" />';
$url = 'https://test.com';
$test = preg_replace('~<img[^>]+src="\K(?=/)~', $url, $test);
var_dump($test);
Получаю результат
string(388) "<img loading="lazy"
src="https://test.com//www.gravatar.com/avatar/ace483d9a9207b222b22130857ace315?s=20&r=g&d=mm"
class="avatar bpbm-avatar-user-id-1 user-1-avatar avatar-20 photo" width="20"
height="20" alt="Profile picture of Test St" data-size="20" data-user-id="1" />"
(Преждная ссылка почему остается в аттрибуте src)