I am trying to split a Cypher path which looks like this:

```
(`GROUP1`: TRAVEL_PLAN { name: 'GROUP1' })-[:_USE_]->(`LODGING`: TRAVEL_ENTITLEMENT { name: 'LODGING' })-[:_HAVE_]->(`LODGING_R_1`: RULE { name: 'LODGING_R_1' })-[:_ENTITLE_TO_]->(`RS 3000`: MONEY { name: 'RS 3000' })

```

Which after splitting should give me where the elements at even indices are the nodes in parenthesis and the elements in the odd indices are the relation combining them in square brackets:

```
(`GROUP1`: TRAVEL_PLAN { name: 'GROUP1' })
[:_USE_]
(`LODGING`: TRAVEL_ENTITLEMENT { name: 'LODGING' })
[:_HAVE_]
(`LODGING_R_1`: RULE { name: 'LODGING_R_1' })
[:_ENTITLE_TO_]
(`RS 3000`: MONEY { name: 'RS 3000' })

```

---

**My attempt 1:**

```
public static void Main()
{
        string input = @"(`GROUP1`: TRAVEL_PLAN { name: 'GROUP1' })-[:_USE_]->(`LODGING`: TRAVEL_ENTITLEMENT { name: 'LODGING' })-[:_HAVE_]->(`LODGING_R_1`: RULE { name: 'LODGING_R_1' })-[:_ENTITLE_TO]->(`RS 3000`: MONEY { name: 'RS 3000' })";
        string pattern = @"(\(.+\))-(\[.+\])->(\(.+\))";
        string [] split = input.Split(new[] { "-", "->" }, StringSplitOptions.RemoveEmptyEntries);

        foreach (string item in split)
            Console.WriteLine(item);
}

```

Which outputs me (notice the `>` in the beginning of some entries):

```
(`GROUP1`: TRAVEL_PLAN { name: 'GROUP1' })
[:_USE_]
>(`LODGING`: TRAVEL_ENTITLEMENT { name: 'LODGING' })
[:_HAVE_]
>(`LODGING_R_1`: RULE { name: 'LODGING_R_1' })
[:_ENTITLE_TO]
>(`RS 3000`: MONEY { name: 'RS 3000' })

```

**My attempt 2:**

```
public static void Main()
{
        string input = @"(`GROUP1`: TRAVEL_PLAN { name: 'GROUP1' })-[:_USE_]->(`LODGING`: TRAVEL_ENTITLEMENT { name: 'LODGING' })-[:_HAVE_]->(`LODGING_R_1`: RULE { name: 'LODGING_R_1' })-[:_ENTITLE_TO]->(`RS 3000`: MONEY { name: 'RS 3000' })";
        string pattern = @"(\(.+\))-(\[.+\])->(\(.+\))";
        string[] regSplit = Regex.Split(input, pattern);

        foreach (string item in regSplit)
            Console.WriteLine(item);
}

```

Which outputs me:

```
(`GROUP1`: TRAVEL_PLAN { name: 'GROUP1' })-[:_USE_]->(`LODGING`: TRAVEL_ENTITLEMENT { name: 'LODGING' })-[:_HAVE_]->(`LODGING_R_1`: RULE { name: 'LODGING_R_1' })
[:_ENTITLE_TO]
(`RS 3000`: MONEY { name: 'RS 3000' })

```

(This is my current [`Regex`](https://regex101.com/r/sIYEkZ/2))

I am scratching my head for a long time for this, will appreciate if anybody could help.