Okay so I wanted a regex to parse uncontracted(if that's what it is called) ipv6 adresses

Example ipv6 adress: `1050:::600:5:1000::`

What I want returned: `1050:0000:0000:600:5:1000:0000:0000`

My try at this:

`ip:gsub("%:([^0-9a-zA-Z])", ":0000")`

The first problem with this: It replaces the first and second `:`

So `::` gets replaced with `:0000`

Replacing it with `:0000:` wouldn't work because then it will end with a `:`. Also this would note parse the newly added `:` resulting in: `1050:0000::600:5:1000:0000:`

**So what would I need this regex to do?**

Replace every `:` by `:0000` if it isn't followed by a number or letter

Main problem: `::` gets replaced instead of 1 `:`