хотя есть ссылки содержащие имя пользователя и пароль в ссылке, для этого можно убрать из запрещенных два символа ":@" тоесть двоеточие и сабаку.
примерно так:
var a = '"ftp://username:password@domen.net/path/path/file.dat"'.
match( /(?:(http(?:s)?|ftp)(:\/\/)|(www(?:[0-9]+)?\.))((?:([^`~!#$%^&*()_+|=\\{}\[\];'"<,>?\/\s]+)\/[^\s]+(?!\s|$)[^`~!@#$%^&*()_+|=\\{}\[\];:'"<,.>\-?\s]+)|([^`~!#$%^&*()_+|=\\{}\[\];'"<,>?\/\s]+))/ig );
alert(a);