What are the potential pitfalls of using preg_match_all in PHP for parsing complex strings?

When using preg_match_all in PHP for parsing complex strings, one potential pitfall is that the regular expression patterns may not be specific enough, leading to unexpected matches or incomplete parsing. To solve this issue, it is important to carefully craft the regular expression patterns to accurately capture the desired content and structure of the strings being parsed.

// Example of using a more specific regular expression pattern to parse complex strings
$string = "Hello, my email is test@example.com and my phone number is 123-456-7890.";
$pattern = '/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b|\b\d{3}-\d{3}-\d{4}\b/';
preg_match_all($pattern, $string, $matches);

print_r($matches);