Don't know that what you have is "wrong", but I might do it more like this, including letting the regex be case-insensitive versus converting it via the PHP function. Using word boundaries may help avoid strings you don't want to match, such as "junkfood vandals".
if(preg_match('#\b(step|food|box)\W*(truck|van)s?\b#i', $model)
That should match things like "stepvan", "step van", "step-vans", "step/van", or even "step -- vans". So it's up to you whether that "\W*" is too lenient, in which case you could change it to "\W?", perhaps.