%
% Not links
%
example.invalid
example.invalid/
http://.example.com
http://-example.com
hppt://example.com
example.coma
-example.coma
foo.123
localhost           % only with protocol allowed
localhost/
///localhost        % 3 '/' not allowed
///test.com
//test              % Don't allow single level protocol-less domains to avoid false positives

_http://example.com
_//example.com
_example.com
http://example.com_
@example.com

node.js and io.js

http://
http://.
http://..
http://#
http://##
http://?
http://??
google.com:500000 // invalid port
show image.jpg
path:to:file.pm
/path/to/file.pl

%
% Not IPv4
%
1.2.3.4.5
1.2.3
1.2.3.400
1000.2.3.4
a1.2.3.4
1.2.3.4a

%
% Not email
%
foo@bar     % Should be at second level domain & with correct tld
mailto:bar
