I am while using code below to create links linkable in WordPress captions. For instance it effectively turns http://google.com into google.com. However when I put multiple url's inside a caption it only changes the first. It is possible to way to really make it repeat the experience on all of the links?

<script type="text/javascript">
    jQuery().ready(function() {
    jQuery("p.wp-caption-text").each(function(n) {
        this.innerHTML = this.innerHTML.replace(new RegExp(" http://([^ ]*) "), " <a href=\"http://$1\">$1</a> ");
    });
    });
</script>

Do this rather:

this.innerHTML = this.innerHTML.replace.replace(/http:\/\/([^ ]*)/g, " <a href=\"http://$1\">$1</a> ");

the /g implies that this regular expression is global.

A subtle switch to your RegExp call must do it:

    jQuery().ready(function() {
        jQuery("p.wp-caption-text").each(function(n) {
            $(this).html($(this).html().replace(new RegExp(" http://([^ ]*) ", 'g'), " <a href=\"http://$1\">$1</a> "));
        });
    });

The bottom line is the 'g' modifier argument -- g means global quite simply: replace all.

Here's the appropriate reference material: http://www.w3schools.com/jsref/jsref_regexp_g.asp

RegExp automatically only finds one match.

this.innerHTML = this.innerHTML.replace(new RegExp(" http://([^ ]*) ", "g"), " <a href=\"http://$1\">$1</a> ");

Adding the "g" flag works a worldwide match.