I am putting together a fairly complex regular expression. One part of the expression matches strings such as '+a', '-57' etc. A + or a - followed by any number of letters or numbers. I want to match 0 or more strings matching this pattern.

This is the expression I came up with:

```
([\+-][a-zA-Z0-9]+)*

```

If I were to search the string '-56+a' using this pattern I would expect to get two matches:

+a and -56

However, I only get the last match returned:

```
>>> m = re.match("([\+-][a-zA-Z0-9]+)*", '-56+a')
>>> m.groups()
('+a',)

```

Looking at the python docs I see that:

> 
> If a group matches multiple times, only the last match is accessible:
> 
> 
> 
> ```
> >>> m = re.match(r"(..)+", "a1b2c3")  # Matches 3 times.
> >>> m.group(1)                        # Returns only the last match.
> 'c3'
> 
> ```
> 
> 

So, my question is: how *do* you access multiple group matches?