What are the differences between eregi_replace and preg_replace in PHP, and when should each be used?

The main difference between eregi_replace and preg_replace in PHP is that eregi_replace is case-insensitive, while preg_replace is case-sensitive. eregi_replace is now deprecated in newer versions of PHP, so it is recommended to use preg_replace for all string replacements. Use preg_replace when you need a case-sensitive string replacement and use it with the 'i' modifier for case-insensitive replacements.

// Using preg_replace for case-sensitive string replacement
$string = "Hello, World!";
$new_string = preg_replace("/hello/i", "Hi", $string);
echo $new_string;