I am looking for a solution that can exclusively be done with a regular expression. I know this would be easy with variables, substrings, etc. 

And I am looking for PCRE style regex syntax even though I mention vim.

I need to identify strings with 4 numeric digits, and they can't be all 0's. So the following strings would be a match:

```
0001 
1000 
1234 
0101

```

And this would not:

```
0000

```

This is a substring that will occur at a set location within a large string, if that matters; I don't think it should. For example 

```
xxxxxxxxxxxx0001xxxxx
xxxxxxxxxxxx1000xxxxx
xxxxxxxxxxxx1234xxxxx
xxxxxxxxxxxx0101xxxxx
xxxxxxxxxxxx0101xxxxx
xxxxxxxxxxxx0000xxxxx

```