Add ~x.y.z and ^x.y.z parsing

same here, unsure if this part is 100 or not