$re = '/# ./configure parser
^(?:
(?:configuring[[:space:]]for[[:space:]](.+))
|
(?:
checking[[:space:]]
(?:
(?:build|host)
[[:space:]]system[[:space:]]type
|
how[[:space:]]to[[:space:]](.+?)
|
for[[:space:]](.+?)
|
whether[[:space:]](?:to[[:space:]])?(.+?)
)[\.]{3}
)
(?:
[[:space:]]+
(?:
$
|
(?:
(yes)
|
(no)
|
(?<!^)(.*)(?=$|\n)
)
)
)?.*
)$
# ^(?:(?:configuring[[:space:]]for[[:space:]](.+))|(?:checking[[:space:]](?:(?:build|host)[[:space:]]system[[:space:]]type|how[[:space:]]to[[:space:]](.+?)|for[[:space:]](.+?)|whether[[:space:]](?:to[[:space:]])?(.+?))[\.]{3})(?:[[:space:]]+(?:$|(?:(yes)|(no)|(?<!^)(.*)(?=$|\n))))?.*)$/mxXi';
$str = 'configuring for zsh 5.7.1-test-2
checking build system type... x86_64-apple-darwin17.7.0
checking host system type... x86_64-apple-darwin17.7.0
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking how to run the C preprocessor... gcc -E
checking for an ANSI C-conforming const... yes
checking for gcc option to accept ANSI C...
checking whether to use prototypes... yes
checking for grep that handles long lines and -e... /usr/local/bin/ggrep
checking for egrep... /usr/local/bin/ggrep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for size_t... yes
checking for working alloca.h... yes';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
// Print the entire match result
var_dump($matches);
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for PHP, please visit: http://php.net/manual/en/ref.pcre.php