$re = '/^(.+)\1$/m';
$str = '11
12
13
14
15
16
17
18
19
20
21
22
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1188511880
1188511881
1188511882
1188511883
1188511884
1188511885
1188511886
1188511887
1188511888
1188511889
1188511890
222220
222221
222222
222223
222224
1698522
1698523
1698524
1698525
1698526
1698527
1698528
446443
446444
446445
446446
446447
446448
446449
38593856
38593857
38593858
38593859
38593860
38593861
38593862
565653
565654
565655
565656
565657
565658
565659
824824821
824824822
824824823
824824824
824824825
824824826
824824827
2121212118
2121212119
2121212120
2121212121
2121212122
2121212123
2121212124';
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