private const string MessageMatch = "^@color=(?#\\w{6})?;display-name=(?[^;]+)?;emotes=(?[^;]*);(?:sent-ts=\\d+;)?subscriber=(?\\d);(?:tmi-sent-ts=\\d+;)?turbo=(?\\d);user-type=(?\\S*) :(?\\S+)!\\S+@\\S+.tmi.twitch.tv PRIVMSG #\\w+ :(?.+)$"; private const string ModeMatch = ":jtv MODE #\\S+ (?[+-])o (?\\S+)"; private const string PingMatch = "PING :(?\\S+)"; private const string TimeoutMatch = ":tmi\\.twitch\\.tv CLEARCHAT #\\S+ :(?\\S+)"; private const string NotifyMatch = ":twitchnotify!twitchnotify@twitchnotify.tmi.twitch.tv PRIVMSG #\\S+ :(?.+)"; private const string CapAckMatch = ":tmi\\.twitch\\.tv CAP \\* ACK :(?.+)"; private const string CodeMatch = ":tmi\\.twitch\\.tv (?\\d{3}) \\S+ :(?.+)"; private const string Code2Match = ":\\S+\\.tmi\\.twitch\\.tv (?\\d{3}) \\S+ = #\\S+ :(?.+)"; private const string Code3Match = ":\\S+\\.tmi\\.twitch\\.tv (?\\d{3}) \\S+ #\\S+ :(?.+)"; private const string JoinMatch = ":\\S+!\\S+@(?\\S+)\\.tmi\\.twitch\\.tv JOIN #\\S+"; private const string PartMatch = ":\\S+!\\S+@(?\\S+)\\.tmi\\.twitch\\.tv PART #\\S+"; private const string GlobalUserStateMatch = "@color=(?#\\d{6})?;display-name=(?\\S+);emote-sets=(?\\S+);turbo=(?\\d);user-type=(?\\S*) :tmi\\.twitch\\.tv GLOBALUSERSTATE"; private const string UserStateMatch = "@color=(?#\\d{6})?;display-name=(?\\S+);emote-sets=(?\\S+);subscriber=(?\\d);turbo=(?\\d);user-type=(?\\S*) :tmi\\.twitch\\.tv USERSTATE #\\S+"; private const string RoomStateMatch = "@broadcaster-lang=(?\\S+)?;r9k=(?\\d);slow=(?\\d+);subs-only=(?\\d) :tmi\\.twitch\\.tv ROOMSTATE #\\S+"; private const string NoticeMatch = "@msg-id=(?\\S+) :tmi\\.twitch\\.tv NOTICE #\\S+ :(?.+)";