An example of the data would help. You can, of course, specify the “end-of-string anchor” character as part of your pattern. Then, beyond that, consider whether the pattern should or should not be “greedy.” (A greedy pattern always seeks the longest possible matching string.)
It would be a good idea to test your regex against a number of representative strings that you do and that you don’t expect should match, e.g. with Test::More, to make very sure that the regex you come up with does what you need it to.