Your texture must be applied to the model at the time that you use Tool>Save As. Only the texture that’s currently applied will be saved. (In 3.12 for Mac, a model can have multiple textures applied.)
If you use Tool>Export, that will export an OBJ. The OBJ format only contains the model’s UV’s and not the textures. So if you use Tool>Export you will need to reapply the texture no matter what.
As for materials – were these polypainted onto your model as well? The thing about materials is that ZBrush doesn’t save every setting for every material when it saves the object. The only thing that’s actually being polypainted is the material ID number. When you restart ZBrush, the materials are all reverted to their original states. So when you load the model, ZBrush will show the materials that currently occupy those particular slots. You will need to load those materials again.
There is a way around this that’s very simple. In addition to saving the model, also save the document. When you start work again, load the document first. Clear the canvas, then load the model. Material settings are saved with the document, so by using this approach you tell ZBrush to remember what your customs settings are for every slot currently in use on the model.
(Note: Only materials that are visible when the document is saved will be included. If you use multiple materials on various parts of your model, you may want to snapshot multiple angles of the model before you save the document.)