---
name: "Regexp::Pattern::License"
section: "3pm"
platform: "linux"
package: "libregexp-pattern-license-perl"
version: "3.11.2-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Regexp::Pattern::License"
---

# Regexp::Pattern::License(3pm)

Regular expressions for legal licenses

## NAME

Regexp::Pattern::License - Regular expressions for legal licenses

## VERSION

Version v3.11.2

## SYNOPSIS

```
    use Regexp::Pattern::License;
    use Regexp::Pattern;
    my $string = 'GNU General Public License version 3 or later';
    print "Found!\n" if $string =~ re( 'License::gpl_3' );  # prints "Found!"
```

## DESCRIPTION

Regexp::Pattern::License provides a hash of regular expression patterns related to legal software licenses.

Regexp::Pattern is a convention for organizing reusable regex patterns.

## PATTERNS

### Licensing traits

Patterns each covering a single trait occuring in licenses.

Each of these patterns has the tag  **type:trait** .

- •

  addr\_fsf

  *Since v3.4.0.*

- •

  addr\_fsf\_franklin

  *Since v3.4.0.*

- •

  addr\_fsf\_franklin\_steet

  *Since v3.4.0.*

- •

  addr\_fsf\_mass

  *Since v3.4.0.*

- •

  addr\_fsf\_temple

  *Since v3.4.0.*

- •

  any\_of

  *Since v3.1.92.*

- •

  by

  *Since v3.3.0.*

- •

  by\_apache

  *Since v3.3.0.*

- •

  by\_fsf

  *Since v3.3.0.*

- •

  by\_james\_clark

  *Since v3.3.0.*

- •

  by\_psf

  *Since v3.3.0.*

- •

  by\_sam\_hocevar

  *Since v3.3.0.*

- •

  clause\_retention

- •

  clause\_reproduction

- •

  clause\_advertising

- •

  clause\_advertising\_always

- •

  clause\_non\_endorsement

- •

  except\_389

- •

  except\_autoconf\_data

  *Since v3.4.0.*

- •

  except\_autoconf\_2

  *Since v3.4.0.*

- •

  except\_autoconf\_2\_archive

  *Since v3.4.0.*

- •

  except\_autoconf\_2\_autotroll

  *Since v3.4.0.*

- •

  except\_autoconf\_2\_g10

  *Since v3.4.0.*

- •

  except\_autoconf\_3

  *Since v3.4.0.*

- •

  except\_bison\_1\_24

  *Since v3.4.0.*

- •

  except\_bison\_2\_2

  *Since v3.4.0.*

- •

  except\_classpath\_2

- •

  except\_ecos\_2

  *Since v3.6.0.*

- •

  except\_epl

- •

  except\_epl\_mpl

- •

  except\_faust

  *Since v3.4.0.*

- •

  except\_font\_2

  *Since v3.7.0.*

- •

  except\_gcc\_2

  *Since v3.7.0.*

- •

  except\_gcc\_3\_1

  *Since v3.7.0.*

- •

  except\_gstreamer

- •

  except\_libtool

- •

  except\_mif

- •

  except\_openssl

  *Since v3.4.0.*

- •

  except\_ocaml-lgpl

- •

  except\_openssl-lgpl

  *Since v3.4.0.*

- •

  except\_openssl\_s3

  *Since v3.4.0.*

- •

  except\_prefix\_agpl

  *Since v3.4.0.*

- •

  except\_prefix\_generic

  *Since v3.4.0.*

- •

  except\_prefix\_gpl

  *Since v3.4.0.*

- •

  except\_prefix\_gpl\_clisp

  *Since v3.4.0.*

- •

  except\_prefix\_lgpl

  *Since v3.4.0.*

- •

  except\_proguard

  *Since v3.4.0.*

- •

  except\_qt\_gpl\_1

  *Since v3.4.0.*

- •

  except\_qt\_gpl\_eclipse

  *Since v3.4.0.*

- •

  except\_qt\_gpl\_openssl

  *Since v3.4.0.*

- •

  except\_qt\_kernel

  *Since v3.4.0.*

- •

  except\_qt\_lgpl\_1\_1

  *Since v3.4.0.*

- •

  except\_qt\_nosource

  *Since v3.4.0.*

- •

  except\_sdc

  *Since v3.4.0.*

- •

  except\_sollya\_4\_1

  *Since v3.4.0.*

- •

  except\_warzone

  *Since v3.4.0.*

- •

  except\_wxwindows

  *Since v3.6.0.*

- •

  except\_xerces

  *Since v3.4.0.*

- •

  fsf\_unlimited

- •

  fsf\_unlimited\_retention

- •

  generated

  *Since v3.4.0.*

- •

  license\_label

- •

  license\_label\_spdx

  *Since v3.9.0.*

- •

  license\_label\_trove

  *Since v3.1.100.*

- •

  licensed\_under

  *Since v3.1.92.*

- •

  usage\_rfn

  *Since v3.2.0.*

- •

  version

  Optionally provides the following numbered and named captures:

  ```
      "Under GPL, v2 or later of the license."
                [                          ]  # -> $&
                   I                          # -> $1, $-{version_number}
                     [      ]                 # -> $2, $-{version_later}
      "Under version 2 or 3 only of the GPL."
            [                      ]  # -> $&
                     I                # -> $1, $-{version_number}
                          I           # -> $3, $-{version_number_2}
                            [  ]      # -> $4, $-{version_only}
                                 []   # -> $5, $-{version_of}
  ```

  *Captures stable since v3.11.0.*

- •

  version\_later

  Optionally provides the following numbered and named captures:

  ```
      "Under GPLv2, or later of the license."
                  [        ]  # -> $&
                    [      ]  # -> $1, $-{version_later}
  ```

  *Captures stable since v3.11.0.*

- •

  version\_numberstring

  Optionally provides the following numbered and named captures:

  ```
      "Under GPL, v2 or later of the license."
                [   ]  # -> $&
                   I   # -> $1, $-{version_number}
      "Under version 2 or 3 only of the GPL."
             [        ]  # -> $&
                     I   # -> $1, $-{version_number}
  ```

  *Since v3.1.92.* *Captures stable since v3.11.0.*

- •

  version\_only

  Optionally provides the following numbered and named captures:

  ```
      "Under GPL version 2 only of the license."
                           [  ]  # -> $&
                           [  ]  # -> $1, $-{version_only}
  ```

  *Captures stable since v3.11.0.*

- •

  version\_prefix

### Single licenses

Patterns each covering a single license.

Each of these patterns has exactly one of these tags:  **type:unversioned**   **type:versioned:decimal**   **type:singleversion:\***   **type:usage:\*:\***  .

- •

  aal

- •

  abstyles

- •

  adobe\_2006

- •

  adobe\_glyph

- •

  adsl

- •

  afl

- •

  afl\_1\_1

  *Since v3.1.95.*

- •

  afl\_1\_2

  *Since v3.1.95.*

- •

  afl\_2

  *Since v3.1.95.*

- •

  afl\_2\_1

  *Since v3.1.95.*

- •

  afl\_3

  *Since v3.1.95.*

- •

  afmparse

- •

  agpl

- •

  agpl\_1

  *Since v3.1.102.*

- •

  agpl\_1\_only

- •

  agpl\_1\_or\_later

- •

  agpl\_2

- •

  agpl\_3

- •

  agpl\_3\_only

- •

  agpl\_3\_or\_later

- •

  aladdin

- •

  aladdin\_8

  *Since v3.1.91.*

- •

  aladdin\_9

  *Since v3.1.91.*

- •

  amdplpa

- •

  aml

- •

  ampas

- •

  antlr\_pd

- •

  apache

- •

  apache\_1

  *Since v3.1.95.*

- •

  apache\_1\_1

  *Since v3.1.95.*

- •

  apache\_2

  *Since v3.1.95.*

- •

  apafml

- •

  apl

- •

  apl\_1

- •

  apsl

- •

  apsl\_1

- •

  apsl\_1\_1

- •

  apsl\_1\_2

- •

  apsl\_2

- •

  artistic

- •

  artistic\_1

  *Since v3.1.95.*

- •

  artistic\_1\_cl8

  *Since v3.1.95.*

- •

  artistic\_1\_perl

  *Since v3.1.95.*

- •

  artistic\_2

- •

  bahyph

- •

  barr

- •

  bdwgc

  *Since v3.1.0.*

- •

  bdwgc\_matlab

  *Since v3.1.0.*

- •

  beerware

- •

  bittorrent

- •

  bittorrent\_1

- •

  bittorrent\_1\_1

- •

  borceux

- •

  bsd\_0\_clause

  *Since v3.5.0.*

- •

  bsd\_1\_clause

  *Since v3.6.0.*

- •

  bsd\_2\_clause

- •

  bsd\_2\_clause\_freebsd

  *Since v3.6.0.*

- •

  bsd\_2\_clause\_netbsd

  *Since v3.6.0.*

- •

  bsd\_2\_clause\_patent

  *Since v3.6.0.*

- •

  bsd\_2\_clause\_views

- •

  bsd\_3\_clause

- •

  bsd\_3\_clause\_attribution

  *Since v3.6.0.*

- •

  bsd\_3\_clause\_clear

  *Since v3.6.0.*

- •

  bsd\_3\_clause\_eclipse

  *Since v3.9.0.*

- •

  bsd\_3\_clause\_lbnl

  *Since v3.6.0.*

- •

  bsd\_3\_clause\_modification

- •

  bsd\_3\_clause\_no\_military\_license

  *Since v3.6.0.*

- •

  bsd\_3\_clause\_no\_nuclear\_license

  *Since v3.6.0.*

- •

  bsd\_3\_clause\_no\_nuclear\_license\_2014

  *Since v3.6.0.*

- •

  bsd\_3\_clause\_no\_nuclear\_warranty

  *Since v3.6.0.*

- •

  bsd\_3\_clause\_refractions

  *Since v3.9.0.*

- •

  bsd\_4\_clause

- •

  bsd\_4\_clause\_uc

  *Since v3.7.0.*

- •

  bsd\_protection

  *Since v3.8.0.*

- •

  bsl

  *Since v3.1.90.*

- •

  bsl\_1

  *Since v3.1.90.*

- •

  bzip2

- •

  bzip2\_1\_0\_5

- •

  bzip2\_1\_0\_6

- •

  cal

  *Since v3.5.0.*

- •

  cal\_1

  *Since v3.5.0.*

- •

  caldera

- •

  catosl

- •

  catosl\_1\_1

- •

  cc\_by

- •

  cc\_by\_1

  *Since v3.1.101.*

- •

  cc\_by\_2

  *Since v3.1.101.*

- •

  cc\_by\_2\_5

  *Since v3.1.101.*

- •

  cc\_by\_3

  *Since v3.1.101.*

- •

  cc\_by\_4

  *Since v3.1.101.*

- •

  cc\_by\_nc

- •

  cc\_by\_nc\_1

  *Since v3.1.101.*

- •

  cc\_by\_nc\_2

  *Since v3.1.101.*

- •

  cc\_by\_nc\_2\_5

  *Since v3.1.101.*

- •

  cc\_by\_nc\_3

  *Since v3.1.101.*

- •

  cc\_by\_nc\_4

  *Since v3.1.101.*

- •

  cc\_by\_nc\_nd

- •

  cc\_by\_nc\_nd\_1

  *Since v3.1.101.*

- •

  cc\_by\_nc\_nd\_2

  *Since v3.1.101.*

- •

  cc\_by\_nc\_nd\_2\_5

  *Since v3.1.101.*

- •

  cc\_by\_nc\_nd\_3

  *Since v3.1.101.*

- •

  cc\_by\_nc\_nd\_4

  *Since v3.1.101.*

- •

  cc\_by\_nc\_sa

- •

  cc\_by\_nc\_sa\_1

  *Since v3.1.101.*

- •

  cc\_by\_nc\_sa\_2

  *Since v3.1.101.*

- •

  cc\_by\_nc\_sa\_2\_5

  *Since v3.1.101.*

- •

  cc\_by\_nc\_sa\_3

  *Since v3.1.101.*

- •

  cc\_by\_nc\_sa\_4

  *Since v3.1.101.*

- •

  cc\_by\_nd

- •

  cc\_by\_nd\_1

  *Since v3.1.101.*

- •

  cc\_by\_nd\_2

  *Since v3.1.101.*

- •

  cc\_by\_nd\_2\_5

  *Since v3.1.101.*

- •

  cc\_by\_nd\_3

  *Since v3.1.101.*

- •

  cc\_by\_nd\_4

  *Since v3.1.101.*

- •

  cc\_by\_sa

- •

  cc\_by\_sa\_1

  *Since v3.1.101.*

- •

  cc\_by\_sa\_2

  *Since v3.1.101.*

- •

  cc\_by\_sa\_2\_5

  *Since v3.1.101.*

- •

  cc\_by\_sa\_3

  *Since v3.1.101.*

- •

  cc\_by\_sa\_4

  *Since v3.1.101.*

- •

  cc\_cc0

- •

  cc\_cc0\_1

  *Since v3.1.101.*

- •

  cc\_devnations

  *Since v3.7.0.*

- •

  cc\_devnations\_2

  *Since v3.7.0.*

- •

  cc\_nc

  *Since v3.1.101.*

- •

  cc\_nc\_1

  *Since v3.1.101.*

- •

  cc\_nc\_sa

  *Since v3.7.0.*

- •

  cc\_nc\_sa\_1

  *Since v3.7.0.*

- •

  cc\_nc\_sp

  *Since v3.7.0.*

- •

  cc\_nc\_sp\_1

  *Since v3.7.0.*

- •

  cc\_nd\_nc

  *Since v3.7.0.*

- •

  cc\_nd\_nc\_1

  *Since v3.7.0.*

- •

  cc\_nd

  *Since v3.1.101.*

- •

  cc\_nd\_1

  *Since v3.1.101.*

- •

  cc\_pd

  *Since v3.7.0.*

- •

  cc\_pdd

  *Since v3.7.0.*

- •

  cc\_pddc

  *Since v3.7.0.*

- •

  cc\_sa

  *Since v3.1.101.*

- •

  cc\_sa\_1

  *Since v3.1.101.*

- •

  cc\_sampling

  *Since v3.7.0.*

- •

  cc\_sampling\_1

  *Since v3.7.0.*

- •

  cc\_sp

- •

  cc\_sp\_1

  *Since v3.7.0.*

- •

  cddl

- •

  cddl\_1

  *Since v3.1.101.*

- •

  cddl\_1\_1

  *Since v3.1.101.*

- •

  cecill

- •

  cecill\_1

- •

  cecill\_1\_1

- •

  cecill\_2

- •

  cecill\_2\_1

- •

  cecill\_b

- •

  cecill\_b\_1

  *Since v3.1.95.*

- •

  cecill\_c

- •

  cecill\_c\_1

  *Since v3.1.95.*

- •

  cnri\_jython

- •

  cnri\_python

- •

  cnri\_python\_gpl\_compat

- •

  condor

  *Since v3.8.0.*

- •

  condor\_1\_1

  *Since v3.8.0.*

- •

  cpal

- •

  cpal\_1

- •

  cpl

  *Since v3.1.101.*

- •

  cpl\_1

  *Since v3.1.101.*

- •

  cpol

- •

  cpol\_1\_02

- •

  crossword

  *Since v3.8.0.*

- •

  cryptix

- •

  cua\_opl

- •

  cua\_opl\_1

- •

  cube

- •

  curl

- •

  cvw

  *Since v3.5.0.*

- •

  d\_fsl

  *Since v3.8.0.*

- •

  d\_fsl\_1

  *Since v3.8.0.*

- •

  dbad

  *Since v3.8.0.*

- •

  dbad\_0\_2

  *Since v3.8.0.*

- •

  dbad\_0\_3

  *Since v3.8.0.*

- •

  dbad\_1

  *Since v3.8.0.*

- •

  dbad\_1\_1

  *Since v3.8.0.*

- •

  dont\_ask

  *Since v3.8.0.*

- •

  dsdp

- •

  ecl

- •

  ecl\_1

- •

  ecl\_2

- •

  ecos\_1\_1

  *Since v3.6.0.*

- •

  ecos\_2

  *Since v3.6.0.*

- •

  efl

  *Since v3.6.0.*

- •

  efl\_1

  *Since v3.6.0.*

- •

  efl\_2

  *Since v3.6.0.*

- •

  entessa

  *Since v3.6.0.*

- •

  epl

- •

  epl\_1

- •

  epl\_2

- •

  erlpl

  *Since v3.7.0.*

- •

  erlpl\_1\_1

  *Since v3.7.0.*

- •

  eudatagrid

  *Since v3.6.0.*

- •

  eupl

- •

  eupl\_1

- •

  eupl\_1\_1

- •

  eupl\_1\_2

- •

  eurosym

- •

  fair

  *Since v3.6.0.*

- •

  fair\_source

  *Since v3.8.0.*

- •

  fair\_source\_0\_9

  *Since v3.8.0.*

- •

  fal

  *Since v3.8.0.*

- •

  fal\_1\_1

  *Since v3.8.0.*

- •

  fal\_1\_2

  *Since v3.8.0.*

- •

  fal\_1\_3

  *Since v3.8.0.*

- •

  festival

  *Since v3.8.0.*

- •

  frameworx

  *Since v3.6.0.*

- •

  frameworx\_1

  *Since v3.6.0.*

- •

  fsfap

- •

  fsful

- •

  fsfullr

- •

  ftl

- •

  gfdl

- •

  gfdl\_1\_1

- •

  gfdl\_1\_1\_only

- •

  gfdl\_1\_1\_or\_later

- •

  gfdl\_1\_2

- •

  gfdl\_1\_2\_only

- •

  gfdl\_1\_2\_or\_later

- •

  gfdl\_1\_3

- •

  gfdl\_1\_3\_only

- •

  gfdl\_1\_3\_or\_later

- •

  gfdl\_niv

- •

  glide

  *Since v3.8.0.*

- •

  gpl

- •

  gpl\_1

  *Since v3.3.0.*

- •

  gpl\_1\_only

- •

  gpl\_1\_or\_later

- •

  gpl\_2

  *Since v3.3.0.*

- •

  gpl\_2\_only

- •

  gpl\_2\_or\_later

- •

  gpl\_3

  *Since v3.3.0.*

- •

  gpl\_3\_only

- •

  gpl\_3\_or\_later

- •

  gsoap

  *Since v3.7.0.*

- •

  gsoap\_1.3b

  *Since v3.7.0.*

- •

  hpnd

  *Since v3.6.0.*

- •

  hpnd\_sell

  *Since v3.6.0.*

- •

  ibm\_pibs

  *Since v3.8.0.*

- •

  icu

- •

  ijg

  *Since v3.8.0.*

- •

  imlib2

  *Since v3.8.0.*

- •

  intel

  *Since v3.5.0.*

- •

  ipa

  *Since v3.6.0.*

- •

  ipl

- •

  ipl\_1

- •

  isc

- •

  jabberpl

  *Since v3.5.0.*

- •

  json

  *Since v3.1.90.*

- •

  jython

  *Since v3.1.90.*

- •

  kevlin\_henney

  *Since v3.1.90.*

- •

  leptonica

  *Since v3.8.0.*

- •

  lgpl

- •

  lgpl\_2

- •

  lgpl\_2\_only

- •

  lgpl\_2\_or\_later

- •

  lgpl\_2\_1

- •

  lgpl\_2\_1\_only

- •

  lgpl\_2\_1\_or\_later

- •

  lgpl\_3

- •

  lgpl\_3\_only

- •

  lgpl\_3\_or\_later

- •

  lgpl\_bdwgc

  *Since v3.1.0.*

- •

  libpng

- •

  libtiff

  *Since v3.8.0.*

- •

  liliq\_p

  *Since v3.6.0.*

- •

  liliq\_p\_1\_1

  *Since v3.6.0.*

- •

  liliq\_r

  *Since v3.6.0.*

- •

  liliq\_r\_1\_1

  *Since v3.6.0.*

- •

  liliq\_r\_plus

  *Since v3.6.0.*

- •

  liliq\_r\_plus\_1\_1

  *Since v3.6.0.*

- •

  llgpl

- •

  lpl

  *Since v3.6.0.*

- •

  lpl\_1

  *Since v3.6.0.*

- •

  lpl\_1\_02

  *Since v3.6.0.*

- •

  lppl

- •

  lppl\_1

- •

  lppl\_1\_1

- •

  lppl\_1\_2

- •

  lppl\_1\_3a

- •

  lppl\_1\_3c

- •

  miros

  *Since v3.6.0.*

- •

  mit\_0

  *Since v3.6.0.*

- •

  mit\_advertising

- •

  mit\_cmu

- •

  mit\_cmu\_warranty

- •

  mit\_enna

- •

  mit\_epinions

  *Since v3.7.0.*

- •

  mit\_feh

- •

  mit\_new

- •

  mit\_new\_materials

- •

  mit\_old

- •

  mit\_oldstyle

- •

  mit\_oldstyle\_disclaimer

- •

  mit\_oldstyle\_permission

- •

  mit\_open\_group

  *Since v3.6.0.*

- •

  mit\_openvision

  *Since v3.7.0.*

- •

  mit\_osf

  *Since v3.7.0.*

- •

  mit\_unixcrypt

  *Since v3.7.0.*

- •

  mit\_whatever

  *Since v3.7.0.*

- •

  mit\_widget

  *Since v3.7.0.*

- •

  mit\_xfig

  *Since v3.7.0.*

- •

  motosoto

  *Since v3.5.0.*

- •

  mpich2

  *Since v3.8.0.*

- •

  mpl

- •

  mpl\_1

  *Since v3.1.101.*

- •

  mpl\_1\_1

  *Since v3.1.101.*

- •

  mpl\_2

  *Since v3.1.101.*

- •

  mpl\_2\_no\_copyleft\_exception

  *Since v3.8.0.*

- •

  ms\_cl

  *Since v3.8.0.*

- •

  ms\_pl

- •

  ms\_rl

- •

  mulan

  *Since v3.5.0.*

- •

  mulan\_1

  *Since v3.5.0.*

- •

  mulan\_2

  *Since v3.5.0.*

- •

  multics

  *Since v3.6.0.*

- •

  nasa

  *Since v3.6.0.*

- •

  nasa\_1\_3

  *Since v3.6.0.*

- •

  naumen

  *Since v3.6.0.*

- •

  nbpl

  *Since v3.8.0.*

- •

  nbpl\_1

  *Since v3.8.0.*

- •

  ncsa

  *Since v3.6.0.*

- •

  ngpl

- •

  nokia

  *Since v3.6.0.*

- •

  nosl

  *Since v3.8.0.*

- •

  nosl\_1

  *Since v3.8.0.*

- •

  npl

- •

  npl\_1

- •

  npl\_1\_1

- •

  nposl

  *Since v3.6.0.*

- •

  nposl\_3

  *Since v3.6.0.*

- •

  ntp

- •

  ntp\_disclaimer

- •

  oclc

- •

  oclc\_1

- •

  oclc\_2

- •

  odbl

  *Since v3.8.0.*

- •

  odbl\_1

  *Since v3.8.0.*

- •

  odc\_by

  *Since v3.8.0.*

- •

  odc\_by\_1

  *Since v3.8.0.*

- •

  ofl

- •

  ofl\_1

  *Since v3.1.101.*

- •

  ofl\_1\_no\_rfn

  *Since v3.2.0.*

- •

  ofl\_1\_rfn

  *Since v3.2.0.*

- •

  ofl\_1\_1

  *Since v3.1.101.*

- •

  ofl\_1\_1\_no\_rfn

  *Since v3.2.0.*

- •

  ofl\_1\_1\_rfn

  *Since v3.2.0.*

- •

  ogc

  *Since v3.6.0.*

- •

  ogc\_1

  *Since v3.6.0.*

- •

  ogtsl

- •

  oldap

  *Since v3.5.0.*

- •

  oldap\_1\_1

  *Since v3.5.0.*

- •

  oldap\_1\_2

  *Since v3.5.0.*

- •

  oldap\_1\_3

  *Since v3.5.0.*

- •

  oldap\_1\_4

  *Since v3.5.0.*

- •

  oldap\_2

  *Since v3.5.0.*

- •

  oldap\_2\_0\_1

  *Since v3.5.0.*

- •

  oldap\_2\_1

  *Since v3.5.0.*

- •

  oldap\_2\_2

  *Since v3.5.0.*

- •

  oldap\_2\_2\_1

  *Since v3.5.0.*

- •

  oldap\_2\_2\_2

  *Since v3.5.0.*

- •

  oldap\_2\_3

  *Since v3.5.0.*

- •

  oldap\_2\_4

  *Since v3.5.0.*

- •

  oldap\_2\_5

  *Since v3.5.0.*

- •

  oldap\_2\_6

  *Since v3.5.0.*

- •

  oldap\_2\_7

  *Since v3.5.0.*

- •

  oldap\_2\_8

  *Since v3.5.0.*

- •

  openssl

- •

  opl

  *Since v3.6.0.*

- •

  opl\_1

  *Since v3.6.0.*

- •

  oset\_pl

  *Since v3.6.0.*

- •

  oset\_pl\_2\_1

  *Since v3.6.0.*

- •

  osl

- •

  osl\_1

- •

  osl\_1\_1

- •

  osl\_2

- •

  osl\_2\_1

- •

  osl\_3

- •

  pddl

  *Since v3.8.0.*

- •

  pddl\_1

  *Since v3.8.0.*

- •

  peer\_production

  *Since v3.8.0.*

- •

  php

  *Since v3.6.0.*

- •

  php\_3

  *Since v3.6.0.*

- •

  php\_3\_01

  *Since v3.6.0.*

- •

  postgresql

- •

  psf\_2

  *Since v3.9.0.*

- •

  public\_domain

- •

  qpl

- •

  qpl\_1

- •

  rpl

- •

  rpl\_1

- •

  rpl\_1\_1

- •

  rpl\_1\_3

- •

  rpl\_1\_5

- •

  rpsl

- •

  rpsl\_1

  *Since v3.1.95.*

- •

  ruby

- •

  rscpl

- •

  sax\_pd

  *Since v3.8.0.*

- •

  sds

  *Since v3.8.0.*

- •

  sds\_1

  *Since v3.8.0.*

- •

  sgi\_b

- •

  sgi\_b\_1

  *Since v3.1.101.*

- •

  sgi\_b\_1\_1

  *Since v3.1.101.*

- •

  sgi\_b\_2

  *Since v3.1.101.*

- •

  simpl

  *Since v3.6.0.*

- •

  simpl\_2

  *Since v3.6.0.*

- •

  simple\_w3c

  *Since v3.6.0.*

- •

  simple\_w3c\_1\_1

  *Since v3.6.0.*

- •

  sissl

  *Since v3.5.0.*

- •

  sissl\_1\_1

  *Since v3.5.0.*

- •

  sissl\_1\_2

  *Since v3.5.0.*

- •

  sleepycat

  *Since v3.6.0.*

- •

  sncl

  *Since v3.8.0.*

- •

  sncl\_1\_10

  *Since v3.8.0.*

- •

  sncl\_2\_0\_1

  *Since v3.8.0.*

- •

  sncl\_2\_0\_2

  *Since v3.8.0.*

- •

  sncl\_2\_1

  *Since v3.8.0.*

- •

  sncl\_2\_3

  *Since v3.8.0.*

- •

  spl

- •

  spl\_1

- •

  ssleay

  *Since v3.2.0.*

- •

  stlport

  *Since v3.8.0.*

- •

  sugarcrm

- •

  sugarcrm\_1\_1\_3

- •

  tosl

  *Since v3.6.0.*

- •

  truecrypt

  *Since v3.8.0.*

- •

  truecrypt\_3

  *Since v3.8.0.*

- •

  ucl

  *Since v3.6.0.*

- •

  ucl\_1

  *Since v3.6.0.*

- •

  unicode\_dfs

  *Since v3.9.0.*

- •

  unicode\_dfs\_2015

  *Since v3.6.0.*

- •

  unicode\_dfs\_2016

  *Since v3.6.0.*

- •

  unicode\_strict

- •

  unicode\_tou

- •

  unlicense

- •

  upl

  *Since v3.6.0.*

- •

  upl\_1

  *Since v3.6.0.*

- •

  vsl

  *Since v3.6.0.*

- •

  vsl\_1

  *Since v3.6.0.*

- •

  vspl

  *Since v3.8.0.*

- •

  w3c

  *Since v3.6.0.*

- •

  w3c\_19980519

  *Since v3.6.0.*

- •

  w3c\_19980720

  *Since v3.6.0.*

- •

  w3c\_20021231

  *Since v3.6.0.*

- •

  w3c\_20150513

  *Since v3.6.0.*

- •

  watcom

- •

  watcom\_1

- •

  wordnet

  *Since v3.8.0.*

- •

  wtfpl

- •

  wtfpl\_1

  *Since v3.1.95.*

- •

  wtfpl\_2

  *Since v3.1.95.*

- •

  wtfnmfpl

  *Since v3.1.95.*

- •

  wtfnmfpl\_1

  *Since v3.1.95.*

- •

  x11

  *Since v3.6.0.*

- •

  xfree86

  *Since v3.8.0.*

- •

  xfree86\_1\_1

  *Since v3.8.0.*

- •

  xnet

  *Since v3.6.0.*

- •

  ypl

  *Since v3.8.0.*

- •

  ypl\_1

  *Since v3.8.0.*

- •

  ypl\_1\_1

  *Since v3.8.0.*

- •

  zed

  *Since v3.8.0.*

- •

  zend

  *Since v3.8.0.*

- •

  zend\_2

  *Since v3.8.0.*

- •

  zimbra

  *Since v3.8.0.*

- •

  zimbra\_1\_3

  *Since v3.8.0.*

- •

  zimbra\_1\_4

- •

  zlib

- •

  zlib\_acknowledgement

- •

  zpl

  *Since v3.1.102.*

- •

  zpl\_1

  *Since v3.1.102.*

- •

  zpl\_1\_1

  *Since v3.1.102.*

- •

  zpl\_2

  *Since v3.1.102.*

- •

  zpl\_2\_1

  *Since v3.1.102.*

### License combinations

Patterns each covering a combination of multiple licenses.

Each of these patterns has the tag  **type:combo** .

- •

  net\_snmp

  *Since v3.6.0.*

- •

  perl

- •

  python\_2

  *Since v3.9.0.*

### License groups

Patterns each covering either of multiple licenses.

Each of these patterns has the tag  **type:group** .

- •

  bsd

- •

  cc

  *Since v3.6.0.*

- •

  gnu

- •

  mit

## STRUCTURE

The regexp patterns follows the DefHash specification, and more specifically the structure of Regexp::Pattern, defining access to one pattern per DefHash object, as `"pat"`.

Additionally, (sub)patterns are available in plaintext form, as `"pat.alt.*"`.

### SUBJECT

Each pattern targets one or more subjects, i.e. ways to directly or indirectly represent a license.

Beware that not all pattern objects fully cover all subjects.

- trait

  Distinguishing trait or feature expressed in licensing strings, e.g. an advertising clause or granting "...or any later version."

  Coverage for this subject is currently rather weak.

- name

  Distinguishing name, e.g. usable in license grant.

- grant

  Text granting the license.

- license

  Text containing licensing terms.

  Texts containing both license grant and licensing terms (e.g. BSD- and MIT-style licensing) may be classified as either subject grant or subject license. This may change, as needs for distinction is better understood.

### SCOPE

Each pattern can process material within some scope, i.e. a certain sample size of the full subject.

As an example, \<https://codesearch.debian.net/\> use line-based processing, where patterns spanning multiple lines are not applicable.

- line

  Pattern typically found within a single line. Typically this means less than 70 characters within scope.

- sentence

  Pattern matching within a sentence.

  May span multiple lines, but not across multiple sentences. Typically this means no full-stop or colon within scope.

- paragraph

  Pattern matching distinguishing paragraph.

  May span multiple sentences, but not multiple paragraphs. Typically this means no newline within scope.

- section

  Pattern matching distinguishing section.

  May span multiple paragraphs, but not multiple sections. Typically this means blank line within scope.

- multisection

  Pattern may span multiple sections.

### OBSOLETE OBJECTS

License objects obsoleted by improved coverage of other objects, and provided only as dummy objects.

- •

  or\_at\_option

  *Since v3.11.0.*

- •

  version\_later\_paragraph

  *Since v3.11.0.*

- •

  version\_later\_postfix

  *Since v3.11.0.*

- •

  version\_number

  *Since v3.11.0.*

- •

  version\_number\_suffix

  *Since v3.11.0.*

- •

  python

  *Since v3.9.0.*

  Replaced by "psf\_2" and "python\_2".

- •

  wordnet\_3

  *Since v3.9.0.*

  Replaced by "wordnet".

### TAGS

Pattern defhashes optionally includes tags, which may help in selecting multiple related patterns.

Tags are hierarchical, with `":"` as separator, and may be extended without notice. Therefore take care to permit sub-parts when tag-matching, e.g. using a regex like `" /\Asome:tag(?:\z|:)/ "`.

- •

  family:bsd

- •

  family:cc

- •

  family:gpl

- •

  family:mit

- •

  family:zlib

  Pattern covers a license part of a family of licenses.

- •

  license:contains:grant:\*

  License mentions a preferred form for granting the license.

  This implies that license is commonly granted by use of a different (typically far shorter) text.

  Fourth part (optional) is the key to corresponding license pattern, for a grant belonging to a different license (when omitted then a grant for same license is assumed).

- •

  license:contains:license:\*

  License contains another license.

  Wildcard is the key to corresponding license pattern.

- •

  license:contains:name:\*

  License mentions name of another license.

- •

  license:includes:license:\*

  License references coverage of another license.

  Wildcard is the key to corresponding license pattern.

- •

  license:is:grant

  License is commonly granted by stating the whole license.

- •

  license:published:\*

  License grant may include an "as published by..." reference.

  Third part is the key to corresponding trait pattern.

- •

  type:trait:publisher:\*

  Pattern covers an "as published by ..." license grant phrase.

  Third part (optional) is the key to corresponding license pattern.

- •

  type:usage:\*:\*

  Pattern covers a specific usage of a license.

  Third part is the key of the corresponding non-usage-specific pattern.

  Fourth part is the key of the corresponding usage trait pattern.

- •

  type:combo

  Pattern covers a combination of multiple licenses.

- •

  type:group

  Pattern covers either of multiple licenses.

- •

  type:singleversion:\*

  Pattern covers a specific version of a license.

  Third part is the key of the corresponding non-version-specific pattern.

- •

  type:trait

  Pattern covers a single trait occuring in licenses.

- •

  type:unversioned

  Pattern covers a license without versioning scheme.

- •

  type:versioned:decimal

  Pattern covers a license using decimal number versioning scheme.

## EXAMPLES

### Browse patterns

The "official" way to browse patterns is using App::RegexpPatternUtils:

```
    show-regexp-pattern-module --page-result -- License
```

Unfortunately, App::RegexpPatternUtils has a deep dependency tree. An alternative is to use Data::Printer and `"less"`:

```
    perl -CS -MRegexp::Pattern::License -MDDP -e 'p %Regexp::Pattern::License::RE, fulldump => 1, output => stdout' | less -RS
```

## AUTHOR

Jonas Smedegaard `"<dr@jones.dk>"`

## COPYRIGHT AND LICENSE

```
  Copyright © 2016-2021 Jonas Smedegaard
  Copyright © 2017-2021 Purism SPC
```

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see \<https://www.gnu.org/licenses/\>.
