Support substring matching in contains()