  http:// shouldfail.com
  :// should fail
  http://foo.bar/foo(bar)baz quux
  http://-error-.invalid/
  http://-a.b.co
  http://a.b-.co
  http://a.-b.co
  http://a.b-.c.co
  http:/
  http://
 
</s> remove http://invalid.c-m
 </s> add http://invalid.-com </s> remove     tld_re = r'\.(?:[a-z' + ul + r']{2,63}|xn--[a-z0-9]{1,59})\.?'
 </s> add     tld_re = (
        '\.'                                # dot
        '(?!-)'                             # can't start with a dash
        '(?:[a-z' + ul + '-]{2,63}'         # domain label
        '|xn--[a-z0-9]{1,59})'              # or punycode label
        '(?<!-)'                            # can't end with a dash
        '\.?'                               # may have a trailing dot
    )
http://dashinpunytld.trailingdot.xn--.
http://dashinpunytld.xn---
  http:// shouldfail.com
  :// should fail
  http://foo.bar/foo(bar)baz quux
  http://-error-.invalid/
http://dashinpunytld.trailingdot.xn--.
http://dashinpunytld.xn---
  http://-a.b.co
  http://a.b-.co
  http://a.-b.co
  http://a.b-.c.co
  http:/
  http://
keep keep keep add keep keep keep keep keep keep
 Fixed #26204 -- Reallowed dashes in top-level domains for URLValidator.

Thanks Shai Berger for the review. 
tests/validators/invalid_urls.txt