Notes:
Flags (i.e. global, case-insensitive) aren't supported directly in the syntax, however Tcl metasyntax can still be used. Expressions default to global/all, case-sensitive. Note that it's not possible to turn on or off global matching via metasyntax, this is because of a limitation in Tcl.
Usage examples:
Basic usage
<nick> Hello, World!
<nick> s/World/Everyone
<bot> Nick meant: "Hello, Everyone!"
With : instead of /
<nick> Hello, World!
<nick> s:World:Everyone
<bot> Nick meant: "Hello, Everyone!"
Removing text
<nick> Hello, World!
<nick> s/,/
<bot> Nick meant: "Hello World!"
Substitutions can be stacked indefinately
<nick> Hello, World!
<nick> s/l/w/s/o/u
<bot> Nick meant: "Hewwu, Wurwd!"
You can keep stacking over multiple messages
<nick> Hello, World!
<nick> s/World/Everyone
<bot> Nick meant: "Hello, Everyone!"
<nick> s/Everyone/Friday
<bot> Nick meant: "Hello, Friday!"
Regular expression
<nick> Hello, World!
<nick> s/[A-Z]/Y
<bot> Nick meant: "Yello, Yorld!"
More regular expression
<nick> Hello, World!
<nick> s/\S/x
<bot> Nick meant: "xxxxxx xxxxxx"
Metasyntax in action, turning on case insensitive matching:
<nick> Aaa Bbb
<nick> s/(?i)a/x/s/(?i)b/y
<bot> Nick meant: "xxx yyy"
Download: substitute-1.0.tclSubstitution guru:
<nick> :p
<nick> s/:/abc/s/p/defg/s/[ce]/^/s/d/o/s/a/\/s:g:/:s/b/(/s/f/)
<bot> Nick meant: "\(^o^)/"