- $utf_domain = '[^?&@"\'\\/()\s\r\t\n]+\\.[a-z]{2,5}';
- $url1 = '.:;';
- $url2 = 'a-z0-9%=#@+?&\\/_~\\[\\]-';
+ // Support unicode/punycode in top-level domain part
+ $utf_domain = '[^?&@"\'\\/()\s\r\t\n]+\\.([^\\x00-\\x2f\\x3b-\\x40\\x5b-\\x60\\x7b-\\x7f]{2,}|xn--[a-z0-9]{2,})';
+ $url1 = '.:;,';
+ $url2 = 'a-z0-9%=#@+?!&\\/_~\\[\\]{}-';