Its not because of the Regex but i wrote an Message Parser now :
public static IrcMessage ParseIrcMessage(string rawMessage)
{
var prefix = "";
var arguments = new Stack<string[]>();
if (string.IsNullOrEmpty(rawMessage))
throw new BadIrcMessageException("Message is empty.");
var hasPrefix = rawMessage[0] == ':';
if (hasPrefix)
prefix = rawMessage.Substring(rawMessage.IndexOf(':'), rawMessage.IndexOf(' ', 1)).Replace(":", "").Trim();
if(rawMessage.IndexOf(" :") != -1)
{
var trailing = rawMessage.Substring(0, rawMessage.IndexOf(" :"));
var message = rawMessage.Substring(rawMessage.IndexOf(" :"));
string[] argumentArray = new string[0];
Array.Resize(ref argumentArray, trailing.Split().Length + 1);
argumentArray.For((i) => {
if ((i + 1) > trailing.Split().Count())
argumentArray[i] = message.Trim().Replace(":", "");
else argumentArray[i] = trailing.Split()[i];
});
arguments.Push(argumentArray);
} else {
arguments.Push(rawMessage.Split());
}
var command = ((hasPrefix) ? arguments.Peek()[1] : arguments.Peek()[0]).Trim();
return new IrcMessage(prefix, command, arguments.Pop(), hasPrefix);
}
Now it work’s, thank you all for you’r help!