bug61780_1.phpt 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  1. --TEST--
  2. Bug #61780 (Inconsistent PCRE captures in match results): numeric subpatterns
  3. --FILE--
  4. <?php
  5. preg_match('/(4)?(2)?\d/', '23456', $matches, PREG_UNMATCHED_AS_NULL);
  6. var_export($matches);
  7. echo "\n\n";
  8. preg_match('/(4)?(2)?\d/', '23456', $matches, PREG_OFFSET_CAPTURE | PREG_UNMATCHED_AS_NULL);
  9. var_export($matches);
  10. echo "\n\n";
  11. preg_match_all('/(4)?(2)?\d/', '123456', $matches, PREG_UNMATCHED_AS_NULL);
  12. var_export($matches);
  13. echo "\n\n";
  14. preg_match_all('/(4)?(2)?\d/', '123456', $matches, PREG_OFFSET_CAPTURE | PREG_UNMATCHED_AS_NULL);
  15. var_export($matches);
  16. echo "\n\n";
  17. preg_match_all('/(4)?(2)?\d/', '123456', $matches, PREG_SET_ORDER | PREG_UNMATCHED_AS_NULL);
  18. var_export($matches);
  19. echo "\n\n";
  20. preg_match_all('/(4)?(2)?\d/', '123456', $matches, PREG_SET_ORDER | PREG_OFFSET_CAPTURE | PREG_UNMATCHED_AS_NULL);
  21. var_export($matches);
  22. ?>
  23. --EXPECT--
  24. array (
  25. 0 => '23',
  26. 1 => NULL,
  27. 2 => '2',
  28. )
  29. array (
  30. 0 =>
  31. array (
  32. 0 => '23',
  33. 1 => 0,
  34. ),
  35. 1 =>
  36. array (
  37. 0 => NULL,
  38. 1 => -1,
  39. ),
  40. 2 =>
  41. array (
  42. 0 => '2',
  43. 1 => 0,
  44. ),
  45. )
  46. array (
  47. 0 =>
  48. array (
  49. 0 => '1',
  50. 1 => '23',
  51. 2 => '45',
  52. 3 => '6',
  53. ),
  54. 1 =>
  55. array (
  56. 0 => NULL,
  57. 1 => NULL,
  58. 2 => '4',
  59. 3 => NULL,
  60. ),
  61. 2 =>
  62. array (
  63. 0 => NULL,
  64. 1 => '2',
  65. 2 => NULL,
  66. 3 => NULL,
  67. ),
  68. )
  69. array (
  70. 0 =>
  71. array (
  72. 0 =>
  73. array (
  74. 0 => '1',
  75. 1 => 0,
  76. ),
  77. 1 =>
  78. array (
  79. 0 => '23',
  80. 1 => 1,
  81. ),
  82. 2 =>
  83. array (
  84. 0 => '45',
  85. 1 => 3,
  86. ),
  87. 3 =>
  88. array (
  89. 0 => '6',
  90. 1 => 5,
  91. ),
  92. ),
  93. 1 =>
  94. array (
  95. 0 =>
  96. array (
  97. 0 => NULL,
  98. 1 => -1,
  99. ),
  100. 1 =>
  101. array (
  102. 0 => NULL,
  103. 1 => -1,
  104. ),
  105. 2 =>
  106. array (
  107. 0 => '4',
  108. 1 => 3,
  109. ),
  110. 3 =>
  111. array (
  112. 0 => NULL,
  113. 1 => -1,
  114. ),
  115. ),
  116. 2 =>
  117. array (
  118. 0 =>
  119. array (
  120. 0 => NULL,
  121. 1 => -1,
  122. ),
  123. 1 =>
  124. array (
  125. 0 => '2',
  126. 1 => 1,
  127. ),
  128. 2 =>
  129. array (
  130. 0 => NULL,
  131. 1 => -1,
  132. ),
  133. 3 =>
  134. array (
  135. 0 => NULL,
  136. 1 => -1,
  137. ),
  138. ),
  139. )
  140. array (
  141. 0 =>
  142. array (
  143. 0 => '1',
  144. 1 => NULL,
  145. 2 => NULL,
  146. ),
  147. 1 =>
  148. array (
  149. 0 => '23',
  150. 1 => NULL,
  151. 2 => '2',
  152. ),
  153. 2 =>
  154. array (
  155. 0 => '45',
  156. 1 => '4',
  157. 2 => NULL,
  158. ),
  159. 3 =>
  160. array (
  161. 0 => '6',
  162. 1 => NULL,
  163. 2 => NULL,
  164. ),
  165. )
  166. array (
  167. 0 =>
  168. array (
  169. 0 =>
  170. array (
  171. 0 => '1',
  172. 1 => 0,
  173. ),
  174. 1 =>
  175. array (
  176. 0 => NULL,
  177. 1 => -1,
  178. ),
  179. 2 =>
  180. array (
  181. 0 => NULL,
  182. 1 => -1,
  183. ),
  184. ),
  185. 1 =>
  186. array (
  187. 0 =>
  188. array (
  189. 0 => '23',
  190. 1 => 1,
  191. ),
  192. 1 =>
  193. array (
  194. 0 => NULL,
  195. 1 => -1,
  196. ),
  197. 2 =>
  198. array (
  199. 0 => '2',
  200. 1 => 1,
  201. ),
  202. ),
  203. 2 =>
  204. array (
  205. 0 =>
  206. array (
  207. 0 => '45',
  208. 1 => 3,
  209. ),
  210. 1 =>
  211. array (
  212. 0 => '4',
  213. 1 => 3,
  214. ),
  215. 2 =>
  216. array (
  217. 0 => NULL,
  218. 1 => -1,
  219. ),
  220. ),
  221. 3 =>
  222. array (
  223. 0 =>
  224. array (
  225. 0 => '6',
  226. 1 => 5,
  227. ),
  228. 1 =>
  229. array (
  230. 0 => NULL,
  231. 1 => -1,
  232. ),
  233. 2 =>
  234. array (
  235. 0 => NULL,
  236. 1 => -1,
  237. ),
  238. ),
  239. )