English

English (language)

Second-Level Reference Label Generation Rules, 25 October 2024 Current

Summary

Version3 — Second Level Reference LGR
Date
Tag en (English)
Unicode11.0.0
Source filelgr-second-level-english-language-25oct24-en.xml (33.3kb)

This ruleset is integrated into the Common (integrated set) ruleset of this release.

Description

INSTRUCTIONS

  • These instructions cover how to adopt an LGR based on this reference LGR for a given zone and how to prepare the file for deposit in the IANA Repository of IDN Practices.
  • As described the IANA procedure (https://www.iana.org/help/idn-repository-procedure) an LGR MUST contain the following elements in its header:
    • Script or Language Designator (see below for guidance)
    • Version Number (this must increase with each amendment to the LGR, even if the updates are limited to the header itself)
    • Effective Date (the date at which the policy becomes applicable in operational use)
    • Registry Contact Details (contact name, email address, and/or phone number)
  • The following information is optional:
    • Document creation date
    • Applicable Domain(s)
    • Changes made to the Reference LGR before adopting

Please add or modify the following items in the XML source code for this file before depositing the document in the IANA Repository. (https://www.iana.org/domains/idn-tables)

Meta Data

Note: version numbers start at 1. RFC 7940 recommends using simple integers. The version comment is optional, please replace or delete the default comment. Version comments may be used by some tools as part of the page header.

<version comment="[Please replace (or delete) the optional comment]">[Please fill in version number, starting at 1]</version>

<date>[Please fill in with publication date, in YYYY-MM-DD format]</date>

<validity-start>[Please fill in effective date, in YYYY-MM-DD format]</validity-start>

Note: the scope element may be repeated, so that the same document can serve for multiple domains.

<scope type="domain">[Please provide, in ".domain" format]</scope>

Registry Contact Information:

Please fill in the Registry Contact Details.

Change History

If you made technical modifications to the LGR, please summarize them in the Change History (and also note the details in the appropriate section of the description).

PLEASE DELETE THESE INSTRUCTIONS BEFORE DEPOSITING THE DOCUMENT

Read the rest of the description Show less

Registry Contact Details

  • Contact Name: [Please fill in Contact Name]
  • Email address: [Please fill in Email address]
  • Phone Number: [Please fill in optional Phone Number]

Label Generation Rules for English

Overview

This document specifies a set of Label Generation Rules (LGR) for the English language using a language-specific repertoire for the second level domain or domains identified above. The format of this file follows [RFC 7940]. This LGR is adapted from the “Reference LGR for the Second Level for the English Language” [Ref-LGR-en-Latn], for details, see Change History below.

Standalone LGR: This LGR is designed to be used in a zone that does not cater to IDNs other than those valid under this LGR. This LGR lacks features that would allow its use in the context of another LGR in the same zone, and it may contain other features incompatible with such use.

Repertoire

All references converge on 26 Latin code points as minimal requirement for English. This requirement can be met with non-IDN labels. However, a limited number of accented letters and other forms are in reasonably prevalent use, whether for spelling loan words or names. Their use is optional in the orthography, and they are treated as “extended” code points here, which can be made available as described below.

The range of ccTLDs with English as a native language is extensive. However, their requirements for letters outside the standard alphabet are expected to be affected by undocumented local factors making them unreliable guides for IDN extension.

Excluded code points

Letters documented in some references but not included:

  • U+00E3 LATIN SMALL LETTER A WITH TILDE

  • U+00E5 LATIN SMALL LETTER A WITH RING ABOVE

  • U+00EC LATIN SMALL LETTER I WITH GRAVE

  • U+00F0 LATIN SMALL LETTER ETH

  • U+00F2 LATIN SMALL LETTER O WITH GRAVE

  • U+00F8 LATIN SMALL LETTER O WITH STROKE

  • U+00F9 LATIN SMALL LETTER U WITH GRAVE

  • U+00FE LATIN SMALL LETTER THORN

  • U+00FF LATIN SMALL LETTER Y WITH DIAERESIS

  • U+0101 LATIN SMALL LETTER A WITH MACRON

  • U+0103 LATIN SMALL LETTER A WITH BREVE

  • U+0113 LATIN SMALL LETTER E WITH MACRON

  • U+0115 LATIN SMALL LETTER E WITH BREVE

  • U+012B LATIN SMALL LETTER I WITH MACRON

  • U+012D LATIN SMALL LETTER I WITH BREVE

  • U+014D LATIN SMALL LETTER O WITH MACRON

  • U+014F LATIN SMALL LETTER O WITH BREVE

  • U+0161 LATIN SMALL LETTER S WITH CARON

  • U+016B LATIN SMALL LETTER U WITH MACRON

  • U+016D LATIN SMALL LETTER U WITH BREVE

  • U+01BF LATIN LETTER WYNN

  • U+021D LATIN SMALL LETTER YOGH

  • U+1E13 LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW

  • U+1E3D LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW

  • U+1E45 LATIN SMALL LETTER N WITH DOT ABOVE

  • U+1E4B LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW

  • U+1E71 LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW

Extended code points

A number of letters not considered essential to writing the core vocabulary of the language are nevertheless in common use. Where they have not been added to the core repertoire, they are flagged as “extended-cp” in the table of code points. A context rule is provided that by default will prohibit labels with such extended code points. To support extended single code points or code point sequences, delete the context “extended-cp” from their repertoire definition.

As the native vocabulary of English is commonly written with only the core alphabet of 26 Basic Latin letters, the main rationale for developing an LGR that covers IDNs is to be able to write loan words. This might argue for including the extensions by default in the LGR. However, there is no clear consensus on what constitutes a core set of extensions, and there are regional differences in their use. As a result, code points with multiple sources have been marked as extended, while code points with fewer sources are listed above in the excluded set. The exception are U+00ED LATIN SMALL LETTER I WITH ACUTE and U+00FA LATIN SMALL LETTER U WITH ACUTE which were added to the extended set because of their use in Irish names.

Variants

Historically, no variants have been defined between any of the ASCII characters forming the repertoire for non-IDN labels. However, for IDN labels, variants may exist between ASCII and other characters. This LGR defines the variants described here for the extended code points, but they have no effect unless those characters are enabled.

In English usage the diaeresis, in particular, is not consistently employed and therefore something like a free spelling variant that is not consciously registered by most users. In fanciful usage, it is even treated like a decoration. Omitting it usually does not change the meaning of a word.

By default, this LGR treats all forms of a label with or without the diaeresis as optionally-enabled variants which would prevent them from being delegated to two different entities simultaneously. In order to restrict the number of allocatable variants, only one accented form can be allocated alongside the non-accented form. If the desired accented form has been applied for, the non-accented form would then be a variant that is allocatable to the original applicant. This covers the most common scenario of a single “correct” accented form, plus a non-accented “fallback”.

For example, this means that if a label like “naïve” is applied for, the label “naive” would be allocatable; alternatively, if the label “naive” is applied for, the label “naïve” would be blocked.

This extension to in-language variants is not compatible with using this LGR in a zone with another LGR and using the Common LGR to process conflicts between labels from multiple LGRs as described in Section 3 “Use of Multiple Reference LGRs in the Same Zone” in [Level-2-Overview].

No other variants are applicable when using the LGR in a standalone fashion.

Variants Limited to Standalone Use This LGR is not intended for use with LGRs for other languages or scripts in the same zone. The LGR does not define any “blocked” variants with code points in other languages or script that would prevent malicious registration of duplicate labels perceived as the same by users. As a result of transitivity, the scheme of internal variants defined here would have to be imposed on other LGRs that contain copies or variants of the affected code points.

If it is desired to support multiple languages in the same zone, the preferred method would be to support the corresponding script LGRs, which cater to the use of multiple languages, and are designed with the possibility of concurrent use in mind.

Optionally-enabled Variants

Certain variants in this LGR are defined as optionally enabled. They are using the context rule “enabled”. This context rule matches any label (it always succeeds). Any variant marked with when=“enabled” (in the XML file) is in force, while marking it with not-when=“enabled” causes the variant definition to be ignored in processing. This allows these variants to be disabled, for example, to better match legacy practice for a given zone.

Care must be taken to enable or disable variants so that all variant mappings to and from the same code point are either enabled or disabled at the same time, ensuring that all enabled variant mappings remain symmetric and transitive.

The specification of variants in this LGR follows the guidelines in [RFC 8228].

Character Classes

This LGR does not define named character classes.

Rules

Common Rules

The LGR includes the rules and actions to implement the following restrictions, some of which are mandated by the IDNA protocol. They are marked with ⍟ and included here by default. A special context rule enables optional variants by default.

  • Hyphen Restrictions — restrictions on the allowable placement of hyphens (no leading/ending hyphen and no hyphen in positions 3 and 4). These restrictions are described in Section 4.2.3.1 of RFC 5891 [150]. They are implemented here as context rule on U+002D (-) HYPHEN-MINUS.
  • Leading Combining Marks — restrictions on the allowable placement of combining marks (no leading combining mark). This rule is described in Section 4.2.3.2 of RFC 5891 [150].
  • Enabled — matches any label. Used as variant context rule; any variant with when="enabled" in the xml will be active, while any with not-when="enabled" will be inactive.

Actions

This LGR includes the default actions for LGRs as well as the action needed to invalidate labels with misplaced combining marks. They are marked with ⍟. For a description see [RFC 7940].

Because this LGR defines allocatable fallback variants the following default actions are applicable.

  • blocked — a variant label containing a blocked variant will receive a disposition of “blocked”.
  • r-original — a label containing one or more of this reflexive variant type and no others represents an original label and receives a disposition of “valid”.
  • fallback — a label containing one or more of these variant types and no others represents a label that contains only fallback variants and receives a disposition of “allocatable”.
  • fallback plus other — any label remaining containing both this variant type and any others receives a disposition of “blocked”.

These actions resolve as “allocatable” any label where all variants are of type “fallback”, and as “valid” any label where all variants are of type “r-original”. Labels with a mix of variant types are resolved as “blocked”.

To account for original code points in a permuted variant, reflexive variant mappings with an “r-” prefix are used. (See [RFC 7940]). In particular, the mapping type “r-original” is given to any code point that has a fallback mapping, but that appears in its non-fallback form in the original label, and thus “maps to itself”.

Default actions that are triggered by the LGR-specific variant types described above limit the “allocatable” variant labels to those variants resulting from removal of the diaeresis, while disallowing mixed use of variants with or without diaeresis, except as in the original applied-for label. The use of such variants is "optionally_enabled_variants">optionally enabled in this LGR.

Note that the mapping types for variants are not symmetric: they depend on which code point is considered the source or the target in a given mapping. As specified in [RFC 7940], when mapping types are evaluated code points in a label that are unchanged use the type of their “reflexive” mapping. Per [RFC 7940] the actions are always applied one after the other, and the evaluation stops at the first action that assigns a disposition to a given label.

Methodology and Contributors

The LGR in this document has been adapted from the corresponding Reference LGR for the Second Level. The Second Level Reference LGR for the English Language was developed by Michel Suignard and Asmus Freytag, including input by Michael Everson, Nicholas Ostler, and Wil Tan, and based on multiple open public consultations.

Changes from Version Dated 10 October 2016

Language tag has been updated.

Changes from Version Dated 18 May 2021

Unicode Version has been updated.

Based on further review in connections with updates to the reference LGR for the French language [Ref-LGR-fr], the addition of fallback variants between letters with diaeresis and their ASCII base letters appears indicated. These variants are enabled here by default, but are marked as “enabled” to allow registries to deactivate them if required.

Changes from Version Dated 25 October 2024

Adopted from the Second Level Reference LGR for the English Language [Ref-LGR-en-Latn] without normative changes.

References

General references for the language:

  • Allen, R. E., ed. 1990. The concise Oxford dictionary of current English. 8th ed. Oxford: Clarendon Press. ISBN 0-19-861200-1

  • Bringhurst, Robert. 1997. The elements of typographic style. 2nd ed. Point- Roberts, WA; Vancouver, BC: Hartley & Marks. ISBN 0-88179-133-4

  • Wikipedia: “English alphabet”, https://en.wikipedia.org/wiki/English_alphabet

In addition, the following references were consulted:

[Level-2-Overview]
Internet Corporation for Assigned Names and Numbers, (ICANN),“Reference Label Generation Rules (LGR) for the Second Level: Overview and Summary” (PDF), (Los Angeles, California: ICANN, 25 October 2024), https://www.icann.org/en/system/files/files/level2-lgr-overview-summary-25oct24-en.pdf
[Ref-LGR-en-Latn]
ICANN, Second Level Reference Label Generation Rules for the English Language (en-Latn), 25 October 2024 (XML) https://www.icann.org/sites/default/files/packages/lgr/lgr-second-level-english-language-25oct24-en.xml non-normative HTML presentation: https://www.icann.org/sites/default/files/packages/lgr/lgr-second-level-english-language-25oct24-en.html
[Ref-LGR-fr]
ICANN, Second Level Reference Label Generation Rules for the French Language (fr), 25 October 2024 (XML) https://www.icann.org/sites/default/files/packages/lgr/lgr-second-level-french-language-25oct24-en.xml non-normative HTML presentation: https://www.icann.org/sites/default/files/packages/lgr/lgr-second-level-french-language-25oct24-en.html
[RFC 7940]
Davies, K. and A. Freytag, “Representing Label Generation Rulesets Using XML”, RFC 7940, August 2016, https://www.rfc-editor.org/info/rfc7940
[RFC 8228]
A. Freytag, “Guidance on Designing Label Generation Rulesets (LGRs) Supporting Variant Labels”, RFC 8228, August 2017, https://www.rfc-editor.org/info/rfc8228
[Unicode 11.0.0]
The Unicode Consortium. The Unicode Standard, Version 11.0.0, (Mountain View, CA: The Unicode Consortium, 2018. ISBN 978-1-936213-19-1) https://www.unicode.org/versions/Unicode11.0.0/

In the listing of the repertoire by code point, references starting from [0] refer to the version of the Unicode Standard in which the corresponding code point was initially encoded. Other references (starting from [100]) document usage of code points. Entries in the table may have multiple source reference values. In the listing of whole label evaluation and context rules, reference [150] indicates the source for common rules. For more details, see the Table of References below.

Repertoire

Glyph Code point Tags and context Variants
- U+002D HYPHEN-MINUS 0 100 301 401 601 HYPHEN-MINUS Tagsc:Zyyy Contextnot hyphen-minus-disallowed
0 U+0030 DIGIT ZERO 0 100 301 401 601 DIGIT ZERO; TagCommon-digitTagsc:Zyyy
1 U+0031 DIGIT ONE 0 100 301 401 601 DIGIT ONE; TagCommon-digitTagsc:Zyyy
2 U+0032 DIGIT TWO 0 100 301 401 601 DIGIT TWO; TagCommon-digitTagsc:Zyyy
3 U+0033 DIGIT THREE 0 100 301 401 601 DIGIT THREE; TagCommon-digitTagsc:Zyyy
4 U+0034 DIGIT FOUR 0 100 301 401 601 DIGIT FOUR; TagCommon-digitTagsc:Zyyy
5 U+0035 DIGIT FIVE 0 100 301 401 601 DIGIT FIVE; TagCommon-digitTagsc:Zyyy
6 U+0036 DIGIT SIX 0 100 301 401 601 DIGIT SIX; TagCommon-digitTagsc:Zyyy
7 U+0037 DIGIT SEVEN 0 100 301 401 601 DIGIT SEVEN; TagCommon-digitTagsc:Zyyy
8 U+0038 DIGIT EIGHT 0 100 301 401 601 DIGIT EIGHT; TagCommon-digitTagsc:Zyyy
9 U+0039 DIGIT NINE 0 100 301 401 601 DIGIT NINE; TagCommon-digitTagsc:Zyyy
a U+0061 LATIN SMALL LETTER A 0 100 301 401 601 LATIN SMALL LETTER A Tagsc:Latn ä U+00E4 blocked Spelling variant in English
b U+0062 LATIN SMALL LETTER B 0 100 301 401 601 LATIN SMALL LETTER B Tagsc:Latn
c U+0063 LATIN SMALL LETTER C 0 100 301 401 601 LATIN SMALL LETTER C Tagsc:Latn
d U+0064 LATIN SMALL LETTER D 0 100 301 401 601 LATIN SMALL LETTER D Tagsc:Latn
e U+0065 LATIN SMALL LETTER E 0 100 301 401 601 LATIN SMALL LETTER E Tagsc:Latn ë U+00EB blocked Spelling variant in English
f U+0066 LATIN SMALL LETTER F 0 100 301 401 601 LATIN SMALL LETTER F Tagsc:Latn
g U+0067 LATIN SMALL LETTER G 0 100 301 401 601 LATIN SMALL LETTER G Tagsc:Latn
h U+0068 LATIN SMALL LETTER H 0 100 301 401 601 LATIN SMALL LETTER H Tagsc:Latn
i U+0069 LATIN SMALL LETTER I 0 100 301 401 601 LATIN SMALL LETTER I Tagsc:Latn ï U+00EF blocked Spelling variant in English
j U+006A LATIN SMALL LETTER J 0 100 301 401 601 LATIN SMALL LETTER J Tagsc:Latn
k U+006B LATIN SMALL LETTER K 0 100 301 401 601 LATIN SMALL LETTER K Tagsc:Latn
l U+006C LATIN SMALL LETTER L 0 100 301 401 601 LATIN SMALL LETTER L Tagsc:Latn
m U+006D LATIN SMALL LETTER M 0 100 301 401 601 LATIN SMALL LETTER M Tagsc:Latn
n U+006E LATIN SMALL LETTER N 0 100 301 401 601 LATIN SMALL LETTER N Tagsc:Latn
o U+006F LATIN SMALL LETTER O 0 100 301 401 601 LATIN SMALL LETTER O Tagsc:Latn ö U+00F6 blocked Spelling variant in English
p U+0070 LATIN SMALL LETTER P 0 100 301 401 601 LATIN SMALL LETTER P Tagsc:Latn
q U+0071 LATIN SMALL LETTER Q 0 100 301 401 601 LATIN SMALL LETTER Q Tagsc:Latn
r U+0072 LATIN SMALL LETTER R 0 100 301 401 601 LATIN SMALL LETTER R Tagsc:Latn
s U+0073 LATIN SMALL LETTER S 0 100 301 401 601 LATIN SMALL LETTER S Tagsc:Latn
t U+0074 LATIN SMALL LETTER T 0 100 301 401 601 LATIN SMALL LETTER T Tagsc:Latn
u U+0075 LATIN SMALL LETTER U 0 100 301 401 601 LATIN SMALL LETTER U Tagsc:Latn ü U+00FC blocked Spelling variant in English
v U+0076 LATIN SMALL LETTER V 0 100 301 401 601 LATIN SMALL LETTER V Tagsc:Latn
w U+0077 LATIN SMALL LETTER W 0 100 301 401 601 LATIN SMALL LETTER W Tagsc:Latn
x U+0078 LATIN SMALL LETTER X 0 100 301 401 601 LATIN SMALL LETTER X Tagsc:Latn
y U+0079 LATIN SMALL LETTER Y 0 100 301 401 601 LATIN SMALL LETTER Y Tagsc:Latn
z U+007A LATIN SMALL LETTER Z 0 100 301 401 601 LATIN SMALL LETTER Z Tagsc:Latn
à U+00E0 LATIN SMALL LETTER A WITH GRAVE 0 301 402 604 LATIN SMALL LETTER A WITH GRAVE Tagsc:Latn Contextextended-cp
á U+00E1 LATIN SMALL LETTER A WITH ACUTE 0 402 604 LATIN SMALL LETTER A WITH ACUTE Tagsc:Latn Contextextended-cp
â U+00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX 0 402 604 LATIN SMALL LETTER A WITH CIRCUMFLEX Tagsc:Latn Contextextended-cp
ä U+00E4 LATIN SMALL LETTER A WITH DIAERESIS 0 402 604 LATIN SMALL LETTER A WITH DIAERESIS Tagsc:Latn Contextextended-cp a U+0061 fallback Spelling variant in English, base form
æ U+00E6 LATIN SMALL LETTER AE 0 301 402 604 LATIN SMALL LETTER AE Tagsc:Latn Contextextended-cp
ç U+00E7 LATIN SMALL LETTER C WITH CEDILLA 0 100 301 402 604 LATIN SMALL LETTER C WITH CEDILLA Tagsc:Latn Contextextended-cp
è U+00E8 LATIN SMALL LETTER E WITH GRAVE 0 200 301 402 604 LATIN SMALL LETTER E WITH GRAVE Tagsc:Latn Contextextended-cp
é U+00E9 LATIN SMALL LETTER E WITH ACUTE 0 100 200 301 402 604 LATIN SMALL LETTER E WITH ACUTE Tagsc:Latn Contextextended-cp
ê U+00EA LATIN SMALL LETTER E WITH CIRCUMFLEX 0 200 301 402 604 LATIN SMALL LETTER E WITH CIRCUMFLEX Tagsc:Latn Contextextended-cp
ë U+00EB LATIN SMALL LETTER E WITH DIAERESIS 0 100 200 301 402 604 LATIN SMALL LETTER E WITH DIAERESIS Tagsc:Latn Contextextended-cp e U+0065 fallback Spelling variant in English, base form
í U+00ED LATIN SMALL LETTER I WITH ACUTE 0 402 LATIN SMALL LETTER I WITH ACUTE Tagsc:Latn Contextextended-cp
î U+00EE LATIN SMALL LETTER I WITH CIRCUMFLEX 0 402 604 LATIN SMALL LETTER I WITH CIRCUMFLEX Tagsc:Latn Contextextended-cp
ï U+00EF LATIN SMALL LETTER I WITH DIAERESIS 0 100 301 402 604 LATIN SMALL LETTER I WITH DIAERESIS Tagsc:Latn Contextextended-cp i U+0069 fallback Spelling variant in English, base form
ñ U+00F1 LATIN SMALL LETTER N WITH TILDE 0 301 402 LATIN SMALL LETTER N WITH TILDE Tagsc:Latn Contextextended-cp
ó U+00F3 LATIN SMALL LETTER O WITH ACUTE 0 402 604 LATIN SMALL LETTER O WITH ACUTE Tagsc:Latn Contextextended-cp
ô U+00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX 0 100 301 402 604 LATIN SMALL LETTER O WITH CIRCUMFLEX Tagsc:Latn Contextextended-cp
ö U+00F6 LATIN SMALL LETTER O WITH DIAERESIS 0 100 301 402 604 LATIN SMALL LETTER O WITH DIAERESIS Tagsc:Latn Contextextended-cp o U+006F fallback Spelling variant in English, base form
ú U+00FA LATIN SMALL LETTER U WITH ACUTE 0 402 LATIN SMALL LETTER U WITH ACUTE Tagsc:Latn Contextextended-cp
û U+00FB LATIN SMALL LETTER U WITH CIRCUMFLEX 0 402 604 LATIN SMALL LETTER U WITH CIRCUMFLEX Tagsc:Latn Contextextended-cp
ü U+00FC LATIN SMALL LETTER U WITH DIAERESIS 0 402 604 LATIN SMALL LETTER U WITH DIAERESIS Tagsc:Latn Contextextended-cp u U+0075 fallback Spelling variant in English, base form
œ U+0153 LATIN SMALL LIGATURE OE 0 301 402 604 LATIN SMALL LIGATURE OE Tagsc:Latn Contextextended-cp

Identity mappings, where a code point is declared a variant of itself, are required by RFC 7940 and are omitted here. 15 variant records are declared in total.

Variants

Code points grouped into sets of mutual variants. Every member of a set produces the same set of variant labels, so a registration of one has implications for all the others. Sets of a single member are omitted, as are the identity mappings RFC 7940 requires each member to declare.

5 variant sets, containing 10 variants.

Rules

Conditions evaluated against a whole label, or against the context around a single code point. The notation borrows from regular expressions: ^ and $ anchor to the start and end of a label, . matches any code point, (?= ) and (?<= ) look ahead and behind, and * and + repeat. Two symbols are specific to rulesets: ◆ is the code point being tested, and ⟨name⟩ refers to another rule.

leading-combining-mark MSR default 150

RFC 5891 restrictions on placement of combining marks

^ ({gc:Mn} ∪ {gc:Mc})
Structure
  • ^ start
  • ({gc:Mn} ∪ {gc:Mc}) union
    • {gc:Mn} class
    • {gc:Mc} class
Referenced by 1 definition
  • action 1 (invalid)

hyphen-minus-disallowed MSR default 150

RFC 5891 restrictions on placement of U+002D HYPHEN-MINUS

( ( (?<= ^ ) ◆ ) │ ( ◆ (?= $ ) ) │ ( (?<= ^ . . U+002D ) ◆ ) )
Structure
  • ( ( (?<= ^ ) ◆ ) │ ( ◆ (?= $ ) ) │ ( (?<= ^ . . U+002D ) ◆ ) ) choice
    • (?<= ^ ) ◆ rule no leading hyphen
      • (?<= ^ ) look-behind
        • ^ start
      • ◆ anchor
    • ◆ (?= $ ) rule no trailing hyphen
      • ◆ anchor
      • (?= $ ) look-ahead
        • $ end
    • (?<= ^ . . U+002D ) ◆ rule no consecutive hyphens in third and fourth
      • (?<= ^ . . U+002D ) look-behind
        • ^ start
        • . any
        • . any
        • U+002D char hyphen-minus
      • ◆ anchor
Referenced by 1 definition
  • negative context of U+002D

extended-cp MSR default

context to gate off code points from the extended range, matches no label

^ $
Referenced by 21 definitions
  • context of U+00E0
  • context of U+00E1
  • context of U+00E2
  • context of U+00E4
  • context of U+00E6
  • context of U+00E7
  • context of U+00E8
  • context of U+00E9
  • context of U+00EA
  • context of U+00EB
  • context of U+00ED
  • context of U+00EE
  • and 9 more

enabled MSR default

use as when-context to enable: matches any label

^ .* $
Referenced by 15 definitions
  • variant condition on U+0061
  • variant condition on U+0065
  • variant condition on U+0069
  • variant condition on U+006F
  • variant condition on U+0075
  • variant condition on U+00E4
  • variant condition on U+00E4
  • variant condition on U+00EB
  • variant condition on U+00EB
  • variant condition on U+00EF
  • variant condition on U+00EF
  • variant condition on U+00F6
  • and 3 more

Actions

Actions are evaluated in the order shown. The first action whose conditions match determines the disposition of the label.

Actions in precedence order
# Disposition Conditions
1 invalid label matches leading-combining-mark labels with leading combining marks are invalid MSR default
2 blocked any variant is blocked any variant label containing blocked variants is blocked MSR default
3 allocatable all variants are allocatable variant labels with all variants allocatable are allocatable MSR default
4 allocatable all variants are fallback any label with all variants of type fallback is allocatable MSR default
5 blocked any variant is fallback any variant label with a mix of variant forms is blocked MSR default
6 valid all variants are r-original any remaining label containing only original code points is valid MSR default
7 valid any label default catch all (default action) MSR default

References

RefSource
0 The Unicode Standard, Version 1.1
Code points cited were originally encoded in Unicode Version 1.1
100 Internetstiftelsen i Sverige (IIS), “IDN Reference table for English language” https://github.com/dotse/IDN-ref-tables/blob/master/language-tables/english-lang-ref-table.txt accessed on 2016-10-16
150 RFC 5891, Internationalized Domain Names in Applications (IDNA): Protocol https://tools.ietf.org/html/rfc5891
200 ISO/IEC 6937 Third Ed. 2001-12-17- Information technology — Coded graphic character set for text communication — Latin alphabet: Table D.1 (p 35) Use of Latin alphabetic characters.
This table lists only the characters outside the set a-z
301 Everson, Michael. The Alphabets of Europe: “English” https://www.evertype.com/alphabets/english.pdf
Code points cited form the standard set
302 Everson, Michael. The Alphabets of Europe: “English” https://www.evertype.com/alphabets/english.pdf
Code points cited are from an extended set
304 Everson, Michael. The Alphabets of Europe: “English” https://www.evertype.com/alphabets/english.pdf
Code points cited are rare or archaic
401 The Unicode Consortium, Common Locale Data Repository (CLDR) Version 28 (2015-09-16) - Locale Data Summary forEnglish [en] https://www.unicode.org/cldr/charts/28/summary/en.html
Code points cited are from the set of Main Letters
402 The Unicode Consortium, Common Locale Data Repository (CLDR) Version 28 (2015-09-16) - Locale Data Summary forEnglish [en] https://www.unicode.org/cldr/charts/28/summary/en.html
Code points cited are from the Auxiliary set
403 The Unicode Consortium, Common Locale Data Repository (CLDR) Version 28 (2015-09-16) - Locale Data Summary for English [en] https://www.unicode.org/cldr/charts/28/summary/en.html
Code points cited are from an extension for locale EN_ZA
601 Wikipedia: “Latin Alphabets” https://en.wikipedia.org/wiki/Latin_alphabets - accessed 2015-10-31
According to this reference, the alphabet is listed as using the full basic set A-Z
604 Wikipedia: “ Latin Alphabets” in https://en.wikipedia.org/wiki/Latin_alphabets accessed 2015-10-31
The table only lists code points beyond A-Z
605 Wikipedia: “English orthography” https://en.wikipedia.org/wiki/English_orthography
Code points cited are listed as in extended use based on use of accent in loan words