I'm having a hard time with regex conditionals (.net regex).

suppose this is my string `eat, drink, run`

I'm wondering if this regex

```
(eat)

```

stores "eat" in the group 1, being enclosed by parenthesis, and this

```
(?:eat)

```

doesn't store the match in any group, because there is a "?:" inside the parenthesis

Then, why this conditional regex doesn't work?

```
(eat)(?(1)a)

```

displaying a message saying that nothing is stored in group 1, isn't (eat) properly stored as a group?

And why this conditional regex does work?

```
(^)?eat(?(1)a)

```

returning that "eat" is stored in group 1, isn't supposed that matches meant to be stored in groups must be enclosed with parenthesis?

Please I have try to find an explanation in many sites, I'm testing these regex in this .NET regex page <http://derekslager.com/blog/posts/2007/09/a-better-dotnet-regular-expression-tester.ashx>