Expressions combine values to compute new values using operators or functions.

Most of these operators and functions return EMPTY when one of their arguments is EMPTY. In PCC2, operations taking more than one argument usually evaluate them all (although not necessarily from left to right), even if the result would be known after evaluating only some. Exceptions are explicitly specified. This is a difference to PCC 1.x, which would sometimes stop evaluating early.

String operations are case-insensitive by default. That is, "A" compares equal to "a". To get case-sensitive operations, use the StrCase() function. Note that only the basic latin letters are treated case-insensitively; special characters such as "ä" or "д" are always handled case-sensitive.

Some operations taking numerical operands only work with integers. When doing arithmetic, PCC keeps track of which values are integers and which are fractions. Arithmetic operators and "+", "-", "*" yield integers when their operands are integers, others like "/" may generate fractions even when used on integers.

If you violate the rules, for example, by comparing a number and a string, or by using a fractional number where an integer is required, you will get an error. The Search function will treat these cases as a mismatch. Scripts will be aborted unless they catch the error with a Try statement.