I have the following input to be matched by a regex:

```
1.1.1.1
1.01.1.1
01.01.091.01
1.10.100.0010

```

So I have allways four groups consisting of digits. While the first three ones should match, the last one should not. 

So I wrote this regex:

```
^(\d*[1-9]+\.){4}$

```

In general this regex should return all those strings where any of the digits in any of the groups is *not* followed by a zero. Or more easily: I want to not match all numbers with trailing zeros. 

However this doesn´t match anything. [`regex1010.com`](https://regex101.com) tells this:

> 
> A repeated capturing group will only capture the last iteration. Put a
>  capturing group around the repeated group to capture all iterations or
>  use a non-capturing group instead if you're not interested in the data
> 
> 
> 

But when I add a further capturing group I get the same message:

```
^((\d*[1-9]+\.)){4}$

```

The same applies to a non-capturing group:

```
^(?:\d*[1-9]+\.){4}$

```

Of course I could just write the same group four times, but that´s fairly clumsy and hard to read.