# Lua Pattern Matching for Chat Triggers

Lua Patterns are a unique form of Regular Expressions which allow for very powerful pattern matching. Lua patterns are slightly different than typical Regular Expressions, so be careful when entering them. For more information on Lua patterns see: [https://www.lua.org/pil/20.2.html](https://www.lua.org/pil/20.2.html)

Lua patterns use special *character classes* and *magic characters* to enable more powerful pattern searching.

##### Character Classes

The following table shows the special *character classes.*

<table align="center" border="1" id="bkmrk-.-all-characters-%25a-" style="height: 390px; width: 97.9012%;"><tbody><tr><td style="width: 17.858%;">`.`</td><td style="width: 82.1467%;">all characters</td></tr><tr><td style="width: 17.858%;">`%a`</td><td style="width: 82.1467%;">letters</td></tr><tr><td style="width: 17.858%;">`%c`</td><td style="width: 82.1467%;">control characters</td></tr><tr><td style="width: 17.858%;">`%d`</td><td style="width: 82.1467%;">digits</td></tr><tr><td style="width: 17.858%;">`%l`</td><td style="width: 82.1467%;">lower case letters</td></tr><tr><td style="width: 17.858%;">`%p`</td><td style="width: 82.1467%;">punctuation characters</td></tr><tr><td style="width: 17.858%;">`%s`</td><td style="width: 82.1467%;">space characters</td></tr><tr><td style="width: 17.858%;">`%u`</td><td style="width: 82.1467%;">upper case letters</td></tr><tr><td style="width: 17.858%;">`%w`</td><td style="width: 82.1467%;">alphanumeric characters</td></tr><tr><td style="width: 17.858%;">`%x`</td><td style="width: 82.1467%;">hexadecimal digits</td></tr><tr><td style="width: 17.858%;">`%z`</td><td style="width: 82.1467%;">the character with representation 0</td></tr></tbody></table>

##### Magic Characters

Some characters, called *magic characters*, have special meanings when used in a pattern. The magic characters are

```
    ( ) . % + - * ? [ ^ $
```

The following table shows the commonly used magic character modifiers.

<table align="center" border="1" id="bkmrk-%2B-1-or-more-repetiti" style="width: 100.864%;"><tbody><tr><td style="width: 6.31446%;">`+`</td><td style="width: 93.6855%;">1 or more repetitions</td></tr><tr><td style="width: 6.31446%;">`*`</td><td style="width: 93.6855%;">0 or more repetitions</td></tr><tr><td style="width: 6.31446%;">`-`</td><td style="width: 93.6855%;">also 0 or more repetitions</td></tr><tr><td style="width: 6.31446%;">`?`</td><td style="width: 93.6855%;">optional (0 or 1 occurrence)</td></tr></tbody></table>