You should take care when specifying regular expressions: some forms of regular expression can involve a large amount of work to find the best match, adversely impacting performance. Other expressions might produce a result that you did not expect.
For example, to match text up to and including a delimiter character ';' do not use the pattern ".*;" because this matches up to the last ';' character in the message, including any prior ';' characters in the matched text. Instead, you should use the pattern "[^;]*;".
Similarly, avoid using the pattern ".*" because this will always force a search to the end of the message to try and find the best match, and this might result in poor performance. However, you should use the pattern ".*" if you intend to match all remaining data in a message.
For best performance, avoid expressions with redundant nested repeats, such as "([0-9]+)*". Try to keep the expressions simple, with precise matching criteria. This avoids the need to perform multiple searches for the best match.