You should consider the regularity of the format. Regex is not an efficient way to find things if there is a sensible alternative (substring searches, etc.). If the information is essentially chaotic, regex is hard to beat. Since your format apparently has labels, I would consider another method of parsing/tokenizing. You might, for instance, find that your data is a tabular representation. In other words, lines might represent rows containing the various fields. If there are a fixed number of fields, always in the same order, parsing can be relatively simple. If there are a variable number of fields, or if they are not in some fixed order, then the use of the labels as delimiters is definitely warranted.