As nmenant pointed out, the jsessionid isn't always terminated in the URI with the same character. Even within the same session, there are slight variations with the "." ending. It should fine using . as the terminator.
It looks like there might be a bug in the application's links. This URI isn't standard for java-based applications. The jsessionid should be followed by a question mark with pgSourceofBusSearch_btProceed=loadtarget being part of the query string.
This URI:
/mosAppWar/MosSystem/AJAXDispatching;jsessionid=23778039FC531A4BEC4A.0pgSourceofBusSearch_btProceed=loadtarget
looks like it's missing the ?:
/mosAppWar/MosSystem/AJAXDispatching;jsessionid=23778039FC531A4BEC4A.0
?pgSourceofBusSearch_btProceed=loadtarget
If you fix that issue, as an alternative, you could change HTTP::uri to HTTP::path and not use a terminator for findstr at all. HTTP::path is the URI minus the ? and anything after it if it's present in the URI.
Also, if the findstr output is empty, no persistence entry will be added. Finally, you can remove the return command as it's not going to make any difference as there isn't any code that would be executed from that point anyhow.
Aaron