\A
(# Schemat
 [a-z][a-z0-9+\-.]*:
 (# Serwer i cieka
  //
  ([a-z0-9\-._~%!$&'()*+,;=]+@)?               # Uytkownik
  ([a-z0-9\-._~%]+                             # Nazwany host
  |\[[a-f0-9:.]+\]                             # Host IPv6
  |\[v[a-f0-9][a-z0-9\-._~%!$&'()*+,;=:]+\])   # Host IPvFuture
  (:[0-9]+)?                                   # Port
  (/[a-z0-9\-._~%!$&'()*+,;=:@]+)*/?           # cieka
 |# cieka bez serwera
  (/?[a-z0-9\-._~%!$&'()*+,;=:@]+(/[a-z0-9\-._~%!$&'()*+,;=:@]+)*/?)?
 )
|# Wzgldny adres URL (bez schematu i serwera)
 (# cieka wzgldna
  [a-z0-9\-._~%!$&'()*+,;=@]+(/[a-z0-9\-._~%!$&'()*+,;=:@]+)*/?
 |# cieka bezwzgldna
  (/[a-z0-9\-._~%!$&'()*+,;=:@]+)+/?
 )
)
# Zapytanie
(\?[a-z0-9\-._~%!$&'()*+,;=:@/?]*)?
# Fragment
(\#[a-z0-9\-._~%!$&'()*+,;=:@/?]*)?
\Z
Opcje wyraenia regularnego: Swobodne stosowanie znakw biaych, ignorowanie wielkoci liter
Odmiany wyrae regularnych: .NET, Java, PCRE, Perl, Python, Ruby


\A
(# Schemat
 (?<scheme>[a-z][a-z0-9+\-.]*):
 (# Serwer i cieka
  //
  (?<user>[a-z0-9\-._~%!$&'()*+,;=]+@)?               # Uytkownik
  (?<host>[a-z0-9\-._~%]+                             # Nazwany host
  |       \[[a-f0-9:.]+\]                             # Host IPv6
  |       \[v[a-f0-9][a-z0-9\-._~%!$&'()*+,;=:]+\])   # Host IPvFuture
  (?<port>:[0-9]+)?                                   # Port
  (?<path>(/[a-z0-9\-._~%!$&'()*+,;=:@]+)*/?)         # cieka
 |# cieka bez serwera
  (?<path>/?[a-z0-9\-._~%!$&'()*+,;=:@]+
          (/[a-z0-9\-._~%!$&'()*+,;=:@]+)*/?)?
 )
|# Wzgldny adres URL (bez schematu i serwera)
 (?<path>
  # cieka wzgldna
  [a-z0-9\-._~%!$&'()*+,;=@]+(/[a-z0-9\-._~%!$&'()*+,;=:@]+)*/?
 |# cieka bezwzgldna
  (/[a-z0-9\-._~%!$&'()*+,;=:@]+)+/?
 )
)
# Zapytanie
(?<query>\?[a-z0-9\-._~%!$&'()*+,;=:@/?]*)?
# Fragment
(?<fragment>\#[a-z0-9\-._~%!$&'()*+,;=:@/?]*)?
\Z
Opcje wyraenia regularnego: Swobodne stosowanie znakw biaych, ignorowanie wielkoci liter
Odmiana wyrae regularnych: .NET


\A
(# Schemat
 (?<scheme>[a-z][a-z0-9+\-.]*):
 (# Serwer i cieka
  //
  (?<user>[a-z0-9\-._~%!$&'()*+,;=]+@)?              # Uytkownik
  (?<host>[a-z0-9\-._~%]+                            # Nazwany host
  |      \[[a-f0-9:.]+\]                             # Host IPv6
  |      \[v[a-f0-9][a-z0-9\-._~%!$&'()*+,;=:]+\])   # Host IPvFuture
  (?<port>:[0-9]+)?                                  # Port
  (?<hostpath>(/[a-z0-9\-._~%!$&'()*+,;=:@]+)*/?)    # cieka
 |# cieka bez serwera
  (?<schemepath>/?[a-z0-9\-._~%!$&'()*+,;=:@]+
                (/[a-z0-9\-._~%!$&'()*+,;=:@]+)*/?)?
 )
|# Wzgldny adres URL (bez schematu i serwera)
 (?<relpath>
  # cieka wzgldna
  [a-z0-9\-._~%!$&'()*+,;=@]+(/[a-z0-9\-._~%!$&'()*+,;=:@]+)*/?
 |# cieka bezwzgldna
  (/[a-z0-9\-._~%!$&'()*+,;=:@]+)+/?
 )
)
# Zapytanie
(?<query>\?[a-z0-9\-._~%!$&'()*+,;=:@/?]*)?
# Fragment
(?<fragment>\#[a-z0-9\-._~%!$&'()*+,;=:@/?]*)?
\Z
Opcje wyraenia regularnego: Swobodne stosowanie znakw biaych, ignorowanie wielkoci liter
Odmiany wyrae regularnych: .NET, PCRE 7, Perl 5.10, Ruby 1.9


\A
(# Schemat
 (?P<scheme>[a-z][a-z0-9+\-.]*):
 (# Serwer i cieka
  //
  (?P<user>[a-z0-9\-._~%!$&'()*+,;=]+@)?              # Uytkownik
  (?P<host>[a-z0-9\-._~%]+                            # Nazwany host
  |       \[[a-f0-9:.]+\]                             # Host IPv6
  |       \[v[a-f0-9][a-z0-9\-._~%!$&'()*+,;=:]+\])   # Host IPvFuture
  (?P<port>:[0-9]+)?                                  # Port
  (?P<hostpath>(/[a-z0-9\-._~%!$&'()*+,;=:@]+)*/?)    # cieka
 |# cieka bez serwera
  (?P<schemepath>/?[a-z0-9\-._~%!$&'()*+,;=:@]+
                 (/[a-z0-9\-._~%!$&'()*+,;=:@]+)*/?)?
 )
|# Wzgldny adres URL (bez schematu i serwera)
 (?P<relpath>
  # cieka wzgldna
  [a-z0-9\-._~%!$&'()*+,;=@]+(/[a-z0-9\-._~%!$&'()*+,;=:@]+)*/?
 |# cieka bezwzgldna
  (/[a-z0-9\-._~%!$&'()*+,;=:@]+)+/?
 )
)
# Zapytanie
(?P<query>\?[a-z0-9\-._~%!$&'()*+,;=:@/?]*)?
# Fragment
(?P<fragment>\#[a-z0-9\-._~%!$&'()*+,;=:@/?]*)?
\Z
Opcje wyraenia regularnego: Swobodne stosowanie znakw biaych, ignorowanie wielkoci liter
Odmiany wyrae regularnych: PCRE 4 i nowsze, Perl 5.10, Python


^([a-z][a-z0-9+\-.]*:(\/\/([a-z0-9\-._~%!$&'()*+,;=]+@)?([a-z0-9\-._~%]+|\[[a-f0-9:.]+\]|\[v[a-f0-9][a-z0-9\-._~%!$&'()*+,;=:]+\])(:[0-9]+)?(\/[a-z0-9\-._~%!$&'()*+,;=:@]+)*\/?|(\/?[a-z0-9\-._~%!$&'()*+,;=:@]+(\/[a-z0-9\-._~%!$&'()*+,;=:@]+)*\/?)?)|([a-z0-9\-._~%!$&'()*+,;=@]+(\/[a-z0-9\-._~%!$&'()*+,;=:@]+)*\/?|(\/[a-z0-9\-._~%!$&'()*+,;=:@]+)+\/?))
(\?[a-z0-9\-._~%!$&'()*+,;=:@\/?]*)?(#[a-z0-9\-._~%!$&'()*+,;=:@\/?]*)?$
Opcje wyraenia regularnego: Ignorowanie wielkoci liter
Odmiany wyrae regularnych: .NET, Java, JavaScript, PCRE, Perl, Python
