
Регэксп для целого числа: `pattern:\d+`.

Мы можем исключить отрицательные добавлением негативной ретроспективной проверки: `pattern:(?<!-)\d+`.

Однако, если попробуем применить такой регэксп, то увидим лишний результат:

```js run
let regexp = /(?<!-)\d+/g;

let str = "0 12 -5 123 -18";

console.log( str.match(regexp) ); // 0, 12, 123, *!*8*/!*
```

Как видите, оно находит `match:8` из `subject:-18`. То есть, берёт только цифру из числа `subject:-18`, так как это формально подходит под регулярное выражение.

Чтобы исключить такой вариант, надо убедиться, что регэксп не будет искать число с середины другого (неподходящего) числа.

Мы можем сделать это добавлением ещё одной проверки: `pattern:(?<!-)(?<!\d)\d+`. Теперь `pattern:(?<!\d)` гарантирует, что поиск не начнётся после цифры.

Можем объединить проверки в одну:

```js run
let regexp = /(?<![-\d])\d+/g;

let str = "0 12 -5 123 -18";

alert( str.match(regexp) ); // 0, 12, 123
```
