You prolly want to escape that `.` since now it acts like a "any character"-capture
which makes this valid: `rect(#10px, Mpx, 100!px, 2A0px)`

Solution:
```
(-?\d*\.?\d*px|-?\d+%|auto)
```

@mikesherov only thing I can think of is adding {4} after the capture group, thus this would only capture one big group instead of 4 afaik =/