> 
> Write an expression to match strings like `a`, `aba`, `ababba`, `ababbabbba`, etc. The number of consecutive `b` increases one by one after each `a`.
> 
> 
> 

I'm learning regex and struggling with this regex quiz for several days but still couldn't quite get it right.

According to the description, the regex should match and fail following cases:

Pass cases:
-----------

* `a`
* `aba`
* `ababba`
* `ababbabbba`
* `ababbabbbabbbba`

Fail cases:
-----------

* `aa`
* `abbaa`
* `aabb`
* `abababa`
* `ababbba`

---

Here's [what I tried so far](https://regex101.com/r/mkenpQ/1/)

```
^a((b(?2)?)a)?(?1)*$

```

I'm thinking to use recursion but I don't know how to make the recursion add just one `b` after each `a` is met. So my solution also passes `abba` and `ababbba` etc.

Any ideas? What did I miss?