Patterns for strfind and its recommended replacement contains don't support wildcard characters such as * and ?. In any case, there's no 'match' option for strfind. It looks like you mixed the syntax for regexp with the syntax for strfind.
regexp would indeed solve your problem. However, note that ? in a regular expression doesn't mean match any character. It means match the previous character 0 or 1 time. A valid regular expression for what you want:
~cellfun(@isempty, regexp(List.Name, '(3|5)pi2', 'once')
This will return a logical vector indicated which elements of List.Name match the pattern.