11 s/\(:\([^ ]*\) \)\?\(\([^ ]*\) \)\(\([^ ]*\) \)\?\(:\(.*\)\)/AUTH= SERVER= NICK= CHANNEL= CMD=\4 SRC=\2 DST=\6 TO= FROM= MSG=\8/
12 s/\(TO=\)\(.*MSG=\([^:,]\+\)[:,]\)/\1\3\2/
13 s/\(SRC=\([^!]\+\)!.*\)\(FROM=\)/\1\3\2/
16 s/SERVER=/&irc.freenode.net/
17 s/\(AUTH=\)\(.*TO=rhsed.*FROM=andy753421\)/\1yes\2/
19 # IRC library commands
20 1 { x; s/$/\nUSER andy c $SERVER :$NICK/; x; }
21 1 { x; s/$/\nNICK rhsed/; x; }
22 /CMD=PING/ { x; s/$/\nPING :$MSG/; x; }
23 /CMD=001.*MSG=.*Welcome/ { x; s/$/\nJOIN $CHANNEL/; x; }
26 /MSG=.*\<sed\>/ { x; s/$/\n.say Sed!/; x; }
27 /NICK=\([^ ]*\).*MSG=\1:/ { x; s/$/\n.say Hello, $FROM/; x; }
28 /MSG=.dup/ { x; s/$/\n.say Dup! $MSG/; x; }
29 /MSG=.ping/ { x; s/$/\n.reply Pong!/; x; }
30 /AUTH=yes.*MSG=.*die in a fire/Q
34 s/\n.reply /\n.say $FROM: /g
35 s/\n.say *\([^\n]*\)/\nPRIVMSG #rhnoise :\1/g
41 s/\(.*SERVER=\([^ ]*\).*\n.*\)\$SERVER/\1\2/
42 s/\(.*NICK=\([^ ]*\).*\n.*\)\$NICK/\1\2/
43 s/\(.*CHANNEL=\([^ ]*\).*\n.*\)\$CHANNEL/\1\2/
44 s/\(.*CMD=\([^ ]*\).*\n.*\)\$CMD/\1\2/
45 s/\(.*SRC=\([^ ]*\).*\n.*\)\$SRC/\1\2/
46 s/\(.*DST=\([^ ]*\).*\n.*\)\$DST/\1\2/
47 s/\(.*TO=\([^ ]*\).*\n.*\)\$TO/\1\2/
48 s/\(.*FROM=\([^ ]*\).*\n.*\)\$FROM/\1\2/
49 s/\(.*MSG=\([^\n]*\)\n.*\)\$MSG/\1\2/