# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility
import re
regex = r"\bM10[0-9][0-9]\b"
test_str = ("M0\n"
"M00\n"
"M1\n"
"M01\n"
"M3\n"
"M03\n"
"M4\n"
"M04\n"
"M5\n"
"M05\n"
"M8\n"
"M08\n"
"M9\n"
"M09\n"
"M11\n"
"M12\n"
"M13\n"
"M29\n"
"M30\n"
"M40\n"
"M41\n"
"M42\n"
"M68\n"
"M69\n"
"M78\n"
"M79\n"
"M94\n"
"M95\n"
"M98\n"
"M98 P1111 L10\n"
"M99\n"
"M100\n"
"M101\n"
"M102\n"
"M103\n"
"M104\n"
"M105\n"
"M106\n"
"M107\n"
"M108\n"
"M109\n"
"M110\n"
"M111\n"
"M112\n"
"M113\n"
"M114\n"
"M115\n"
"M116\n"
"M117\n"
"M118\n"
"M119\n"
"M120\n"
"M121\n"
"M122\n"
"M123\n"
"M124\n"
"M125\n"
"M126\n"
"M127\n"
"M128\n"
"M129\n"
"M130\n"
"M131\n"
"M132\n"
"M133\n"
"M134\n"
"M135\n"
"M136\n"
"M137\n"
"M138\n"
"M139\n"
"M140\n"
"M141\n"
"M142\n"
"M143\n"
"M144\n"
"M145\n"
"M146\n"
"M147\n"
"M148\n"
"M149\n"
"M150\n"
"M151\n"
"M152\n"
"M153\n"
"M154\n"
"M155\n"
"M156\n"
"M157\n"
"M158\n"
"M159\n"
"M160\n"
"M161\n"
"M162\n"
"M163\n"
"M164\n"
"M165\n"
"M166\n"
"M167\n"
"M168\n"
"M169\n"
"M170\n"
"M171\n"
"M172\n"
"M173\n"
"M174\n"
"M175\n"
"M176\n"
"M177\n"
"M178\n"
"M179\n"
"M180\n"
"M181\n"
"M182\n"
"M183\n"
"M184\n"
"M185\n"
"M186\n"
"M187\n"
"M188\n"
"M189\n"
"M190\n"
"M191\n"
"M192\n"
"M193\n"
"M194\n"
"M195\n"
"M196\n"
"M197\n"
"M198\n"
"M199\n"
"M200\n"
"M201\n"
"M202\n"
"M203\n"
"M204\n"
"M205\n"
"M206\n"
"M207\n"
"M208\n"
"M209\n"
"M210\n"
"M211\n"
"M212\n"
"M213\n"
"M214\n"
"M215\n"
"M216\n"
"M217\n"
"M218\n"
"M219\n"
"M220\n"
"M221\n"
"M222\n"
"M223\n"
"M224\n"
"M225\n"
"M226\n"
"M227\n"
"M228\n"
"M229\n"
"M230\n"
"M231\n"
"M232\n"
"M233\n"
"M234\n"
"M235\n"
"M236\n"
"M237\n"
"M238\n"
"M239\n"
"M240\n"
"M241\n"
"M242\n"
"M243\n"
"M244\n"
"M245\n"
"M246\n"
"M247\n"
"M248\n"
"M249\n"
"M250\n"
"M251\n"
"M252\n"
"M253\n"
"M254\n"
"M255\n"
"M256\n"
"M257\n"
"M258\n"
"M259\n"
"M260\n"
"M261\n"
"M262\n"
"M263\n"
"M264\n"
"M265\n"
"M266\n"
"M267\n"
"M268\n"
"M269\n"
"M270\n"
"M271\n"
"M272\n"
"M273\n"
"M274\n"
"M275\n"
"M276\n"
"M277\n"
"M278\n"
"M279\n"
"M280\n"
"M281\n"
"M282\n"
"M283\n"
"M284\n"
"M285\n"
"M286\n"
"M287\n"
"M288\n"
"M289\n"
"M290\n"
"M291\n"
"M292\n"
"M293\n"
"M294\n"
"M295\n"
"M296\n"
"M297\n"
"M298\n"
"M299\n"
"M300\n"
"M301\n"
"M302\n"
"M303\n"
"M304\n"
"M305\n"
"M306\n"
"M307\n"
"M308\n"
"M309\n"
"M310\n"
"M311\n"
"M312\n"
"M313\n"
"M314\n"
"M315\n"
"M316\n"
"M317\n"
"M318\n"
"M319\n"
"M320\n"
"M321\n"
"M322\n"
"M323\n"
"M324\n"
"M325\n"
"M326\n"
"M327\n"
"M328\n"
"M329\n"
"M330\n"
"M331\n"
"M332\n"
"M333\n"
"M334\n"
"M335\n"
"M336\n"
"M337\n"
"M338\n"
"M339\n"
"M340\n"
"M341\n"
"M342\n"
"M343\n"
"M344\n"
"M345\n"
"M346\n"
"M347\n"
"M348\n"
"M349\n"
"M350\n"
"M351\n"
"M352\n"
"M353\n"
"M354\n"
"M355\n"
"M356\n"
"M357\n"
"M358\n"
"M359\n"
"M360\n"
"M361\n"
"M362\n"
"M363\n"
"M364\n"
"M365\n"
"M366\n"
"M367\n"
"M368\n"
"M369\n"
"M370\n"
"M371\n"
"M372\n"
"M373\n"
"M374\n"
"M375\n"
"M376\n"
"M377\n"
"M378\n"
"M379\n"
"M380\n"
"M381\n"
"M382\n"
"M383\n"
"M384\n"
"M385\n"
"M386\n"
"M387\n"
"M388\n"
"M389\n"
"M390\n"
"M391\n"
"M392\n"
"M393\n"
"M394\n"
"M395\n"
"M396\n"
"M397\n"
"M398\n"
"M399\n"
"M400\n"
"M401\n"
"M402\n"
"M403\n"
"M404\n"
"M405\n"
"M406\n"
"M407\n"
"M408\n"
"M409\n"
"M410\n"
"M411\n"
"M412\n"
"M413\n"
"M414\n"
"M415\n"
"M416\n"
"M417\n"
"M418\n"
"M419\n"
"M420\n"
"M421\n"
"M422\n"
"M423\n"
"M424\n"
"M425\n"
"M426\n"
"M427\n"
"M428\n"
"M429\n"
"M430\n"
"M431\n"
"M432\n"
"M433\n"
"M434\n"
"M435\n"
"M436\n"
"M437\n"
"M438\n"
"M439\n"
"M440\n"
"M441\n"
"M442\n"
"M443\n"
"M444\n"
"M445\n"
"M446\n"
"M447\n"
"M448\n"
"M449\n"
"M450\n"
"M451\n"
"M452\n"
"M453\n"
"M454\n"
"M455\n"
"M456\n"
"M457\n"
"M458\n"
"M459\n"
"M460\n"
"M461\n"
"M462\n"
"M463\n"
"M464\n"
"M465\n"
"M466\n"
"M467\n"
"M468\n"
"M469\n"
"M470\n"
"M471\n"
"M472\n"
"M473\n"
"M474\n"
"M475\n"
"M476\n"
"M477\n"
"M478\n"
"M479\n"
"M480\n"
"M481\n"
"M482\n"
"M483\n"
"M484\n"
"M485\n"
"M486\n"
"M487\n"
"M488\n"
"M489\n"
"M490\n"
"M491\n"
"M492\n"
"M493\n"
"M494\n"
"M495\n"
"M496\n"
"M497\n"
"M498\n"
"M499\n"
"M500\n"
"M501\n"
"M502\n"
"M503\n"
"M504\n"
"M505\n"
"M506\n"
"M507\n"
"M508\n"
"M509\n"
"M510\n"
"M511\n"
"M512\n"
"M513\n"
"M514\n"
"M515\n"
"M516\n"
"M517\n"
"M518\n"
"M519\n"
"M520\n"
"M521\n"
"M522\n"
"M523\n"
"M524\n"
"M525\n"
"M526\n"
"M527\n"
"M528\n"
"M529\n"
"M530\n"
"M531\n"
"M532\n"
"M533\n"
"M534\n"
"M535\n"
"M536\n"
"M537\n"
"M538\n"
"M539\n"
"M540\n"
"M541\n"
"M542\n"
"M543\n"
"M544\n"
"M545\n"
"M546\n"
"M547\n"
"M548\n"
"M549\n"
"M550\n"
"M551\n"
"M552\n"
"M553\n"
"M554\n"
"M555\n"
"M556\n"
"M557\n"
"M558\n"
"M559\n"
"M560\n"
"M561\n"
"M562\n"
"M563\n"
"M564\n"
"M565\n"
"M566\n"
"M567\n"
"M568\n"
"M569\n"
"M570\n"
"M571\n"
"M572\n"
"M573\n"
"M574\n"
"M575\n"
"M576\n"
"M577\n"
"M578\n"
"M579\n"
"M580\n"
"M581\n"
"M582\n"
"M583\n"
"M584\n"
"M585\n"
"M586\n"
"M587\n"
"M588\n"
"M589\n"
"M590\n"
"M591\n"
"M592\n"
"M593\n"
"M594\n"
"M595\n"
"M596\n"
"M597\n"
"M598\n"
"M599\n"
"M600\n"
"M601\n"
"M602\n"
"M603\n"
"M604\n"
"M605\n"
"M606\n"
"M607\n"
"M608\n"
"M609\n"
"M610\n"
"M611\n"
"M612\n"
"M613\n"
"M614\n"
"M615\n"
"M616\n"
"M617\n"
"M618\n"
"M619\n"
"M620\n"
"M621\n"
"M622\n"
"M623\n"
"M624\n"
"M625\n"
"M626\n"
"M627\n"
"M628\n"
"M629\n"
"M630\n"
"M631\n"
"M632\n"
"M633\n"
"M634\n"
"M635\n"
"M636\n"
"M637\n"
"M638\n"
"M639\n"
"M640\n"
"M641\n"
"M642\n"
"M643\n"
"M644\n"
"M645\n"
"M646\n"
"M647\n"
"M648\n"
"M649\n"
"M650\n"
"M651\n"
"M652\n"
"M653\n"
"M654\n"
"M655\n"
"M656\n"
"M657\n"
"M658\n"
"M659\n"
"M660\n"
"M661\n"
"M662\n"
"M663\n"
"M664\n"
"M665\n"
"M666\n"
"M667\n"
"M668\n"
"M669\n"
"M670\n"
"M671\n"
"M672\n"
"M673\n"
"M674\n"
"M675\n"
"M676\n"
"M677\n"
"M678\n"
"M679\n"
"M680\n"
"M681\n"
"M682\n"
"M683\n"
"M684\n"
"M685\n"
"M686\n"
"M687\n"
"M688\n"
"M689\n"
"M690\n"
"M691\n"
"M692\n"
"M693\n"
"M694\n"
"M695\n"
"M696\n"
"M697\n"
"M698\n"
"M699\n"
"M700\n"
"M701\n"
"M702\n"
"M703\n"
"M704\n"
"M705\n"
"M706\n"
"M707\n"
"M708\n"
"M709\n"
"M710\n"
"M711\n"
"M712\n"
"M713\n"
"M714\n"
"M715\n"
"M716\n"
"M717\n"
"M718\n"
"M719\n"
"M720\n"
"M721\n"
"M722\n"
"M723\n"
"M724\n"
"M725\n"
"M726\n"
"M727\n"
"M728\n"
"M729\n"
"M730\n"
"M731\n"
"M732\n"
"M733\n"
"M734\n"
"M735\n"
"M736\n"
"M737\n"
"M738\n"
"M739\n"
"M740\n"
"M741\n"
"M742\n"
"M743\n"
"M744\n"
"M745\n"
"M746\n"
"M747\n"
"M748\n"
"M749\n"
"M750\n"
"M751\n"
"M752\n"
"M753\n"
"M754\n"
"M755\n"
"M756\n"
"M757\n"
"M758\n"
"M759\n"
"M760\n"
"M761\n"
"M762\n"
"M763\n"
"M764\n"
"M765\n"
"M766\n"
"M767\n"
"M768\n"
"M769\n"
"M770\n"
"M771\n"
"M772\n"
"M773\n"
"M774\n"
"M775\n"
"M776\n"
"M777\n"
"M778\n"
"M779\n"
"M780\n"
"M781\n"
"M782\n"
"M783\n"
"M784\n"
"M785\n"
"M786\n"
"M787\n"
"M788\n"
"M789\n"
"M790\n"
"M791\n"
"M792\n"
"M793\n"
"M794\n"
"M795\n"
"M796\n"
"M797\n"
"M798\n"
"M799\n"
"M800\n"
"M801\n"
"M802\n"
"M803\n"
"M804\n"
"M805\n"
"M806\n"
"M807\n"
"M808\n"
"M809\n"
"M810\n"
"M811\n"
"M812\n"
"M813\n"
"M814\n"
"M815\n"
"M816\n"
"M817\n"
"M818\n"
"M819\n"
"M820\n"
"M821\n"
"M822\n"
"M823\n"
"M824\n"
"M825\n"
"M826\n"
"M827\n"
"M828\n"
"M829\n"
"M830\n"
"M831\n"
"M832\n"
"M833\n"
"M834\n"
"M835\n"
"M836\n"
"M837\n"
"M838\n"
"M839\n"
"M840\n"
"M841\n"
"M842\n"
"M843\n"
"M844\n"
"M845\n"
"M846\n"
"M847\n"
"M848\n"
"M849\n"
"M850\n"
"M851\n"
"M852\n"
"M853\n"
"M854\n"
"M855\n"
"M856\n"
"M857\n"
"M858\n"
"M859\n"
"M860\n"
"M861\n"
"M862\n"
"M863\n"
"M864\n"
"M865\n"
"M866\n"
"M867\n"
"M868\n"
"M869\n"
"M870\n"
"M871\n"
"M872\n"
"M873\n"
"M874\n"
"M875\n"
"M876\n"
"M877\n"
"M878\n"
"M879\n"
"M880\n"
"M881\n"
"M882\n"
"M883\n"
"M884\n"
"M885\n"
"M886\n"
"M887\n"
"M888\n"
"M889\n"
"M890\n"
"M891\n"
"M892\n"
"M893\n"
"M894\n"
"M895\n"
"M896\n"
"M897\n"
"M898\n"
"M899\n"
"M900\n"
"M901\n"
"M902\n"
"M903\n"
"M904\n"
"M905\n"
"M906\n"
"M907\n"
"M908\n"
"M909\n"
"M910\n"
"M911\n"
"M912\n"
"M913\n"
"M914\n"
"M915\n"
"M916\n"
"M917\n"
"M918\n"
"M919\n"
"M920\n"
"M921\n"
"M922\n"
"M923\n"
"M924\n"
"M925\n"
"M926\n"
"M927\n"
"M928\n"
"M929\n"
"M930\n"
"M931\n"
"M932\n"
"M933\n"
"M934\n"
"M935\n"
"M936\n"
"M937\n"
"M938\n"
"M939\n"
"M940\n"
"M941\n"
"M942\n"
"M943\n"
"M944\n"
"M945\n"
"M946\n"
"M947\n"
"M948\n"
"M949\n"
"M950\n"
"M951\n"
"M952\n"
"M953\n"
"M954\n"
"M955\n"
"M956\n"
"M957\n"
"M958\n"
"M959\n"
"M960\n"
"M961\n"
"M962\n"
"M963\n"
"M964\n"
"M965\n"
"M966\n"
"M967\n"
"M968\n"
"M969\n"
"M970\n"
"M971\n"
"M972\n"
"M973\n"
"M974\n"
"M975\n"
"M976\n"
"M977\n"
"M978\n"
"M979\n"
"M980\n"
"M981\n"
"M982\n"
"M983\n"
"M984\n"
"M985\n"
"M986\n"
"M987\n"
"M988\n"
"M989\n"
"M990\n"
"M991\n"
"M992\n"
"M993\n"
"M994\n"
"M995\n"
"M996\n"
"M997\n"
"M998\n"
"M999\n"
"M1000\n"
"M1001\n"
"M1002\n"
"M1003\n"
"M1004\n"
"M1005\n"
"M1006\n"
"M1007\n"
"M1008\n"
"M1009\n"
"M1010\n"
"M1011\n"
"M1012\n"
"M1013\n"
"M1014\n"
"M1015\n"
"M1016\n"
"M1017\n"
"M1018\n"
"M1019\n"
"M1020\n"
"M1021\n"
"M1022\n"
"M1023\n"
"M1024\n"
"M1025\n"
"M1026\n"
"M1027\n"
"M1028\n"
"M1029\n"
"M1030\n"
"M1031\n"
"M1032\n"
"M1033\n"
"M1034\n"
"M1035\n"
"M1036\n"
"M1037\n"
"M1038\n"
"M1039\n"
"M1040\n"
"M1041\n"
"M1042\n"
"M1043\n"
"M1044\n"
"M1045\n"
"M1046\n"
"M1047\n"
"M1048\n"
"M1049\n"
"M1050\n"
"M1051\n"
"M1052\n"
"M1053\n"
"M1054\n"
"M1055\n"
"M1056\n"
"M1057\n"
"M1058\n"
"M1059\n"
"M1060\n"
"M1061\n"
"M1062\n"
"M1063\n"
"M1064\n"
"M1065\n"
"M1066\n"
"M1067\n"
"M1068\n"
"M1069\n"
"M1070\n"
"M1071\n"
"M1072\n"
"M1073\n"
"M1074\n"
"M1075\n"
"M1076\n"
"M1077\n"
"M1078\n"
"M1079\n"
"M1080\n"
"M1081\n"
"M1082\n"
"M1083\n"
"M1084\n"
"M1085\n"
"M1086\n"
"M1087\n"
"M1088\n"
"M1089\n"
"M1090\n"
"M1091\n"
"M1092\n"
"M1093\n"
"M1094\n"
"M1095\n"
"M1096\n"
"M1097\n"
"M1098\n"
"M1099\n"
"M1100\n"
"M1101\n\n")
matches = re.finditer(regex, test_str, re.MULTILINE)
for matchNum, match in enumerate(matches, start=1):
print ("Match {matchNum} was found at {start}-{end}: {match}".format(matchNum = matchNum, start = match.start(), end = match.end(), match = match.group()))
for groupNum in range(0, len(match.groups())):
groupNum = groupNum + 1
print ("Group {groupNum} found at {start}-{end}: {group}".format(groupNum = groupNum, start = match.start(groupNum), end = match.end(groupNum), group = match.group(groupNum)))
# Note: for Python 2.7 compatibility, use ur"" to prefix the regex and u"" to prefix the test string and substitution.
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 Python, please visit: https://docs.python.org/3/library/re.html