GameObject.FindGameObjectsWithTag
static function FindGameObjectsWithTag(tag: string): GameObject[];
static GameObject[] FindGameObjectsWithTag(string tag);
static def FindGameObjectsWithTag(tag as string) as GameObject[]
Parameters

tag The name of the tag to search GameObjects for.
Description

Returns a list of active GameObjects tagged tag. Returns empty array if no GameObject was found.

Tags must be declared in the tag manager before using them. A UnityException will be thrown if the tag does not exist or an empty string or null is passed as the tag.
	// Instantiates respawnPrefab at the location 
	// of all game objects tagged "Respawn".

var respawnPrefab : GameObject; var respawns; function Start() { if (respawns == null) GameObject.FindGameObjectsWithTag ("Respawn"); for (var respawn in respawns) Instantiate (respawnPrefab, respawn.transform.position, respawn.transform.rotation); }
using UnityEngine;
using System.Collections;

public class Example : MonoBehaviour {
    public GameObject respawnPrefab;
    public Object respawns;
    void Start() {
        if (respawns == null)
            GameObject.FindGameObjectsWithTag("Respawn");
        
        foreach (Object respawn in respawns) {
            Instantiate(respawnPrefab, respawn.transform.position, respawn.transform.rotation) as GameObject;
        }
    }
}
import UnityEngine
import System.Collections

public class Example(MonoBehaviour):

	public respawnPrefab as GameObject

	public respawns as Object

	def Start() as void:
		if respawns == null:
			GameObject.FindGameObjectsWithTag('Respawn')
		for respawn as Object in respawns:
			(Instantiate(respawnPrefab, respawn.transform.position, respawn.transform.rotation) as GameObject)

Another example:
	// Print the name of the closest enemy
	print(FindClosestEnemy().name); 
	
	// Find the name of the closest enemy
	function FindClosestEnemy () : GameObject {
		// Find all game objects with tag Enemy
		var gos : GameObject[];
		gos = GameObject.FindGameObjectsWithTag("Enemy"); 
		var closest : GameObject; 
		var distance = Mathf.Infinity; 
		var position = transform.position; 
		// Iterate through them and find the closest one
		for (var go : GameObject in gos)  { 
			var diff = (go.transform.position - position);
			var curDistance = diff.sqrMagnitude; 
			if (curDistance < distance) { 
				closest = go; 
				distance = curDistance; 
			} 
		} 
		return closest;	
	}
using UnityEngine;
using System.Collections;

public class Example : MonoBehaviour {
    GameObject FindClosestEnemy() {
        GameObject[] gos;
        gos = GameObject.FindGameObjectsWithTag("Enemy");
        GameObject closest;
        float distance = Mathf.Infinity;
        Vector3 position = transform.position;
        foreach (GameObject go in gos) {
            Vector3 diff = go.transform.position - position;
            float curDistance = diff.sqrMagnitude;
            if (curDistance < distance) {
                closest = go;
                distance = curDistance;
            }
        }
        return closest;
    }
    void Example() {
        print(FindClosestEnemy().name);
    }
}
import UnityEngine
import System.Collections

public class Example(MonoBehaviour):

	def FindClosestEnemy() as GameObject:
		gos as (GameObject)
		gos = GameObject.FindGameObjectsWithTag('Enemy')
		closest as GameObject
		distance as float = Mathf.Infinity
		position as Vector3 = transform.position
		for go as GameObject in gos:
			diff as Vector3 = (go.transform.position - position)
			curDistance as float = diff.sqrMagnitude
			if curDistance < distance:
				closest = go
				distance = curDistance
		return closest

	def Example() as void:
		print(FindClosestEnemy().name)

Another example, testing for empty array:
    // Search for game objects with a tag that is not used

function Start () { var gos : GameObject[]; gos = GameObject.FindGameObjectsWithTag("fred"); if (gos.length == 0) { Debug.Log("No game objects are tagged with fred"); } }