#!/usr/local/bin/pike// -*- mode: pike -*-
// $Id: regexmatch.pike,v 1.2 2000/12/05 16:04:06 doug Exp $
// http://www.bagley.org/~doug/shootout/
// from: Fredrik Noring
constant area = "([0-9][0-9][0-9]|\\([0-9][0-9][0-9]\\))";
constant exch = "([0-9][0-9][0-9])";
constant last = "([0-9][0-9][0-9][0-9])";
void main(int argc, array(string) argv)
{
Regexp r = Regexp("^[^0-9\\(]*"+area+" "+exch+"[ -]"+last+"[^0-9]*$");
array(string) phones = Stdio.stdin->read()/"\n";
int n = (int)argv[-1];
int count = 0;
while(n--)
foreach(phones, string phone)
if(array(string) parts = r->split(phone))
if(n == 0)
if(parts[0][0] == '(')
write("%d: %s %s-%s\n", ++count, @parts);
else
write("%d: (%s) %s-%s\n", ++count, @parts);
}