Hi,
The "Postcode RegEx" field is passed as-is to PHP's preg_match, so it has to be a complete pattern, delimiters included. Both of your patterns open with a # but never close it, so PHP rejects the pattern as invalid and the shipping method is then hidden for every address, which is the "every single address does not work anymore" you're seeing.
The other thing to know is how the field is evaluated: the method is kept only when the postcode matches the pattern. So it is an "allow" test, which means your negative-lookahead idea (allow everything except the islands) is exactly the right approach, it just needs the closing delimiter.
Based on the postcodes you listed (1791-1797, 8880-8889, 8890-8891), this works:
#^(?!179[1-7]|888\d|889[01])\d{4}#
It matches any 4-digit postcode that does not start with one of those island ranges, and it does not care about the trailing letters (like 1234 AB), so it works whether or not the letters are stored in the address. Put it on your Netherlands shipping method and the island postcodes will no longer be offered that method.
If you also want to exclude the Ameland / Schiermonnikoog codes you had in your test (9161-9166), add them the same way:
#^(?!179[1-7]|888\d|889[01]|916[1-6])\d{4}#