Classical regular expressions have three operators, and a alphabet of input symbols (identifiers). The three operators are *concatenation*, *Kleene closure*, and *or*. *Concatenation* describes two inputs occuring in sequence, and in PBS is denoted by "," (comma). *Kleene closure* describes zero or more occurences of an input, and is represented by "*" (asterisk). The third classical operator, *or*, describes the logical or between to inputs. These operators can be combined to describe any kind of input sequence. For example:

The above regular expression has three identifiers (which represent arbitrary logic functions of the primary input), "a", "b", and "~a". The corresponding NDFA state diagram has three states. The circuit implementation is shown below, and uses five gates and three memory elements to recognize the regular expression. A circuit implementation can be constructed from the NDFA or directly from the regular expression, and requires at most one memory element per NDFA state or regular expression identifier.