I would like to use the ((?!(SEPARATOR)).)* regex pattern for splitting a string. 
using System;
using System.Text.RegularExpressions;
public class Program
{
    public static void Main()
    {
        var separator = "__";
        var pattern = String.Format("((?!{0}).)*", separator);
        var regex = new Regex(pattern);
        foreach (var item in regex.Matches("first__second"))
            Console.WriteLine(item);        
    }
}
It works fine when a SEPARATOR is a single character, but when it is longer then 1 character I get an unexpected result. In the code above the second matched string is "_second" instead of "second". How shall I modify my pattern to skip the whole unmatched separator?
My real problem is to split lines where I should skip line separators inside quotes. My line separator is not a predefined value and it can be for example "\r\n".
 
     
    