There should be three parts in the output, the third one should be
!= '\0'
Anyway, regular expression is not for everything, try the following approach:
string originalString = @"((infx.Length != i) && (ch = infx[i++]) != '\0')";
Console.WriteLine("The original string is {0}", originalString);
char[] charSeparators = new char[] {'(', '&', ')'};
string[] result = originalString.Split(charSeparators, StringSplitOptions.RemoveEmptyEntries);
foreach (string s in result)
{
if (s != " ")
{
Console.Write("{0} \n", s);
}
}