‘Greediness’ refers to how much of the string to be searched gets matched.
If you say you want </h1>(.*)</p> it would capture EVERYTHING from the end of the </h1> to the LAST </p> in your file …. very greedy.
You can specify a minimal capture that would only capture up to the FIRST occurrence of </p>. There are a couple ways of doing that: clicking minimal match like KevinH mentioned, my favorite is to add a question mark to the capture group. </h1>(.*?)</p>
If you want a minimal capture of the first line (paragraph) after your heading you could try this:
Code:
Find: </h1>\s*<p.*?>(.*?)</p>
Replace: </h1>\n<h2>\1</h2>
That looks for the closing header tag followed by any amount of white space followed by an opening paragraph tag with anything in it (classes, styles, etc.) then it captures anything within that paragraph up to the first paragraph closing tag. It then replaces all of that with the closing header tag, and it inserts what it captured, using the \1, into a new heading (level 2) tag.