I am reviewing regular expressions and cannot understand why a regular expression won't match a given string, specifically:

```
regex = /(ab*)+(bc)?/ 
mystring  = "abbc"

```

The match matches `"abb"` but leaves the `c` off. I tested this using Rubular and in IRB and don't understand why the regex doesn't match the entire string. I thought that `(ab*)+` would match `"ab"` and then `(bc)?` would match `"bc"`.

Am I missing something in terms of precedence for regular expression operations?