Largest power of 2 that divides \$n\$ Related, related
Introduction
The ruler sequence is the sequence of the largest possible numbers \$a_n\$ such that \$2^{a_n}\mid n\$. It is so-called because its pin plot looks similar to a ruler's markings:

However, with a slight modification, we can also get a similar sequence. This sequence is \$\{a_1,a_2,a_3,…\}\$ where \$a_n\$ is the largest power of 2 such that \$a_n\mid n\$ (relevant OEIS).
The first 100 terms of this sequence are:
1, 2, 1, 4, 1, 2, 1, 8, 1, 2, 1, 4, 1, 2, 1, 16, 1, 2, 1, 4, 1, 2, 1, 8, 1, 2, 1, 4, 1, 2, 1, 32, 1, 2, 1, 4, 1, 2, 1, 8, 1, 2, 1, 4, 1, 2, 1, 16, 1, 2, 1, 4, 1, 2, 1, 8, 1, 2, 1, 4, 1, 2, 1, 64, 1, 2, 1, 4, 1, 2, 1, 8, 1, 2, 1, 4, 1, 2, 1, 16, 1, 2, 1, 4, 1, 2, 1, 8, 1, 2, 1, 4, 1, 2, 1, 32, 1, 2, 1, 4

Challenge
Your challenge is to do one of these three things:

Take a positive integer \$n\$ as input and return the \$n\$th term of this sequence.
Take a positive integer \$n\$ as input and return the first \$n\$ terms of this sequence.
Output the sequence infinitely.

Test Cases
12 -&gt; 4
64 -&gt; 64
93 -&gt; 1
8 -&gt; 8
0 -&gt; (undefined behavior)

Rules

You may output the sequence in any convenient format - e.g. as a list or some other iterable or separated by any non-digit separator, as long as it is constant between all terms.
You may output the term(s) in any convenient format - e.g. as an integer, as an integer string, as a float with the decimal part consisting of only zeros, ditto but as a string, or as a Boolean (True) iff the term is 1.
You may choose to use either zero- or one-indexing.
Standard loopholes are forbidden.
Trailing whitespace is allowed.
If possible, please link to an online interpreter (e.g. TIO) to run your program on.
Please explain your answer. This is not necessary, but it makes it easier for others to understand.
Languages newer than the question are allowed. This means you could create your own language where the empty program generates this sequence, but don't expect any upvotes.
Non-programming languages are allowed. A non-programming language is a language which doesn't satisfy both of these conditions:

Able to take two integers as input and print their sum
Able to take one integer as input and print a truthy value if it is prime, and a falsy value if it is not


This is code-golf, so shortest code in bytes wins!
Python 2, 13 bytes
Takes a positive integer \$ n \$ as input and returns the \$ n \$th term of the sequence.

lambda n:n&amp;-n

Try it online!
The largest power of \$ 2 \$ that divides \$ n \$ is also the lowest set bit. The bitwise magic is a bit difficult to explain, but it uses the fact that ~n + 1 in its binary representation produces the same lowest set bit as n.
Python 2, 26 bytes
Outputs the sequence infinitely.

n=1
while 1:print-n&amp;n;n+=1

Try it online!
Python 2, 33 bytes
Takes a positive integer \$ n \$ as input and returns the first \$ n \$ terms of the sequence.

f=lambda n:n*[0]and f(n-1)+[n&amp;-n]

Try it online!