решил головоломку, правильно пишут
Если у программиста есть проблема и он думает — «Я решу ее при помощи регулярных выражений», то с этого момента у программиста уже две проблемы.
до разработчиков Zoo вряд ли получится достучаться, может хоть в JBzoo найдет применение и вообще кому-нибудь пригодится
русские символы скрываются в последовательности
\\x80-\\xff
так что надо было только добавить домен рф
const REGEX_URL ='/^(%s):\/\/(([a-z0-9-\\x80-\\xff]+\.)+(?:рф|[a-z]{2,6})|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})(:[0-9]+)?(\/?|\/\S+)$/i';
однако, ключ /i - ignore case - не применяется к русским символам, поэтому
const REGEX_URL ='/^(%s):\/\/(([a-z0-9-\\x80-\\xff]+\.)+(?:рф|рФ|Рф|РФ|[a-z]{2,6})|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})(:[0-9]+)?(\/?|\/\S+)$/i';
но, в последнее время столька етих доменов панаделали, поэтому пусть будут сразу все варианты, и подлиннее
const REGEX_URL ='/^(%s):\/\/(([a-z0-9-\\x80-\\xff]+\.)+([\\x80-\\xff]{2,}|[a-z]{2,})|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})(:[0-9]+)?(\/?|\/\S+)$/i';
Попутно вскрылась еще одна проблема теперь уже с элементом email, т.к. есть вероятность наличия почтовых ящиков на кириллических доменах
записать в строку 734 файла administrator\components\com_zoo\classes\validator.php
const REGEX_EMAIL = '/^([^@\s]+)@((?:[-a-z0-9\\x80-\\xff]+\.)+([\\x80-\\xff]{2,}|[a-z]{2,}))$/i';
в элементе email проверка выполняется также на вывод, т.е. строку ввести получится, но она не выведется на сайте.
правим еще 1 или 2 файла:
media\zoo\elements\email\email.php
media\zoo\applications\jbuniversal\elements\email\email.php - кто, когда и зачем его туда записал - не знаю, но пусть лежит
заменить на строку
return preg_match('/[\w!#$%&\'*+\/=?`{|}~^-]+(?:\.[!#$%&\'*+\/=?`{|}~^-]+)*@(?:[A-Z0-9-\\x80-\\xff]+\.)+([\\x80-\\xff]{2,}|[A-Z]{2,})/i', $text);