Lookaheads and lookbehinds can be combined. This is called "lookaround," though not in InDesign's interface. No matter. A few examples will illustrate this.
To match only those hyphens that are preceded and followed by a digit and replace them with en dashes, use these expressions:
And to italicize all words in a document that occur in double quotation marks but not the quotation marks themselves, use these expressions:
Change to: <select italics at Change Format>
In Polish typography, the single-letter prepositions w and z (both are general locative prepositions meaning "in", "at", and "by," and "from", "off", respectively) cannot be separated from the following noun or adjective. The neatest way to format them is to replace the space between the two words with a variable-width nonbreaking space, which can be done as follows:
(?xi) (?<=\b[wz]) \s (?=\w)
First note that we use the free-spacing modifier again for clarity. We added
i to make the search case-insensitive so that W, w, Z, and z are found. The notation here is shorthand for
(?x)(?i), which works equally well, but the contraction makes the expression a bit easier to read. The find expression matches spaces that are preceded by w or z and followed by any word character. Naturally, in the lookbehind, we need to specify the word ...