I'm not really sure what you mean by phrases such as "break my script down"; in fact I'm having trouble understanding what your question is all about.
I would suggest that you look at the posting guidelines in the sticky note at the beginning of this forum as to how to ask questions and what information you need to provide.
(By the way, in what follows, I've taken out all of the extraneous and unnecessary back-slash characters - these are not necessary in the pattern; they may be for expressing the pattern in your programming language but you have not mentioned what that is so I can't tell - and they simply make it hard to understand you pattern)
Anyway, the way your first regex pattern is supposed to work is:
(?<='\)" href=") - this is a "lookbehind" and makes sure that the characters that precede the match are exactly ')" href=" - I assume this means that what you want to match is a value for the 'href' attribute
.*? - this will match any character zero or more times, matching as few characters as possible
(?="><EM>) - this is a lookahead and makes sure that the characters "><EM> occur immediately after any matched characters
From this I'm assuming that you are wanting to match something like:
<sometag attr1="(abc')" href="myURLHere"><EM> more text
and you are wanting the myURLHere text to be matched.
The '.' operator should match any character (with the possible exception of the "newline" character and this is controlled by the "singleline" or "dot matches newline" modifier setting - again something that you have not told us). Therefore, without seeing the text you are trying to scan (both what is working and what is not) it is very hard to see what could be going wrong.
Perhaps you could also tell us what you are trying to do?
PS, the second pattern can be written as:
(?<=" href=").*?(?=</A></H3><BUTTON class=vspib type=submit></BUTTON></SPAN>)
without all of the unnecessary backslashes.