<commit_before>### Parsing Expression Types

There are several types of parsing expressions, some of them containing subexpressions and thus forming a recursive structure:

  * ["literal"](#literalliteral)
  * [. (dot character)](#-dot-character)
  * [[characters]](#characters)
  * [rule](#rule)
  * [( expression )](#-expression-)
  * [expression *](#expression-)
  * [expression +](#expression--1)
  * [expression ?](#expression--2)
  * [& expression](#-expression)
  * [! expression](#-expression-1)
  * [& { predicate }](#--predicate-)
  * [! { predicate }](#--predicate--1)
  * [$ expression](#-expression-2)
  * [label : expression](#label--expression)
  * [expression<sub>1</sub> expression<sub>2</sub> ... expression<sub>n</sub>](#expression1-expression2---expressionn)
  * [expression { action }](#expression--action-)
  * [expression<sub>1</sub> / expression<sub>2</sub> / ... / expression<sub>n</sub>](#expression1--expression2----expressionn)
  * [expression<sub>1</sub> @expression<sub>2</sub> ... expression<sub>n</sub>](#expression1--expression2---expressionn)

#### "*literal*"<br>'*literal*'

Match exact literal string and return it. The string syntax is the same as in JavaScript.<commit_msg>Fix last link in the TOC (#621)<commit_after>### Parsing Expression Types

There are several types of parsing expressions, some of them containing subexpressions and thus forming a recursive structure:

  * ["literal"](#literalliteral)
  * [. (dot character)](#-dot-character)
  * [[characters]](#characters)
  * [rule](#rule)
  * [( expression )](#-expression-)
  * [expression *](#expression-)
  * [expression +](#expression--1)
  * [expression ?](#expression--2)
  * [& expression](#-expression)
  * [! expression](#-expression-1)
  * [& { predicate }](#--predicate-)
  * [! { predicate }](#--predicate--1)
  * [$ expression](#-expression-2)
  * [label : expression](#label--expression)
  * [expression<sub>1</sub> expression<sub>2</sub> ... expression<sub>n</sub>](#expression1-expression2---expressionn)
  * [expression { action }](#expression--action-)
  * [expression<sub>1</sub> / expression<sub>2</sub> / ... / expression<sub>n</sub>](#expression1--expression2----expressionn)
  * [expression<sub>1</sub> @expression<sub>2</sub> ... expression<sub>n</sub>](#expression1-expression2---expressionn-1)

#### "*literal*"<br>'*literal*'

Match exact literal string and return it. The string syntax is the same as in JavaScript.
{'fraction_non_alphanumeric': 0.2099877200163733, 'fraction_numerical': 0.015554645927138764, 'mean_word_length': 4.644341801385681, 'pattern_counts': {'":': 0, '<': 41, '<?xml version=': 0, '>': 41, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7378261', 'n_tokens_mistral': 790, 'n_tokens_neox': 736, 'n_words': 151}