I can not seem to get a Regex for to Fail2Ban to work with Opensmtpd? Can I get a sanity check?

The newer and cleaner way to use a multi-line regex would be to use the <F-...> tags which were introduced in the 0.10.0 version and are unfortunately still not well documented.

[Definition]

prefregex = <F-MLFID>: \w{16} </F-MLFID><F-CONTENT>.+</F-CONTENT>$

failregex = <F-NOFAIL>smtp connected address=(?:<IP6>|<IP4>)</F-NOFAIL>
            smtp failed-command command="AUTH LOGIN \(password\)" result="535 Authentication failed"
            <F-NOFAIL><F-MLFFORGET>smtp disconnected</F-MLFFORGET></F-NOFAIL>

Explanation

The pre-filter regex is used to preprocess each line and capture the session id, which I assume is the f7fa148a43b34578 part, and identify the same session spanning in multiple lines. The text inside <F-CONTENT> is the part we are interested in and which will be processed by the failregex.

In the failregex, the first one matches the line with the IP address, which will be needed if a ban is to be issued, and is enclosed in the <F-NOFAIL> tags to indicate that the line is not considered a failure. The second regex is the actual authentication failure, which if matched, then fail2ban will block the previously captured IP address. The last one is surrounded by the <F-MLFFORGET> directive, to signal that it's time to drop the captured connection ID (since the user has disconnected), and it is also enclosed between <F-NOFAIL> tags because that line by itself is not a failure either.

You can use the fail2ban-regex tool to test this.

I can see why the regex from the linked forum post didn't work for you; the string is different in more than one parts. So obviously you will need to change the 2nd failregex from above if you'd like to match more generic cases (I'm not using opensmtpd so I can't help you with that).