<?php
echo "PHP:\n";
// echo "1: \", "\n"; - syntax error
echo "2: \\", "\n"; // outputs \
// echo "3: \\\", "\n"; - syntax error
echo "4: \\\\", "\n"; // outputs \\
// echo "5: \\\\\", "\n"; - syntax error
echo "6: \\\\\\", "\n"; // outputs \\\
// echo "7: \\\\\\\", "\n"; - syntax error
echo "8: \\\\\\\\", "\n"; // outputs \\\\
echo "\nPHP + PCRE:\n";
// skipping odd counts because they're all syntax errors
echo "2: ", preg_replace('/^/', '\\', ""), "\n"; // PCRE receives \ and allows it as a lone \ -> output \
echo "4: ", preg_replace('/^/', '\\\\', ""), "\n"; // PCRE receives \\ and interprets it as \ -> output \
echo "6: ", preg_replace('/^/', '\\\\\\', ""), "\n"; // PCRE receives \\\ and interprets it as \ + lone \ -> output \\
echo "8: ", preg_replace('/^/', '\\\\\\\\', ""), "\n"; // PCRE receives \\\\ and interprets it as \\ -> output \\
- Output for 5.6.0 - 5.6.25, 7.0.0 - 7.0.20, 7.1.0 - 7.1.20, 7.2.0 - 7.2.33, 7.3.16 - 7.3.26, 7.4.0 - 7.4.14, 8.0.0
- PHP:
2: \
4: \\
6: \\\
8: \\\\
PHP + PCRE:
2: \
4: \
6: \\
8: \\