// All are 'non-capturing' regular expressions.
// General format of a URL in a RegEx:
(?:(?:https?|ftp)://)?(?:www.)?[^/
]+(?:/[^
]*)?
// To enforce the protocol
(?:https?|ftp)://(?:www.)?[^/
]+
// To enforce the protocol and trailing slash
(?:https?|ftp)://(?:www.)?[^/
]+(?:/[^
]*)
// To enforce file extensions like .html or .png:
(?:(?:https?|ftp)://)?(?:www.)?[^/
]+(?:/[^
]*)(?:[a-zA-Z0-9]+.(?:html|png|webp|js))
// To implement in GO (https://go.dev), add an extra backslash (' ') to every unescaped backslash (' ')
// For the first format, that is:
(?:(?:https?|ftp)://)?(?:www.)?[^/
]+(?:/[^
]*)?
// You do not need to add the extra backslash to the '
' and '
' because it is handled natively