(?ix-sm: http:// (?ix-sm: # One or more dot-separated parts... (?: [a-z0-9]\. | [a-z0-9][-a-z0-9]{0,61}[a-z0-9]\. )* # Followed by the final suffix part... (?: com|edu|gov|int|mil|net|org|biz|info|...|aero|[a-z][a-z] ) ) \b # hostname (?: / [-a-z0-9_:\@&?=+,.!/~*'%\$]* # Optional path (?