# Pattern-matching mathematical expressions#

Numbas includes a sophisticated pattern-matching algorithm for mathematical expressions.
The algorithm decides whether an input expression matches a given pattern, and also identifies *named matching groups*, which are sub-expressions of the input expression.

Pattern-matching is used to power the simplification rules, as well as to establish the *form* of mathematical expressions entered by the student.

The pattern-matcher should be considered to work similarly to a regular expression algorithm, except it operates on algebraic syntax trees instead of text strings.