When using \n in a replacement pattern in 17.3, it doesn't correctly insert the newline character, even if "Substitute Escaped Characters" is turned on.
For example, replacing "( *)" with "\n$1" results in " " being replaced with "n ".
Toggling the "Substitute Escaped Characters" button doesn't change this behavior either way (on or off - same behavior).
Java 1.8.0_144 on Windows 10. Confirmed also on Ubuntu 16.04 (current JDK) and even SQL Developer 4.2.