Why isn't every subcollection of a set a set in ZF? I've been pondering this old question Is the Subset Axiom Schema in ZF necessary? and seem to have an answer which didn't come up, but I'm wondering if there's a mistake in my reasoning.
Axiom of specification: given any set $x$ and formula $\phi(y)$ there exists a set $z$ whose members are exactly those members of $x$ which satisfy $\phi$:
$$\forall \phi \forall x \exists z \forall y(y \in z \leftrightarrow y \in x \land \phi(y)).$$
So let $x$ be a set and $z \subseteq x$ a subcollection. Define the formula $\phi(y) = (y \in z)$. Then by the axiom of specification there exists a set $z'$ such that $\forall y(y \in z' \leftrightarrow y \in z)$. I thought about applying the axiom of extensionality here to deduce that $z = z'$, but obviously you can't do that because $z$ is not necessarily a set. Still, to every subcollection I've associated a set with exactly the same members. One of the answers https://math.stackexchange.com/q/2383 says it's possible there may be subsets which aren't expressible by a formula, but if I know that $z$ is a set then I seem to have a formula. Did I make a mistake? Maybe my $\phi$ isn't a proper formula because it refers to something which may not be a set?
 A: The "formula" "$y\in z$" . . . isn't really a formula. It's not expressible, unless $z$ is definable from parameters in the model somehow. So in general the axiom of separation won't apply.

For example, take (by the Lowenheim-Skolem theorem) a model $M$ of ZFC containing $\omega$ but which is countable. Then most subsets of $\omega$ - that is, most reals - won't be in $M$, but will of course be sub-collections of an element of $M$ (namely $\omega$). Do you see why this isn't a contradiction?
A: The subset schema (or replacement or collection schemata) allow parameters.
So the formula $y\in z$, while can be used to define a collection, can only appeal to $z$ that already exists in the model. Namely, if $z$ is already a set. Also note that this is a very semantic way of looking at things. We work in a fixed model. Existence of things is already determined. 
So we ask whether or not a set - which already exists - can be defined with parameters. And yes, it can, because it can be a parameter as well.
Of course it is possible that there are models of set theory which do not contain every set. So it is possible that $x$ is a set in such model, and $y$ is a subset of $x$ in the universe, but $y$ is not in the model. In that case, however, you cannot use $y$ as a parameter to define a subset of $x$ inside of your model.
