Regulární výrazy se používají pro filtrování dat.
| 
						 Výraz 
					 | 
					
						 Vysvětlení 
					 | 
				
|---|---|
| Znaky | |
| x | znak x | 
| \\ | zpětné lomítko | 
| \0n | znak v osmičkovém kódu 0n (0 <= n <= 7) | 
| \xhh | znak v hexadecimálním kódu 0xhh | 
| \uhhhh | znak UNICODE v hexadecimálním kódu 0xhhhh | 
| \t | znak tabulátor ('\u0009') | 
| \n | znak nového řádku ('\u000A') | 
| \r | znak posunu vozíku ('\u000D') | 
| Skupiny znaků | |
| [abc] | výčet znaků: a, b, nebo c | 
| [^abc] | jakýkoli znak kromě: a, b, nebo c (negace) | 
| [a-zA-Z] | a až z nebo A až Z, včetně (rozsah) | 
| [a-d[m-p]] | a až d, nebo m až p: [a-dm-p] (sjednocení) | 
| [a-z&&[def]] | d, e, nebo f (průnik) | 
| [a-z&&[^bc]] | a až z, kromě b ac: [ad-z] (rozdíl) | 
| Předdefinované skupiny znaků | |
| \d | číslice: [0-9] | 
| \D | opak číslice (negace): [^0-9] | 
| \s | bílý znak: [ \t\n\x0B\f\r] | 
| \S | opak bílého znaku: [^\s] | 
| \w | slovo: [a-zA-Z_0-9] | 
| \W | opak slova: [^\w] | 
| Hranice | |
| ^ | začátek řádku | 
| $ | konec řádku | 
| \b | hranice slova | 
| \B | opak hranice slova (negace) | 
| Kvantifikátory | |
| X? | X, žádný nebo jeden | 
| X* | X, žádný nebo více | 
| X+ | X, jeden nebo více | 
| X{n} | X, přesně nkrát | 
| X{n,} | X, minimálně nkrát | 
| X{n,m} | X, minimálně nkrát, ale ne více než mkrát | 
| Logické spojky | |
| XY | X ihned zaY | 
| X|Y | X neboY | 
| (X) | 
						 párování logických spojek  | 
				
Příklad:
procedure TestRegExp
    SetGVal("#abc 124", 1);
    SetGVal("#abx 321", 2);
    SetGVal("#abc 654", 3);
    SetGVal("#abx 984", 4);
    SetGVal("#abc 789", 5);
    SetGVal("#abm 456", 6);
    dim F : File;
    SRewrite(F,"",true);
    CopyGValByRegExp(F, "#ABC.*");       {1,3,5}
    CopyGValByRegExp(F, "#ABC.*4$");     {1,3}
    CopyGValByRegExp(F, "#AB.*[2,8]4$"); {1,4}
    CopyGValByRegExp(F, "#AB.*[^2]4$");  {3,4}
endproc