I made a custom filter out of @distantnative’s code, that can be used with \filterBy, like this
$page->images()->filterBy('filename', '!*=', '-big')
where !*= means “doesn’t contain”. To install this filter create a file filterStringContainsNot.php (or whatever you like) at plugins/ and save this code:
<?php
collection::$filters['!*='] = function($collection, $field, $value, $split = false) {
foreach($collection->data as $key => $item) {
if(!str::contains((string)collection::extractValue($item, $field), $value)) continue;
unset($collection->$key);
}
return $collection;
};