<?php
$text = "text @user text @Губка Боб text @user1 text text @SiteTe.ru text text text @любитель text text @guba bob text text @geb 123";
if (preg_match_all('~(?=(?<!\S)(@.{0,29}))~u', $text, $matches)) {
array_shift($matches);
print_r($matches[0]);
}
Array
(
[0] => @user text @Губка Боб text @us
[1] => @Губка Боб text @user1 text te
[2] => @user1 text text @SiteTe.ru te
[3] => @SiteTe.ru text text text @люб
[4] => @любитель text text @guba bob
[5] => @guba bob text text @geb 123
[6] => @geb 123
)
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
Array
(
[0] => @user text @Губка Боб text @us
[1] => @Губка Боб text @user1 text te
[2] => @user1 text text @SiteTe.ru te
[3] => @SiteTe.ru text text text @люб
[4] => @любитель text text @guba bob
[5] => @guba bob text text @geb 123
[6] => @geb 123
)