******** Overview ******** Flow and Character Operations ============================= Operations are split into two different groups: Flow operations and character operations. Flow operations do not consume any characters from the input stream, they are executed immediately. On the other hand, character operations require a character from the input stream. .. list-table:: :width: 100% :widths: 50, 50 :header-rows: 1 * - Flow Operations - Character Operations * - :doc:`None` - :doc:`Char` * - :doc:`Split` - :doc:`Sequence` * - :doc:`Jump` - :doc:`Category` * - :doc:`Match` - :doc:`Class` * - :doc:`Success` - :doc:`Any` * - :doc:`Failure` - * - :doc:`Anchor` - * - :doc:`Capture` - * - :doc:`Counter` - * - :doc:`Maximum` - * - :doc:`Minimum` - Modifier ======== Modifiers change the behaviour of an operation. :expression:`Not` Negates the meaning of the operation. :expression:`CI` Uses a case-folding comparison. :expression:`Start` Selects the start behaviour (e.g. start capturing). :expression:`Stop` Selects the stop behaviour (e.g. stop capturing). :expression:`Assert` Marks a zero-width operation that only tests the *current* character, without consuming it. The following table shows all operations and valid modifiers. .. list-table:: :class: flags-table :width: 100% :widths: 75, 5, 5, 5, 5, 5 :header-rows: 1 * - Operation - Not - CI - Assert - Start - Stop * - :doc:`None` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` * - :doc:`Split` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` * - :doc:`Jump` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` * - :doc:`Match` - :fas:`check;sd-text-success` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` * - :doc:`Success` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` * - :doc:`Failure` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` * - :doc:`Anchor` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` * - :doc:`Capture` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` - :fas:`check;sd-text-success` - :fas:`check;sd-text-success` * - :doc:`Counter` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` * - :doc:`Maximum` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` * - :doc:`Minimum` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` * - :doc:`Char` - :fas:`check;sd-text-success` - :fas:`check;sd-text-success` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` * - :doc:`Sequence` - :fas:`xmark;sd-text-danger` - :fas:`check;sd-text-success` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` * - :doc:`Category` - :fas:`check;sd-text-success` - :fas:`xmark;sd-text-danger` - :fas:`check;sd-text-success` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` * - :doc:`Class` - :fas:`check;sd-text-success` - :fas:`check;sd-text-success` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` * - :doc:`Any` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger` - :fas:`xmark;sd-text-danger`