I'm writing a c# code that divide a string into two different groups. a string is pipe-delimited as example below:

* there could be an empty space between two pipes.
* number of pipes to "5GOdNF7Q5fK5O9QKiZefJEfO1YECcX1w" are fixed; In this case, there are 4 pipes.

```
    string value = "122312121|test value||test value 2|5GOdNF7Q5fK5O9QKiZefJEfO1YECcX1w|123456789|123456789";
    const string sPattern = @"What should it be here?????";
    var regex = new Regex(sPattern);
    var match = regex.Match(value);
    if (match.Success)
    {
        var begin = match.Groups["begin"].Value;
        var middle = match.Groups["middle"].Value;
        var end = match.Groups["end"].Value;
    }

```

I am trying to get the output of the code to return as following:

	+ begin = "122312121|test value||test value 2|"
	+ middle = "5GOdNF7Q5fK5O9QKiZefJEfO1YECcX1w"
	+ end = "|123456789|123456789"

However, I'm so new to regular expression, and I have tried to write a regular expression for variable sPattern, but could not produce the right regular expression for it. Could any please help? Thanks.