$re = '/^\b(0|[1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])\b\h(\.|\b((?=.{1,255}$)(?:xn\-\-)?(?!-)(?!.*--)[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*\.?)\b)(?:\.)?(?!=)(\h(([a-z0-9-]{1,63})((\=\")[\x21\x23-\x27\x2A-\x3A\x3C-\x7E]{1,255}+(\"))?)?)*?$/m';
$str = '230 example.com
56 subsubdomain.subdomain.example.com.thisisaverylongdomainnamewithseventycharacters
89 subsubdomain.subdomain.example.com.thisisaverylongdomainnamewithseventycharacters test
1 gOOglE.com alpn="h3,h2"
250 exmpla.com test="test"
250 exmpla.com 33="3.63"
250 . 33="363"
1 . alpn="h3,h2"
1 example.com. alpn="h3,h2"
2 . test=test
3 . test=""
1 . alpn="h3,h2" ipv4hint="192.0.2.1" ipv6hint="2001:db8::1"
1 . alpn="h3,h2" ipv4hi-nt="192.0.2.1" ipv6hint="2001:db8::1"
1 test.org alpn="h3,h2" ipv4hi-nt="192.0.2.1" ipv6hint="2001:db8::1"
1 test.org alpn="h3,h2" ipv4hi-nt="192.0.2.1" ipv6hint="2001:db8::1" ipv4hi-nt="192.0.2.1" ipv6hint="2001:db8::1" ipv4hi-nt="192.0.2.1" ipv6hint="2001:db8::1" ipv4hi-nt="192.0.2.1" ipv6hint="2001:db8::1" ipv4hi-nt="192.0.2.1" ipv6hint="2001:db8::1"
1 test.org alpnfeefefefefefwefwefwefwefwefwefwefwefwefwefwefwefhththegerg="h3,h2"
1 test.org alpnfeefefefefefwefweefwefwefwefwefwefwefwefwefhththegerg="h3\\,h2"
1 test.org test="jn7j64m764mi67i4i467nhin0iu4n6nizn4i0n6z34htj0nizn4i0n6z34htj03ht834t03h480th3hunizn4i0n6z34htj03ht834t03h480th3hunizn4i0n6z34htj03ht8303ht834t03h480th3hunizn4i0n4t03h480th3hunizn4i0n6z34htj03ht834t03h480th3hu3ht834t03h480th3hu93hu4nu9o83h"
1 test.org test="jn7j64m764mi67i4i467nhin0iu4n6nizn4i0n6z34htj0nizn4i0n6z34htj03ht834t03h480th3hunizn4i0n6z34htj03ht834t03h480th3hunizn4i0n6z34htj03ht803ht834t03h480th3hunizn4i0n4t03h480th3hunizn4i0n6z34htj03ht834t03h480th3hu3ht834t03h480th3hu93hu4nu9hho83h"
1 test.org a="h3,h2" alpn="h3,h2"
3 . test
3 . test test test
1 .
1 überall-ist.de
1 xn--berall-ist-8db.de
1 rxn--berall-ist-8db.de
65535 test.org
655357 test.org
65536 test.org
1 example.comalpn="h3,h2" ipv4hi-nt="192.0.2.1" ipv6hint="2001:db8::1"
678 tes""t
1 test.org ="test"
';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
// Print the entire match result
var_dump($matches);
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for PHP, please visit: http://php.net/manual/en/ref.pcre.php