function doukaku99(target, rect){ rect = rect.split(/[\r\n]+/);
  var X = rect[0].length, Y = rect.length, find = function(x, y, dx, dy){
    for(var i = 0, c;  c = target.charAt(i++); x += dx, y += dy)
      if(!rect[y] || c !== rect[y].charAt(x)) return false;
    return true;
  }, dir = { '上': [ 0, 1], '右上': [ 1, 1], '右': [ 1, 0], '右下': [ 1, -1],
             '下': [ 0,-1], '左下': [-1,-1], '左': [-1, 0], '左上': [-1,  1] };
  for(var out = [], o = 0, k, x, y = Y; y--;) for(x = X; x--;) for(k in dir)
    if(find(x, y, dir[k][0], dir[k][1])) out[o++] = '('+ x +', '+ y +') '+ k;
  return out.reverse().join('\n');
}

(typeof confirm != 'undefined' ? confirm : typeof print != 'undefined' ? print :
 function($){ typeof WSH == 'object' && WSH.echo($) })(doukaku99('ウオリ','\
リオウウリウ\n\
ウオリウオリ\n\
オリリオリウ\n\
リリオオウオ'));