// Code generated by scripts/gen_rx.rb from lib/asciidoctor/*.rb. DO NOT EDIT.

///|
#warnings("-unused_value")
let admonition_paragraph_rx : @regex.Regex = @regex.re(
  "^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):[ \\t]+",
)

///|
#warnings("-unused_value")
let any_list_rx : @regex.Regex = @regex.re(
  "^(?:[ \\t]*(?:-|\\*\\**|\\.\\.*|\\u2022|\\d+\\.|[a-zA-Z]\\.|[IVXivx]+\\))[ \\t]|(?!//[^/])[ \\t]*[^ \\t].*?(?::::{0,2}|;;)(?:$|[ \\t])|<(?:\\d+|\\.)>[ \\t])",
)

///|
#warnings("-unused_value")
let attribute_entry_pass_macro_rx : @regex.Regex = @regex.re(
  "\\Apass:([a-z]+(?:,[a-z-]+)*)?\\[(.*)\\]\\Z",
  flags="m",
)

///|
#warnings("-unused_value")
let attribute_entry_rx : @regex.Regex = @regex.re(
  "^:(!?\\p{Word}[^:]*):(?:[ \\t]+(.*))?$",
)

///|
#warnings("-unused_value")
let attribute_reference_rx : @regex.Regex = @regex.re(
  "(\\\\)?\\{(\\p{Word}[\\p{Word}-]*|(set|counter2?):.+?)(\\\\)?\\}",
)

///|
#warnings("-unused_value")
let atx_section_title_rx : @regex.Regex = @regex.re(
  "^(=={0,5})[ \\t]+(.+?)(?:[ \\t]+\\1)?$",
)

///|
#warnings("-unused_value")
let author_delimiter_rx : @regex.Regex = @regex.re(";(?: |$)")

///|
#warnings("-unused_value")
let author_info_line_rx : @regex.Regex = @regex.re(
  "^(\\p{Word}[\\p{Word}\\-'.]*)(?: +(\\p{Word}[\\p{Word}\\-'.]*))?(?: +(\\p{Word}[\\p{Word}\\-'.]*))?(?: +<([^>]+)>)?$",
)

///|
#warnings("-unused_value")
let blank_line_rx : @regex.Regex = @regex.re("\\n{2,}")

///|
#warnings("-unused_value")
let block_anchor_rx : @regex.Regex = @regex.re(
  "^\\[\\[(?:|([\\p{Alpha}_:][\\p{Word}\\-:.]*)(?:, *(.+))?)\\]\\]$",
)

///|
#warnings("-unused_value")
let block_attribute_line_rx : @regex.Regex = @regex.re(
  "^\\[(?:|[\\p{Word}.#%{,\"'].*|\\[(?:|[\\p{Alpha}_:][\\p{Word}\\-:.]*(?:, *.+)?)\\])\\]$",
)

///|
#warnings("-unused_value")
let block_attribute_list_rx : @regex.Regex = @regex.re(
  "^\\[(|[\\p{Word}.#%{,\"'].*)\\]$",
)

///|
#warnings("-unused_value")
let block_media_macro_rx : @regex.Regex = @regex.re(
  "^(image|video|audio)::(\\S|\\S.*?\\S)\\[(.+)?\\]$",
)

///|
#warnings("-unused_value")
let block_title_rx : @regex.Regex = @regex.re("^\\.(\\.?[^ \\t.].*)$")

///|
#warnings("-unused_value")
let block_toc_macro_rx : @regex.Regex = @regex.re("^toc::\\[(.+)?\\]$")

///|
#warnings("-unused_value")
let callout_extract_rx : @regex.Regex = @regex.re(
  "((?://|#|--|;;) ?)?(\\\\)?(?=(?: ?\\\\?)*$)",
)

///|
#warnings("-unused_value")
let callout_list_rx : @regex.Regex = @regex.re("^<(\\d+|\\.)>[ \\t]+(.*)$")

///|
#warnings("-unused_value")
let callout_scan_rx : @regex.Regex = @regex.re(
  "\\\\?(?=(?: ?\\\\?)*$)",
)

///|
#warnings("-unused_value")
let callout_source_rx : @regex.Regex = @regex.re(
  "((?://|#|--|;;) ?)?(\\\\)?<!?(|--)(\\d+|\\.)\\3>(?=(?: ?\\\\?<!?\\3(?:\\d+|\\.)\\3>)*$)",
)

///|
#warnings("-unused_value")
let cell_spec_end_rx : @regex.Regex = @regex.re(
  "[ \\t]+(?:(\\d+(?:\\.\\d*)?|(?:\\d*\\.)?\\d+)([*+]))?([<^>](?:\\.[<^>]?)?|(?:[<^>]?\\.)?[<^>])?([a-z])?$",
)

///|
#warnings("-unused_value")
let cell_spec_start_rx : @regex.Regex = @regex.re(
  "^[ \\t]*(?:(\\d+(?:\\.\\d*)?|(?:\\d*\\.)?\\d+)([*+]))?([<^>](?:\\.[<^>]?)?|(?:[<^>]?\\.)?[<^>])?([a-z])?$",
)

///|
#warnings("-unused_value")
let column_spec_rx : @regex.Regex = @regex.re(
  "^(?:(\\d+)\\*)?([<^>](?:\\.[<^>]?)?|(?:[<^>]?\\.)?[<^>])?(\\d+%?|~)?([a-z])?$",
)

///|
#warnings("-unused_value")
let conditional_directive_rx : @regex.Regex = @regex.re(
  "^(\\\\)?(ifdef|ifndef|ifeval|endif)::(\\S*?(?:([,+])\\S*?)?)\\[(.+)?\\]$",
)

///|
#warnings("-unused_value")
let custom_block_macro_rx : @regex.Regex = @regex.re(
  "^(\\p{Word}[\\p{Word}-]*)::(|\\S|\\S.*?\\S)\\[(.+)?\\]$",
)

///|
#warnings("-unused_value")
let description_list_rx : @regex.Regex = @regex.re(
  "^(?!//[^/])[ \\t]*([^ \\t].*?)(:::{0,2}|;;)(?:$|[ \\t]+(.*)$)",
)

///|
#warnings("-unused_value")
let description_list_sibling_rx : Map[String, @regex.Regex] = {
  "::": @regex.re(
    "^(?!//[^/])[ \\t]*([^ \\t].*?[^:]|[^ \\t:])(::)(?:$|[ \\t]+(.*)$)",
  ),
  ":::": @regex.re(
    "^(?!//[^/])[ \\t]*([^ \\t].*?[^:]|[^ \\t:])(:::)(?:$|[ \\t]+(.*)$)",
  ),
  "::::": @regex.re(
    "^(?!//[^/])[ \\t]*([^ \\t].*?[^:]|[^ \\t:])(::::)(?:$|[ \\t]+(.*)$)",
  ),
  ";;": @regex.re("^(?!//[^/])[ \\t]*([^ \\t].*?)(;;)(?:$|[ \\t]+(.*)$)"),
}

///|
#warnings("-unused_value")
let escaped_space_rx : @regex.Regex = @regex.re("\\\\([ \\t\\n])")

///|
#warnings("-unused_value")
let eval_expression_rx : @regex.Regex = @regex.re(
  "^(.+?) *([=!><]=|[><]) *(.+)$",
)

///|
#warnings("-unused_value")
let ext_atx_section_title_rx : @regex.Regex = @regex.re(
  "^(=={0,5}|#\\#{0,5})[ \\t]+(.+?)(?:[ \\t]+\\1)?$",
)

///|
#warnings("-unused_value")
let ext_layout_break_rx : @regex.Regex = @regex.re(
  "^(?:'{3,}|<{3,}|([-*_])( *)\\1\\2\\1)$",
)

///|
#warnings("-unused_value")
let hard_line_break_rx : @regex.Regex = @regex.re("^(.*) \\+$")

///|
#warnings("-unused_value")
let include_directive_rx : @regex.Regex = @regex.re(
  "^(\\\\)?include::([^\\s\\[](?:[^\\[]*[^\\s\\[])?)\\[(.+)?\\]$",
)

///|
#warnings("-unused_value")
let inline_anchor_rx : @regex.Regex = @regex.re(
  "(\\\\)?(?:\\[\\[([\\p{Alpha}_:][\\p{Word}\\-:.]*)(?:, *(.+?))? ?\\]\\]|anchor:([\\p{Alpha}_:][\\p{Word}\\-:.]*)\\[(?:\\]|(.*?[^\\\\])\\]))",
)

///|
#warnings("-unused_value")
let inline_anchor_scan_rx : @regex.Regex = @regex.re(
  "(?:^|[^\\\\\\[])\\[\\[([\\p{Alpha}_:][\\p{Word}\\-:.]*)(?:, *(.+?))? ?\\]\\]|(?:^|[^\\\\])anchor:([\\p{Alpha}_:][\\p{Word}\\-:.]*)\\[(?:\\]|(.*?[^\\\\])\\])",
)

///|
#warnings("-unused_value")
let inline_biblio_anchor_rx : @regex.Regex = @regex.re(
  "^\\[\\[\\[([\\p{Alpha}_:][\\p{Word}\\-:.]*)(?:, *(.+?))?\\]\\]\\]",
)

///|
#warnings("-unused_value")
let inline_email_rx : @regex.Regex = @regex.re(
  "([\\\\>:/])?\\p{Word}(?:&|[\\p{Word}\\-.%+])*@\\p{Alnum}[\\p{Alnum}_\\-.]*\\.[a-zA-Z]{2,5}\\b",
)

///|
#warnings("-unused_value")
let inline_footnote_macro_rx : @regex.Regex = @regex.re(
  "\\\\?footnote(?:(ref):|:([\\p{Word}-]+)?)\\[(?:|(.*?[^\\\\]))\\](?!)",
  flags="m",
)

///|
#warnings("-unused_value")
let inline_image_macro_rx : @regex.Regex = @regex.re(
  "\\\\?i(?:mage|con):([^:\\s\\[](?:[^\\n\\[]*[^\\s\\[])?)\\[(|.*?[^\\\\])\\]",
  flags="m",
)

///|
#warnings("-unused_value")
let inline_indexterm_macro_rx : @regex.Regex = @regex.re(
  "\\\\?(?:(indexterm2?):\\[(.*?[^\\\\])\\]|\\(\\((.+?)\\)\\)(?!\\)))",
  flags="m",
)

///|
#warnings("-unused_value")
let inline_kbd_btn_macro_rx : @regex.Regex = @regex.re(
  "(\\\\)?(kbd|btn):\\[(.*?[^\\\\])\\]",
  flags="m",
)

///|
#warnings("-unused_value")
let inline_link_macro_rx : @regex.Regex = @regex.re(
  "\\\\?(?:link|(mailto)):(|[^:\\s\\[][^\\s\\[]*)\\[(|.*?[^\\\\])\\]",
  flags="m",
)

///|
#warnings("-unused_value")
let inline_link_rx : @regex.Regex = @regex.re(
  "(^|link:|\\p{Blank}|\\\\?<()|[>\\(\\)\\[\\];\"'])(\\\\?(?:https?|file|ftp|irc)://)(?:([^\\s\\[\\]]+)\\[(|.*?[^\\\\])\\]|\\2([^\\s]+?)>|([^\\s\\[\\]<]*([^\\s,.?!\\[\\]<\\)])))",
  flags="m",
)

///|
#warnings("-unused_value")
let inline_menu_macro_rx : @regex.Regex = @regex.re(
  "\\\\?menu:(\\p{Word}|[\\p{Word}&][^\\n\\[]*[^\\s\\[])\\[ *(?:|(.*?[^\\\\]))\\]",
  flags="m",
)

///|
#warnings("-unused_value")
let inline_menu_rx : @regex.Regex = @regex.re(
  "\\\\?\"([\\p{Word}&][^\"]*?[ \\n]+>[ \\n]+[^\"]*)\"",
)

///|
#warnings("-unused_value")
let inline_pass_macro_rx : @regex.Regex = @regex.re(
  "(?:(?:(\\\\?)\\[([^\\[\\]]+)\\])?(\\\\{0,2})(\\+\\+\\+?|\\$\\$)(.*?)\\4|(\\\\?)pass:([a-z]+(?:,[a-z-]+)*)?\\[(|.*?[^\\\\])\\])",
  flags="m",
)

///|
#warnings("-unused_value")
let inline_section_anchor_rx : @regex.Regex = @regex.re(
  " (\\\\)?\\[\\[([\\p{Alpha}_:][\\p{Word}\\-:.]*)(?:, *(.+))?\\]\\]$",
)

///|
#warnings("-unused_value")
let inline_stem_macro_rx : @regex.Regex = @regex.re(
  "\\\\?(stem|(?:latex|ascii)math):([a-z]+(?:,[a-z-]+)*)?\\[(.*?[^\\\\])\\]",
  flags="m",
)

///|
#warnings("-unused_value")
let inline_xref_macro_rx : @regex.Regex = @regex.re(
  "\\\\?(?:<<([\\p{Word}#/.:{].*?)>>|xref:([\\p{Word}#/.:{].*?)\\[(?:\\]|(.*?[^\\\\])\\]))",
  flags="m",
)

///|
#warnings("-unused_value")
let invalid_attribute_name_chars_rx : @regex.Regex = @regex.re("[^\\p{Word}-]")

///|
#warnings("-unused_value")
let invalid_section_id_chars_rx : @regex.Regex = @regex.re(
  "<[^>]+>|&(?:[a-z][a-z]+\\d{0,2}|#\\d\\d\\d{0,4}|#x[\\da-f][\\da-f][\\da-f]{0,3});|[^ \\p{Word}\\-.]+?",
)

///|
#warnings("-unused_value")
let leading_inline_anchor_rx : @regex.Regex = @regex.re(
  "^\\[\\[([\\p{Alpha}_:][\\p{Word}\\-:.]*)(?:, *(.+?))?\\]\\]",
)

///|
#warnings("-unused_value")
let list_rx_map : Map[String, @regex.Regex] = {
  "ulist": @regex.re("^[ \\t]*(-|\\*\\**|\\u2022)[ \\t]+(.*)$"),
  "olist": @regex.re(
    "^[ \\t]*(\\.\\.*|\\d+\\.|[a-zA-Z]\\.|[IVXivx]+\\))[ \\t]+(.*)$",
  ),
  "dlist": @regex.re(
    "^(?!//[^/])[ \\t]*([^ \\t].*?)(:::{0,2}|;;)(?:$|[ \\t]+(.*)$)",
  ),
  "colist": @regex.re("^<(\\d+|\\.)>[ \\t]+(.*)$"),
}

///|
#warnings("-unused_value")
let literal_paragraph_rx : @regex.Regex = @regex.re("^([ \\t]+.*)$")

///|
#warnings("-unused_value")
let macro_name_rx : @regex.Regex = @regex.re("^\\p{Word}[\\p{Word}-]*$")

///|
#warnings("-unused_value")
let manpage_name_purpose_rx : @regex.Regex = @regex.re("^(.+?) +- +(.+)$")

///|
#warnings("-unused_value")
let manpage_title_volnum_rx : @regex.Regex = @regex.re(
  "^(.+?) *\\( *(.+?) *\\)$",
)

///|
#warnings("-unused_value")
let markdown_thematic_break_rx : @regex.Regex = @regex.re(
  "^ {0,3}([-*_])( *)\\1\\2\\1$",
)

///|
#warnings("-unused_value")
let ordered_list_marker_rx_map : Map[String, @regex.Regex] = {
  "arabic": @regex.re("\\d+\\."),
  "loweralpha": @regex.re("[a-z]\\."),
  "lowerroman": @regex.re("[ivx]+\\)"),
  "upperalpha": @regex.re("[A-Z]\\."),
  "upperroman": @regex.re("[IVX]+\\)"),
}

///|
#warnings("-unused_value")
let ordered_list_rx : @regex.Regex = @regex.re(
  "^[ \\t]*(\\.\\.*|\\d+\\.|[a-zA-Z]\\.|[IVXivx]+\\))[ \\t]+(.*)$",
)

///|
#warnings("-unused_value")
let replaceable_text_rx : @regex.Regex = @regex.re(
  "[&']|--|\\.\\.\\.|\\([CRT]M?\\)",
)

///|
#warnings("-unused_value")
let revision_info_line_rx : @regex.Regex = @regex.re(
  "^(?:[^\\d{]*(.*?),)? *(?!:)(.*?)(?: *(?!^),?: *(.*))?$",
)

///|
#warnings("-unused_value")
let section_level_style_rx : @regex.Regex = @regex.re("^sect\\d$")

///|
#warnings("-unused_value")
let setext_section_title_rx : @regex.Regex = @regex.re(
  "^((?!\\.).*?\\p{Alnum}.*)$",
)

///|
#warnings("-unused_value")
let space_delimiter_rx : @regex.Regex = @regex.re("([^\\\\])[ \\t\\n]+")

///|
#warnings("-unused_value")
let sub_modifier_sniff_rx : @regex.Regex = @regex.re("[+-]")

///|
#warnings("-unused_value")
let tag_directive_rx : @regex.Regex = @regex.re(
  "\\b(?:tag|(e)nd)::(\\S+?)\\[\\](?=$|[ \\r])",
  flags="m",
)

///|
#warnings("-unused_value")
let trailing_digits_rx : @regex.Regex = @regex.re("\\d+$")

///|
#warnings("-unused_value")
let unordered_list_rx : @regex.Regex = @regex.re(
  "^[ \\t]*(-|\\*\\**|\\u2022)[ \\t]+(.*)$",
)

///|
#warnings("-unused_value")
let uri_sniff_rx : @regex.Regex = @regex.re(
  "\\A\\p{Alpha}[\\p{Alnum}.+-]+:/{0,2}",
)

///|
#warnings("-unused_value")
let xml_sanitize_rx : @regex.Regex = @regex.re("<[^>]+>")

///|
let highlighted_pass_slot_rx : @regex.Regex = @regex.re(
  "]*>–[^\\d]*(\\d+)[^\\d]*]*>—",
)

///|
#warnings("-unused_value")
let pass_slot_rx : @regex.Regex = @regex.re("–(\\d+)—")

///|
#warnings("-unused_value")
let quoted_text_sniff_rx : Map[String, @regex.Regex] = {
  "false": @regex.re("[*_`#^~]"),
  "true": @regex.re("[*'_+#^~]"),
}

///|
#warnings("-unused_value")
let special_chars_rx : @regex.Regex = @regex.re("[<&>]")

///|
#warnings("-unused_value")
let tab_indent_rx : @regex.Regex = @regex.re("^\\t+")

///|
#warnings("-unused_value")
let attribute_list_blank_rx : @regex.Regex = @regex.re("[ \\t]+")

///|
#warnings("-unused_value")
let attribute_list_boundary_rx : Map[String, @regex.Regex] = {
  "\"": @regex.re(".*?[^\\\\](?=\")"),
  "'": @regex.re(".*?[^\\\\](?=')"),
  ",": @regex.re(".*?(?=[ \\t]*(,|$))"),
}

///|
#warnings("-unused_value")
let attribute_list_name_rx : @regex.Regex = @regex.re("\\p{Word}[\\p{Word}-]*")

///|
#warnings("-unused_value")
let attribute_list_skip_rx : Map[String, @regex.Regex] = {
  ",": @regex.re("[ \\t]*(,|$)"),
}

///|
#warnings("-unused_value")
let path_resolver_windows_root_rx : @regex.Regex = @regex.re(
  "^(?:[a-zA-Z]:)?[\\\\/]",
)

///|
let quote_subs_normal : Array[(String, String, @regex.Regex)] = [
  (
    "strong",
    "unconstrained",
    @regex.re("\\\\?(?:\\[([^\\[\\]]+)\\])?\\*\\*(.+?)\\*\\*", flags="m"),
  ),
  (
    "strong",
    "constrained",
    @regex.re(
      "(^|[^\\p{Word};:}])(?:\\[([^\\[\\]]+)\\])?\\*(\\S|\\S.*?\\S)\\*(?!\\p{Word})",
      flags="m",
    ),
  ),
  (
    "double",
    "constrained",
    @regex.re(
      "(^|[^\\p{Word};:}])(?:\\[([^\\[\\]]+)\\])?\"`(\\S|\\S.*?\\S)`\"(?!\\p{Word})",
      flags="m",
    ),
  ),
  (
    "single",
    "constrained",
    @regex.re(
      "(^|[^\\p{Word};:`}])(?:\\[([^\\[\\]]+)\\])?'`(\\S|\\S.*?\\S)`'(?!\\p{Word})",
      flags="m",
    ),
  ),
  (
    "monospaced",
    "unconstrained",
    @regex.re("\\\\?(?:\\[([^\\[\\]]+)\\])?``(.+?)``", flags="m"),
  ),
  (
    "monospaced",
    "constrained",
    @regex.re(
      "(^|[^\\p{Word};:\"'`}])(?:\\[([^\\[\\]]+)\\])?`(\\S|\\S.*?\\S)`(?![\\p{Word}\"'`])",
      flags="m",
    ),
  ),
  (
    "emphasis",
    "unconstrained",
    @regex.re("\\\\?(?:\\[([^\\[\\]]+)\\])?__(.+?)__", flags="m"),
  ),
  (
    "emphasis",
    "constrained",
    @regex.re(
      "(^|[^\\p{Word};:}])(?:\\[([^\\[\\]]+)\\])?_(\\S|\\S.*?\\S)_(?!\\p{Word})",
      flags="m",
    ),
  ),
  (
    "mark",
    "unconstrained",
    @regex.re("\\\\?(?:\\[([^\\[\\]]+)\\])?##(.+?)##", flags="m"),
  ),
  (
    "mark",
    "constrained",
    @regex.re(
      "(^|[^\\p{Word}&;:}])(?:\\[([^\\[\\]]+)\\])?#(\\S|\\S.*?\\S)#(?!\\p{Word})",
      flags="m",
    ),
  ),
  (
    "superscript",
    "unconstrained",
    @regex.re("\\\\?(?:\\[([^\\[\\]]+)\\])?\\^(\\S+?)\\^"),
  ),
  (
    "subscript",
    "unconstrained",
    @regex.re("\\\\?(?:\\[([^\\[\\]]+)\\])?~(\\S+?)~"),
  ),
]

///|
let quote_subs_compat : Array[(String, String, @regex.Regex)] = [
  (
    "strong",
    "unconstrained",
    @regex.re("\\\\?(?:\\[([^\\[\\]]+)\\])?\\*\\*(.+?)\\*\\*", flags="m"),
  ),
  (
    "strong",
    "constrained",
    @regex.re(
      "(^|[^\\p{Word};:}])(?:\\[([^\\[\\]]+)\\])?\\*(\\S|\\S.*?\\S)\\*(?!\\p{Word})",
      flags="m",
    ),
  ),
  (
    "double",
    "constrained",
    @regex.re(
      "(^|[^\\p{Word};:}])(?:\\[([^\\[\\]]+)\\])?``(\\S|\\S.*?\\S)''(?!\\p{Word})",
      flags="m",
    ),
  ),
  (
    "emphasis",
    "constrained",
    @regex.re(
      "(^|[^\\p{Word};:}])(?:\\[([^\\[\\]]+)\\])?'(\\S|\\S.*?\\S)'(?!\\p{Word})",
      flags="m",
    ),
  ),
  (
    "single",
    "constrained",
    @regex.re(
      "(^|[^\\p{Word};:}])(?:\\[([^\\[\\]]+)\\])?`(\\S|\\S.*?\\S)'(?!\\p{Word})",
      flags="m",
    ),
  ),
  (
    "monospaced",
    "unconstrained",
    @regex.re("\\\\?(?:\\[([^\\[\\]]+)\\])?\\+\\+(.+?)\\+\\+", flags="m"),
  ),
  (
    "monospaced",
    "constrained",
    @regex.re(
      "(^|[^\\p{Word};:}])(?:\\[([^\\[\\]]+)\\])?\\+(\\S|\\S.*?\\S)\\+(?!\\p{Word})",
      flags="m",
    ),
  ),
  (
    "emphasis",
    "unconstrained",
    @regex.re("\\\\?(?:\\[([^\\[\\]]+)\\])?__(.+?)__", flags="m"),
  ),
  (
    "emphasis",
    "constrained",
    @regex.re(
      "(^|[^\\p{Word};:}])(?:\\[([^\\[\\]]+)\\])?_(\\S|\\S.*?\\S)_(?!\\p{Word})",
      flags="m",
    ),
  ),
  (
    "mark",
    "unconstrained",
    @regex.re("\\\\?(?:\\[([^\\[\\]]+)\\])?##(.+?)##", flags="m"),
  ),
  (
    "mark",
    "constrained",
    @regex.re(
      "(^|[^\\p{Word}&;:}])(?:\\[([^\\[\\]]+)\\])?#(\\S|\\S.*?\\S)#(?!\\p{Word})",
      flags="m",
    ),
  ),
  (
    "superscript",
    "unconstrained",
    @regex.re("\\\\?(?:\\[([^\\[\\]]+)\\])?\\^(\\S+?)\\^"),
  ),
  (
    "subscript",
    "unconstrained",
    @regex.re("\\\\?(?:\\[([^\\[\\]]+)\\])?~(\\S+?)~"),
  ),
]

///|
let replacements : Array[(@regex.Regex, String, String)] = [
  (@regex.re("\\\\?\\(C\\)"), "©", "none"),
  (@regex.re("\\\\?\\(R\\)"), "®", "none"),
  (@regex.re("\\\\?\\(TM\\)"), "™", "none"),
  (@regex.re("(?: |\\n|^|\\\\)--(?: |\\n|$)"), " — ", "none"),
  (@regex.re("(\\p{Word})\\\\?--(?=\\p{Word})"), "—​", "leading"),
  (@regex.re("\\\\?\\.\\.\\."), "…​", "none"),
  (@regex.re("\\\\?`'"), "’", "none"),
  (@regex.re("(\\p{Alnum})\\\\?'(?=\\p{Alpha})"), "’", "leading"),
  (@regex.re("\\\\?->"), "→", "none"),
  (@regex.re("\\\\?=>"), "⇒", "none"),
  (@regex.re("\\\\?<-"), "←", "none"),
  (@regex.re("\\\\?<="), "⇐", "none"),
  (
    @regex.re(
      "\\\\?(&)amp;((?:[a-zA-Z][a-zA-Z]+\\d{0,2}|#\\d\\d\\d{0,4}|#x[\\da-fA-F][\\da-fA-F][\\da-fA-F]{0,3});)",
    ),
    "",
    "bounding",
  ),
]

///|
let inline_pass_rx_false : (String, String?, @regex.Regex) = (
  "+",
  Some("-]"),
  @regex.re(
    "((?:^|[^\\p{Word};:\\\\])(?=(\\[)|\\+)|\\\\(?=\\[)|(?=\\\\\\+))(?:\\2(x-|[^\\[\\]]+ x-)\\]|(?:\\[([^\\[\\]]+)\\])?(?=(\\\\)?\\+))(\\5?(\\+|`)(\\S|\\S.*?\\S)\\7)(?!\\p{Word})",
    flags="m",
  ),
)

///|
let inline_pass_rx_true : (String, String?, @regex.Regex) = (
  "`",
  None,
  @regex.re(
    "(^|[^`\\p{Word}])(?:(\\Z)()|\\[([^\\[\\]]+)\\](?=(\\\\))?)?(\\5?(`)([^`\\s]|[^`\\s].*?\\S)\\7)(?![`\\p{Word}])",
    flags="m",
  ),
)