Regex can be useful when the information you're trying to obtain isn't necessarily straightforward. But if the only line in the source data that includes that text is the one you want, you can make it much easier for you to understand by just using an IF statement with iswm. Later on, you can always work on learning regex if you're interested.

Code:
if (<span class="hps">* iswm %r) { do something }


Note that you can also see about using echo to display your data to see what is going wrong...

Code:
echo -a Regex: %r -- $regsubex(%r,/[^*]*<span class="hps">|</div>[^*]*/g,$null)


Just be aware that this will display an echo for every line in the source data. You can use IF statements to limit how much is echoed if you want.

As far as this code goes, though... it appears to just remove the HTML around the specific line (but not any other lines). You could always consider using a standard $htmlfree() identifier to remove all HTML code instead of using specific regex for each line you want to access.

I think you must have something else in the sockread event that you displayed. It just looks like something is missing. As it is now, with those 3 lines, you're not doing anything to verify that you're using the right line.