Вы также не можете использовать !
в начале и в конце, и использовать гораздо более простой код с T-Regx
$pattern = "<span[^>]+>(.*?)</span>"; // no delimiters :)
$string = '
<td class="class2"> </td>
<td class="class2" align="right"><span class="DarkText">I WANT THIS
TEXT</span></td>
';
Тогда просто используйте match()->group()
:
$text = Pattern::of($pattern)->match($string)->group(1)->first();
$text // 'I WANT THIS TEXT'
Проверить онлайн: https://regex101.com/r/nxTvS1/1