What are some potential pitfalls when using preg_match to extract IP addresses from a text in PHP?

One potential pitfall when using preg_match to extract IP addresses from a text in PHP is that the regular expression used may not accurately capture all valid IP address formats. To solve this, it is important to use a robust regular expression that covers all possible IP address variations, including IPv4 and IPv6 addresses.

$text = "The server IP address is 192.168.1.1 and the client IP address is 2001:0db8:85a3:0000:0000:8a2e:0370:7334";

preg_match_all('/\b(?:\d{1,3}\.){3}\d{1,3}\b|\b(?:[0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}\b/', $text, $matches);

$ip_addresses = $matches[0];

print_r($ip_addresses);