--- a/libpurple/protocols/ircv3/purpleircv3parser.c Fri Feb 10 03:03:39 2023 -0600 +++ b/libpurple/protocols/ircv3/purpleircv3parser.c Thu Feb 16 08:13:28 2023 -0600 @@ -267,8 +267,11 @@ 0, 0, NULL); g_assert(parser->regex_message != NULL); - parser->regex_tags = g_regex_new("(?:(?<key>[A-Za-z0-9-\\/]+)" - "(?:=(?<value>[^\\r\\n;]*))?(?:;|$))", + parser->regex_tags = g_regex_new("(?<key>(?<client_prefix>\\+?)" + "(?:(?<vendor>[A-Za-z0-9-\\.]+)\\/)?" + "(?<key_name>[A-Za-z0-9-]+)" + ")" + "(?:=(?<value>[^\r\n;]*))?(?:;|$)", 0, 0, NULL); g_assert(parser->regex_tags != NULL);